探索 Python 中的相关性
pythonserver side programmingprogramming
相关性是一个统计术语,用于测量两个变量之间的关系。如果关系是字符串,意味着一个变量的变化以可预测的模式反映了另一个变量的变化,那么我们说变量是相关的。此外,第一个变量的变化可能会导致第二个变量的正变化或负变化。因此,它们被称为正相关或负相关。理想情况下,相关系数的值在 -1 到 +1 之间变化。
- 如果值为 +1 或接近它,那么我们说变量是正相关的。并且它们同时朝同一方向变化。
- 如果值为 -1 或接近它,那么我们说变量是负相关的。并且它们同时朝相反的方向变化。
- 如果值为 0 或接近 0,则我们说变量不相关。
有不同的方法来测量相关系数。它们可用作 numpy 或 scipy.stats 中的函数。下面我们将看到它们的使用方法。
使用 Spearman 相关性
Spearman 相关性用于测量线性相关变量之间的关系程度。它基于 scipy.stats 包用于生成结果的公式。它是查找相关性的最广泛使用的公式。
在下面的示例中,我们采用使用 numpy.randon() 函数生成值的两个变量。然后应用 spearmanr() 来获得最终结果。
示例
from numpy.random import randn from numpy.random import seed from scipy.stats import spearmanr seed(1) data_input1 = 20 * randn(1000) + 100 data_input2 = data_input1 + (10 * randn(1000) + 50) correlation = spearmanr(data_input1, data_input2) print(correlation)
输出
运行上述代码得到以下结果 −
SpearmanrResult(correlation=0.8724050484050484, pvalue=1.58425746359e-312)
使用 Pearson 相关性
Pearson 相关性是测量线性相关变量之间关系程度的另一种方法。它基于 scipy.stats 包用来生成结果的公式。
在下面的例子中,我们取两个变量,它们的值是使用 numpy.randon() 函数生成的。然后应用 pearsonr() 来获得最终结果。
示例
from numpy.random import randn from numpy.random import seed from scipy.stats import pearsonr seed(1) data1 = 20 * randn(1000) + 100 data2 = data1 + (10 * randn(1000) + 50) correlation, _ = pearsonr(data1, data2) print('Pearsons correlation: %.3f' % correlation)
输出
运行上述代码得到以下结果 −
Pearsons correlation: 0.888