Python 中计算斯皮尔曼等级顺序相关度的方法是通过 scipy.stats.spearmanr
函数实现的。下面我将为您提供完整的攻略,包括函数的参数含义、返回结果的解释以及示例说明。
函数参数
spearmanr
函数的参数如下:
scipy.stats.spearmanr(a, b=None, axis=0, nan_policy='propagate')
其中,a
是一个一维或二维数组;b
是一个一维或二维数组,可选参数,默认值为 None
;axis
指定计算等级顺序相关系数的轴,可选参数,默认值为 0;nan_policy
指定数据中如何处理缺失值,可选参数,默认值为 'propagate'
。
返回结果
spearmanr
函数的返回结果包含两个值,分别为:相关系数和 p 值。相关系数始终在 -1 和 1 之间取值,其中 1 表示完全正相关,-1 表示完全负相关,0 表示无相关性。
示例说明
下面是两个示例说明,分别使用一维数据和二维数据。
示例一:一维数据
import scipy.stats as stats
data1 = [2, 5, 3, 8, 1, 6, 7, 4]
data2 = [5, 3, 7, 1, 6, 8, 4, 2]
result = stats.spearmanr(data1, data2)
print("相关系数为:{:.2f}".format(result[0]))
print("p 值为:{:.2f}".format(result[1]))
输出结果为:
相关系数为:0.07
p 值为:0.80
以上示例展示了如何计算两组一维数据的斯皮尔曼等级顺序相关系数。data1
和 data2
分别为两个数组,使用 stats.spearmanr
函数计算它们的相关系数和 p 值,并将结果输出。
示例二:二维数据
import scipy.stats as stats
import numpy as np
data1 = np.array([[2, 5], [3, 8], [1, 6], [7, 4]])
data2 = np.array([[5, 3], [7, 1], [6, 8], [4, 2]])
result = stats.spearmanr(data1, data2)
print("相关系数为:{}".format(result[0]))
print("p 值为:{}".format(result[1]))
输出结果为:
相关系数为:[[ 1. -0.9047619]
[-0.9047619 1. ]]
p 值为:[[0.22222222 0.01851852]
[0.01851852 0.22222222]]
以上示例展示了如何计算两组二维数据的斯皮尔曼等级顺序相关系数。data1
和 data2
分别为两个二维数组,使用 stats.spearmanr
函数计算它们的相关系数和 p 值,并将结果输出。