Spearman 相关分析 Python

Spearman相关分析(菜鸟版)

和Pearson的区别

皮尔逊积差相关系数要求两个变量均服从正态分布(正确地说是二维正态分布)。
斯皮尔曼等级相关系数对变量的分布无要求,主要用在偏态资料或等级资料上,利用秩次进行计算

import numpy as np
import pandas as pd
import scipy
from scipy.stats import spearmanr


res=pd.concat([data1,data2,data3,data4],axis=0)#4个文件合成一个表,表是辣鸡地一个一个导进来的,代码不见了,dataX是每一个文件导入之后赋值给DataFrame
y=[]#创建见一个空数组,没看见其他的能求p值的方法,只能转成数组了
Cor=pd.DataFrame(columns=['r_row','p_value'])#创建一个空DataFrame
x=['Frame_Shift_Del','Frame_Shift_Ins','In_Frame_Del','In_Frame_Ins','Missense_Mutation','Nonsense_Mutation','Splice_Site','stage','total']
for i in range(0,len(x)):
    y.append(res[x[i]].values)#产生所有数值都在一个数组的数组
for i in range(0,len(y)):
    r_row, p_value = spearmanr(y[i], y[7])#求相关系数和P值
    a=pd.Series({'r_row':r_row,'p_value':p_value})#生成的p值和r要转成Series然后插入数据框
    Cor=Cor.append(a,ignore_index=True)#插入数据框
Cor
Cor.to_excel("AML_pvalue&r.xlsx")#保存

你可能感兴趣的:(统计,统计,python,线性相关)