前提,变量必须服从高斯正态分布。为什么?因为在计算相关的时候,用到了均值,为什么均值能够刻画整个群落呢?因为在正态分布中,可以用均值来刻画整个群落。而在一些非高斯分布的变量中,比如幂率分布,属于无标度的概率分布,就不能用均值来刻画样本(举个简单的例子,我和马云的平均收入,有参考意义吗?没有。因为收入不服从高斯分布。班级里同学们的平均身高有参考意义吗?有的,因为服从的是正态分布。) 因此,想用pearson相关, 样本必须得服从正态分布。
参考文献:
How to Calculate Correlation Between Variables in Python
第一:pearson相关的基本理论
数学表达式:
Pearson's correlation coefficient = covariance(X, Y) / (stdv(X) * stdv(Y))
(wow:在计算pearson相关的时候,用到了cross correlation唉)
第二:pearson的计算方法Python、Matlab
# calculate the Pearson's correlation between two variables
from numpy.random import randn
from numpy.random import seed
from scipy.stats import pearsonr
# seed random number generator
seed(1)
# prepare data
data1 = 20 * randn(1000) + 100
data2 = data1 + (10 * randn(1000) + 50)
# calculate Pearson's correlation
corr, _ = pearsonr(data1, data2)
print('Pearsons correlation: %.3f' % corr)