2024-06-16 13:36:20 发布
网友
我有两组同样长的数据数组,或者我可以创建一个包含两个条目的数组,我想计算数据表示的相关性和统计显著性(可能是紧密相关的,也可能没有统计显著性的相关性)。
我用Python编程,并安装了scipy和numpy。我查找并找到了Calculating Pearson correlation and significance in Python,但这似乎希望对数据进行操作,使其落入指定的范围。
我想,让scipy或numpy给出两个数组的相关性和统计意义的正确方法是什么?
您可以在这两个数组之间使用Mahalanobis distance,这会考虑到它们之间的相关性。
函数在scipy包中:scipy.spatial.distance.mahalanobis
scipy.spatial.distance.mahalanobis
有一个很好的例子here
如果你想计算皮尔逊相关系数,那么scipy.stats.pearsonr是一种方法;不过,意义只对较大的数据集有意义。此函数不要求将数据操作到指定的范围内。相关性的值落在间隔[-1,1]内,也许这就是混淆?
scipy.stats.pearsonr
[-1,1]
如果意义不是特别重要,可以使用numpy.corrcoef()。
numpy.corrcoef()
Mahalanobis距离确实考虑了两个数组之间的相关性,但它提供了一个距离度量,而不是相关性。(从数学上讲,马哈拉诺比斯距离不是一个真正的距离函数;然而,在某些情况下,它可以作为一个真正的距离函数使用,这一点非常有利。)
scipy.space.distance.euclidean()
这给出了两点、两个np数组、两个列表等之间的欧几里德距离
import scipy.spatial.distance as spsd spsd.euclidean(nparray1, nparray2)
你可以在这里找到更多信息http://docs.scipy.org/doc/scipy/reference/spatial.distance.html
您可以在这两个数组之间使用Mahalanobis distance,这会考虑到它们之间的相关性。
函数在scipy包中:
scipy.spatial.distance.mahalanobis
有一个很好的例子here
如果你想计算皮尔逊相关系数,那么
scipy.stats.pearsonr
是一种方法;不过,意义只对较大的数据集有意义。此函数不要求将数据操作到指定的范围内。相关性的值落在间隔[-1,1]
内,也许这就是混淆?如果意义不是特别重要,可以使用
numpy.corrcoef()
。Mahalanobis距离确实考虑了两个数组之间的相关性,但它提供了一个距离度量,而不是相关性。(从数学上讲,马哈拉诺比斯距离不是一个真正的距离函数;然而,在某些情况下,它可以作为一个真正的距离函数使用,这一点非常有利。)
scipy.space.distance.euclidean()
这给出了两点、两个np数组、两个列表等之间的欧几里德距离
你可以在这里找到更多信息http://docs.scipy.org/doc/scipy/reference/spatial.distance.html
相关问题 更多 >
编程相关推荐