计算Pearson相关性

use*_*628 11 python statistics numpy scipy

我正在尝试计算两个变量的Pearson相关系数.这些变量用于确定邮政编码的数量与一系列距离之间是否存在关系.所以我想看看邮政编码的数量是否随着距离范围的变化而增加/减少.

我将有一个列表,它将计算距离范围内的邮政编码数量,另一个列表将具有实际范围.

有一个包含一系列距离的列表是否可以?或者更好的是有一个像[50,100,500,1000]这样的列表,其中每个元素将包含该数量的范围.例如,列表表示长达50公里,然后从50公里到100公里,依此类推.

luc*_*asg 16

使用scipy:

scipy.stats.pearsonr(x, y)
Run Code Online (Sandbox Code Playgroud)

计算Pearson相关系数和用于测试非相关性的p值.

Pearson相关系数测量两个数据集之间的线性关系.严格来说,Pearson的相关性要求每个数据集都是正态分布的.与其他相关系数一样,这个相关系数在-1和+1之间变化,0表示没有相关性.-1或+1的相关性意味着精确的线性关系.正相关意味着随着x的增加,y也增加.负相关意味着随着x增加,y减小.

p值粗略地表示不相关系统产生具有Pearson相关性的数据集的概率至少与从这些数据集计算的数据集一样极端.p值并不完全可靠,但对于大于500左右的数据集可能是合理的.

参数:

x:1D数组

y:1D数组的长度与x相同

退货:

(Pearson相关系数,:双尾p值)

  • 好的,更重要的是x和y数组的长度相同.然后你将元素x [i]与元素y [i]进行比较? (2认同)

Ant*_*ony 7

您还可以使用numpy:

numpy.corrcoef(x, y)
Run Code Online (Sandbox Code Playgroud)

这会给你一个看起来像的相关矩阵:

[[1          correlation(x, y)]
[correlation(y, x)          1]]
Run Code Online (Sandbox Code Playgroud)