标签: pearson

这个错误意味着什么:ValueError:形状不匹配:对象无法广播到单个形状?

我使用scipy pearsonr(x,y)方法,我无法弄清楚为什么会发生这种错误.它计算前两个(我在循环中运行数千个这样的测试)然后死掉.有没有人对问题可能是什么有任何想法?

r_num = n*(np.add.reduce(xm*ym))
Run Code Online (Sandbox Code Playgroud)

这是发生错误的pearsonr方法中的行,任何帮助都将非常感谢谢谢!

python pearson

26
推荐指数
1
解决办法
8万
查看次数

Scipy:Pearson的相关性总是返回1

我正在使用Python库scipy来计算两个浮点数组的Pearson相关性.即使数组不同,系数的返回值也始终为1.0.例如:

[-0.65499887  2.34644428]
[-1.46049758  3.86537321]
Run Code Online (Sandbox Code Playgroud)

我用这种方式调用例程:

r_row, p_value = scipy.stats.pearsonr(array1, array2)
Run Code Online (Sandbox Code Playgroud)

r_row始终为1.0.我究竟做错了什么?

python statistics scipy pearson correlation

11
推荐指数
2
解决办法
1万
查看次数

在皮尔逊/大熊猫的皮尔逊r Drop Drop Drop'

快速提问:有没有办法在scipy中使用'dropna'和Pearson的r函数?我正在将它与熊猫一起使用,我的一些数据中有漏洞.我知道你曾经能够在较旧版本的scipy中使用Spearman的r来抑制'nan' ,但是现在缺少这个功能.

在我看来,这似乎是一种不妥协,所以我想知道我是否遗漏了一些明显的东西.

我的代码:

for i in range(len(frame3.columns)):    
    correlation.append(sp.pearsonr(frame3.iloc[ :,i], control['CONTROL']))
Run Code Online (Sandbox Code Playgroud)

nan scipy pearson pandas

8
推荐指数
1
解决办法
6602
查看次数

scipy.stats.pearsonr 的最小 p 值

我在我的数据上运行 scipy.stats.pearsonr,我得到

(0.9672434106763087, 0.0)

r 值高而 p 值非常低是合理的。但是,p显然不是0,所以我想知道p=0.0是什么意思。是 p<10^-10,p<10^-100 还是极限?

scipy pearson

8
推荐指数
1
解决办法
1006
查看次数

Pearson在Matlab中的系数和协方差计算

我想在Matlab中计算Pearson的相关系数(不使用Matlab的corr函数).

简单地说,我有两个向量A和B(每个向量都是1x100),我试图像这样计算Pearson系数:

P = cov(x, y)/std(x, 1)std(y,1)
Run Code Online (Sandbox Code Playgroud)

我正在使用Matlab covstd函数.我没有得到的是,cov函数返回一个方形矩阵,如下所示:

corrAB =
    0.8000    0.2000
    0.2000    4.8000
Run Code Online (Sandbox Code Playgroud)

但我希望单个数字作为协方差,所以我可以得出一个P(皮尔逊系数)数.我错过了什么?

matlab pearson correlation

7
推荐指数
2
解决办法
3万
查看次数

协作过滤程序:当没有足够的数据时如何处理Pearson分数

我正在使用协同过滤构建推荐引擎.对于相似性分数,我使用Pearson相关性.这在大多数情况下都很棒,但有时我的用户只共享1或2个字段.例如:

User 1{
a: 4
b: 2
}

User 2{
a: 4
b: 3
}
Run Code Online (Sandbox Code Playgroud)

由于这只是2个数据点,因此Pearson相关性总是1(直线或完美相关).这显然不是我想要的,那么我应该使用什么价值呢?我可以扔掉所有这样的实例(给出0的相关性),但我的数据现在非常稀疏,我不想丢失任何东西.我可以使用哪些相似度得分与其他相似度得分(所有Pearson)相符合?

recommendation-engine sparse-matrix collaborative-filtering pearson

6
推荐指数
2
解决办法
3057
查看次数

如何在推荐系统中的Pearson相关用户 - 用户相似度矩阵中处理​​NaN?

我正在从用户评级数据(特别是MovieLens100K数据)生成用户 - 用户相似度矩阵.计算相关性导致一些NaN值.我在一个较小的数据集中测试过:

用户 - 项目评级矩阵

   I1 I2 I3 I4
U1 4  0  5  5  
U2 4  2  1  0  
U3 3  0  2  4  
U4 4  4  0  0  
Run Code Online (Sandbox Code Playgroud)

用户 - 用户Pearson相关相似度矩阵

              U1        U2        U3       U4      U5
U1             1        -1         0      -nan  0.755929
U2            -1         1         1      -nan -0.327327
U3             0         1         1      -nan  0.654654
U4          -nan      -nan      -nan      -nan      -nan
U5      0.755929 -0.327327  0.654654      -nan         1
Run Code Online (Sandbox Code Playgroud)

为了计算皮尔逊相关性,在两个用户之间仅考虑经过指定的项目.(参见下一代推荐系统:对最新技术和可能扩展的调查,Gediminas Adomavicius,Alexander Tuzhilin

我该如何处理NaN值?

编辑 这是一个代码,我在其中找到R中的皮尔森相关性.R矩阵是用户项目评级矩阵.包含1到5刻度等级0表示未评级.S是用户 - …

recommendation-engine r nan pearson correlation

6
推荐指数
1
解决办法
3108
查看次数

R中的cor()行为在各个向量和data.frame之间有所不同

我试图获得数据框中所有行相对于彼此的Pearson相关系数.有些值是空的(NA),这似乎是一个问题,我在两个缺少值的向量上运行cor()时没有遇到这个问题.这是2个向量的正确结果:

x <- c(NA, 4.5, NA, 4, NA, 1)
y <- c(2.5, 3.5, 3, 3.5, 3, 2.5)
cor(x,y, use = "complete.obs")
[1] 0.9912407
Run Code Online (Sandbox Code Playgroud)

这是结果,当它们是数据框的一部分时:

cor(t(critics1), use = "complete.obs")
   y  a  b  c  d  e  x
y  1 NA NA NA NA NA NA
a NA  1  1  1 -1  1 -1
b NA  1  1  1 -1  1 -1
c NA  1  1  1 -1  1 -1
d NA -1 -1 -1  1 -1  1
e NA  1  1  1 …
Run Code Online (Sandbox Code Playgroud)

r pearson correlation dataframe

5
推荐指数
1
解决办法
5756
查看次数

皮尔逊相关相似度和调整余弦相似度有什么区别?

虽然它们非常相似,但我确信皮尔逊相关相似度和调整余弦相似度之间存在一些差异,因为所有论文和网页都将它们分为两种不同的类型。

然而,他们都没有提供明确的定义。是其中一页。

谁能说出其中的区别吗?

谢谢

similarity pearson cosine-similarity

5
推荐指数
1
解决办法
4452
查看次数

为什么Pearson相关输出是NaN?

我正在尝试获取R中变量之间的Pearson相关系数。这是变量的散点图:

ggplot(results_summary, aes(x =D_in, y = D_ex)) + geom_point(col=ifelse(results_summary$FDR < 0.05, ifelse(results_summary$logF>0, "red", "green" ), "black"))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如您所见,变量之间的相关性很好,因此我期望相关系数很高。但是,当我尝试获得Pearson相关系数时,我得到的是NaN!

> cor(results_summary$D_in, results_summary$D_ex, method="spearman")
[1] 0.868079
> cor(results_summary$D_in, results_summary$D_ex, method="kendall")
[1] 0.6973086
> cor(results_summary$D_in, results_summary$D_ex, method="pearson")
[1] NaN
Run Code Online (Sandbox Code Playgroud)

我检查了我的数据是否包含任何NaN:

> nrow(subset(results_summary, is.nan(results_summary$D_ex)==TRUE)) 
[1] 0
> nrow(subset(results_summary, is.nan(results_summary$D_in)==TRUE)) 
[1] 0
> cor(results_summary$D_in, results_summary$D_ex, method="pearson", use="complete.obs")
[1] NaN
Run Code Online (Sandbox Code Playgroud)

但是似乎这不是产生NaN的原因。有人可以提供任何有关这里可能发生的情况的线索吗?

谢谢你的时间!

statistics r pearson

5
推荐指数
1
解决办法
5134
查看次数