探索 Python 中的相关性
相关性是一个统计术语,用于衡量两个变量之间的关系。如果关系很强,这意味着一个变量的变化以可预测的模式反映在另一个变量的变化中,那么我们就说这两个变量是相关的。此外,第一个变量的变化可能导致第二个变量的正变化或负变化。相应地,它们被称为正相关或负相关。理想情况下,相关系数的值在 -1 到 +1 之间变化。
- 如果值为 +1 或接近 +1,我们就说变量是正相关的。它们同时朝相同方向变化。
- 如果值为 -1 或接近 -1,我们就说变量是负相关的。它们同时朝相反方向变化。
- 如果值为 0 或接近 0,我们就说变量不相关。
有多种方法可以衡量相关系数。它们在 numpy 或 scipy.stats 中作为函数提供。下面我们将看到它们是如何使用的。
使用斯皮尔曼相关性
斯皮尔曼相关性用于衡量线性相关变量之间关系的程度。它基于 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)
使用皮尔逊相关性
皮尔逊相关性是另一种衡量线性相关变量之间关系程度的方法。它基于 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
广告