gpt4 book ai didi

python - 在没有 rcorr() 库的情况下查找 R 中两个非方矩阵之间的 PIL 逊相关的 p 值

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:00 25 4
gpt4 key购买 nike

我有两个非方阵,我需要找到它们之间的 PIL 逊相关值和相关的 p 值。我知道 rcorr() 库,但是这个库的 RAM 内存使用量很大 - 我有两个巨大的矩阵,我无法使用 rcorr()

使用 cor() 库,我能够获得相关值。有了这个相关数组,就可以创建一个函数来获取 p 值,而无需 rcorr()??

ps. 我也尝试研究 Python 来执行此操作,但我只能找到不接受非方矩阵的库,例如 pearsonrlinegress 来自 scipy.stat

 data1 <- matrix(runif(30),ncol=5)
data2 <- matrix(runif(24),ncol=4)
correlation <-cor(data1,data2,method='pearson')
correlation
[,1] [,2] [,3] [,4]
[1,] -0.63451452 0.8311530 -0.18859842 0.004892728
[2,] 0.66676636 -0.8633116 0.02666929 0.010362925
[3,] -0.03299319 -0.4435478 0.06281622 -0.502668829
[4,] -0.79032734 0.7334099 -0.13531482 0.087650016
[5,] -0.02617180 0.5419900 0.67293404 0.112950907

最佳答案

大多数测试假设零假设输入来自独立的正态分布数据

然后他们将 t = r * sqrt(n-2)/sqrt(1-r^2) 作为 t 统计量进行测试,其中 n- 2 自由度

所以你可以尝试这样的事情(除了基本 stats 之外没有额外的包)

p <- function(t, d) { 1 - 2 * abs(pt(t, d) - 1/2) }
t <- function(r, n) { r * sqrt(n-2) / sqrt(1-r^2) }
rownum <- 6
set.seed(1)
data1 <- matrix(rnorm(5*rownum), nrow=rownum)
data2 <- matrix(rnorm(4*rownum), nrow=rownum)
correlation <- cor(data1, data2, method='pearson')
correlation
p(d(correlation, rownum), rownum-2)

给出的相关性

            [,1]        [,2]       [,3]        [,4]
[1,] -0.52736212 -0.22015909 0.4017038 -0.09294361
[2,] 0.02056352 0.04304460 0.3434117 0.24733758
[3,] 0.40489453 0.73092841 -0.2950121 -0.83761011
[4,] 0.28672335 -0.07727180 -0.3430130 -0.02175433
[5,] 0.52745346 0.09179105 -0.7022999 -0.10932760

p-

的值
    [,1]       [,2]      [,3]       [,4]
[1,] 0.2822894 0.67509693 0.4298549 0.86098603
[2,] 0.9691591 0.93547298 0.5051319 0.63655918
[3,] 0.4258473 0.09885895 0.5703196 0.03741457
[4,] 0.5817008 0.88432299 0.5056595 0.96737366
[5,] 0.2821905 0.86270012 0.1197462 0.83666197

其中一个小于 0.05,这不足为奇,因为您有 20 个值。

将这些矩阵右下角的数字与

的结果进行比较
> cor.test(data1[,5], data2[,4])

Pearson's product-moment correlation

data: data1[, 5] and data2[, 4]
t = -0.21997, df = 4, p-value = 0.8367
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.8458408 0.7706066
sample estimates:
cor
-0.1093276

所以这个方法似乎对相关性和p-值产生相同的答案

关于python - 在没有 rcorr() 库的情况下查找 R 中两个非方矩阵之间的 PIL 逊相关的 p 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47294598/

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