我需要生成包含检验统计量和p值的相关矩阵(这是心理学研究中的常见做法)并且我正在使用
spearmanr()
从scipy.stats做到这一点。
我有一个看起来像这样的数据集
v_1 v_2 v_3 v_4 v_5
1 4 2 5 3
5 3 6 2 4
6 2 4 1 1
2 5 3 2 6
6 3 2 2 3
当我把spearmanr()称为
cor1 = spearmanr(v_1, v_4)
我可以在控制台中看到输出,我可以
print(cor1)
返回
SpearmanrResult(correlation=array([[x,y,z,a,b,c]]), (pvalue=array([[x,y,z,a,b,c]]))
但我无法对那些允许我按照我选择的方式进行报道的价值观做任何事情。
我已经尝试将它们转换成熊猫DF了
cors = pd.DataFrame(cor1)
我试着用ex_excel等把它写成excel或文本
我错过了一些愚蠢的东西。
请帮忙。
cor1实际上是一个NamedTuple。您可以访问相关字段:cor1.correlation
和cor1.pvalue
。
或者,您可以在调用spearman时直接分解:
cor, pvalue = spearmanr(v_1, v_4)
然后可以将这些数组转换为DataFrame并写入excel。
例如pd.DataFrame(cor).to_csv("correlation.csv")