探索Python中的相关性

相关性是衡量两个变量之间关系的统计术语。如果关系是字符串,则意味着一个变量的变化以可预测的方式反映了另一个变量的变化,那么我们说这些变量是相关的。此外,第一变量的变化可引起第二变量的正或负变化。因此,它们被认为是正相关或负相关的。理想地,相关系数的值在-1至+1之间变化。

  • 如果值是+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)

使用皮尔逊相关

皮尔逊相关性是衡量线性相关变量之间关系程度的另一种方法。它基于scipy.stats包用于生成结果的公式。

在下面的示例中,我们采用了两个变量,它们的值是使用numpy.randon()funcntion生成的。然后应用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