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值)
您还可以使用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)