Python 斯皮尔曼等级顺序相关度

  • Post category:Python

Python 中计算斯皮尔曼等级顺序相关度的方法是通过 scipy.stats.spearmanr 函数实现的。下面我将为您提供完整的攻略,包括函数的参数含义、返回结果的解释以及示例说明。

函数参数

spearmanr 函数的参数如下:

scipy.stats.spearmanr(a, b=None, axis=0, nan_policy='propagate')

其中,a 是一个一维或二维数组;b 是一个一维或二维数组,可选参数,默认值为 Noneaxis 指定计算等级顺序相关系数的轴,可选参数,默认值为 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

以上示例展示了如何计算两组一维数据的斯皮尔曼等级顺序相关系数。data1data2 分别为两个数组,使用 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]]

以上示例展示了如何计算两组二维数据的斯皮尔曼等级顺序相关系数。data1data2 分别为两个二维数组,使用 stats.spearmanr 函数计算它们的相关系数和 p 值,并将结果输出。