如何从 r 和 n 反算 P 值

How to backcalculate P value from r and n

所以我有一些相关性的 r 和 n 值。我想反算 p 值。我知道网上有大量计算器可以轻松完成此操作,但我正在寻找一种在 R 中完成此操作的方法。

想要获得给定 r 和 n 的 p 值以进行简单相关。

我猜相关性是指 Pearson 积矩相关性。如果是这样,您可以为此编写一个函数

rn_to_p <- function(rval, n){
  # calculate r to t
  tval <- rval/(sqrt((1-rval**2)/(n-2)))
  # look up p value for t
  pval <- 2*pt(abs(tval), n-2, lower=FALSE)
  return(pval)}

这是一个例子

# make it reproducible
set.seed(1)
# generate data
df <- data.frame(matrix(rnorm(200), ncol= 2))

# apply the function
rn_to_p(rval=cor.test(df$X1, df$X2)$estimate, n= nrow(df))
# 0.9921663
# see results of cor.test
cor.test(df$X1, df$X2)
# ... p-value = 0.9922 ...

举个例子...

> rn_to_p(-0.088227, n = 237)
[1] 0.1758329

可以找到将皮尔逊系数 r 转换为 t 值的公式 here,例如。