gpt4 book ai didi

Matlab 获取相关 p 值的方法

转载 作者:行者123 更新时间:2023-12-04 02:10:30 26 4
gpt4 key购买 nike

我有一个大小为 N 的向量 A,我想计算 A 与其他向量 B 的相关系数和 p 值。

我在 Matlab 中使用了 corrcoef,像这样:

[R, P] = corrcoef(A, B) 

据我所知,对这种相关性 R(1,2) 进行 t 检验以获得等于 P(1,2) 的 p 值> 将意味着计算测试统计量t = sqrt(N-2)*R./sqrt(1-R.^2)并通过

获得 p 值
P = 1 - tcdf(t, N-2). 

但是,如果我以这种方式进行,我得到的 p 值与 Matlab 计算的 p 值不同。有人可以解释为什么,或者我在计算中遗漏了什么吗?谢谢!

编辑:即使我做了双面测试 (P = 2*(1-tcdf(abs(t), N-2))),仍然有很多差异我的和 Matlab 的结果。

最佳答案

认为您的 t-stat 计算公式可能不正确。查看基本统计数据 page ,我们看到 t-stat 的公式如下所示。

T-stat

看起来你在做一个没有必要的元素方面的操作。

在 matlab 中做一个测试来证明这一点。

>> a=rand(14,1)

a =

0.6110
0.7788
0.4235
0.0908
0.2665
0.1537
0.2810
0.4401
0.5271
0.4574
0.8754
0.5181
0.9436
0.6377
>> b=rand(14,1)

b =

0.0358
0.1759
0.7218
0.4735
0.1527
0.3411
0.6074
0.1917
0.7384
0.2428
0.9174
0.2691
0.7655
0.1887

我首先为 a 和 b 创建两个随机向量。

>> [R,p]=corrcoef(a,b)

R =

1.0000 0.2428
0.2428 1.0000


p =

1.0000 0.4030
0.4030 1.0000

R(1,2) 在这种情况下是我们的 rho,我的公式完全按照上面的方式计算。

t=R(1,2)*sqrt((length(a)-2)/(1-R(1,2)^2))
t =

0.8670


>> p=2*(1-tcdf(t,length(a)-2))

p =

0.4030

您可以看到相关系数进行了双侧检验。

关于Matlab 获取相关 p 值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38999348/

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