gpt4 book ai didi

python - 使用 pearsonr 时遇到无效值

转载 作者:太空狗 更新时间:2023-10-29 17:56:59 25 4
gpt4 key购买 nike

也许我弄错了。如果是这样,我很抱歉问这个问题。

我想计算Pearson's correlation coefficent通过使用 scipy 的 pearsonr 函数。

from scipy.stats.stats import pearsonr

X = [4, 4, 4, 4, 4, 4]
Y = [4, 5, 5, 4, 4, 4]

pearsonr(X, Y)

下面出现错误

RuntimeWarning: invalid value encountered in double_scalars ###

我报错的原因是E[X] = 4 (Excepted Value of X is 4)

我在scpy.stats.stats.py中查看了pearsonr函数的代码。 pearsonr函数的部分内容如下。

mx = x.mean() # which is 4
my = y.mean() # not necessary
xm, ym = x-mx, y-my # xm = [0 0 0 0 0 0]
r_num = n*(np.add.reduce(xm*ym)) #r_num = 0, because xm*ym 1x6 Zero Vector.
r_den = n*np.sqrt(ss(xm)*ss(ym)) #r_den = 0
r = (r_num / r_den) # Invalid value encountered in double_scalars

最后,pearsonr 返回 (nan, 1.0)

pearsonr 应该返回 (0, 1.0) 吗?

我认为如果向量的每一行/列都具有相同的值,则协方差应该为零。因此根据 PCC 的定义, PIL 逊相关系数也应该为零。

Pearson's correlation coefficient between two variables is defined as the covariance of the two variables divided by the product of their standard deviations.

是bug还是哪里出错了?

最佳答案

Pearson's correlation coefficient between two variables is defined as the covariance of the two variables divided by the product of their standard deviations.

所以这是协方差

  • [4, 5, 5, 4, 4, 4] 次的标准差
  • [4, 4, 4, 4, 4, 4] 的标准差。

[4, 4, 4, 4, 4, 4] 的标准差为零。

所以这是协方差

  • [4, 5, 5, 4, 4, 4] 次的标准差
  • 零。

所以这是协方差

  • 零。

任何除以零的值都是nan。协方差的值无关

关于python - 使用 pearsonr 时遇到无效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7653993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com