如何从R'的相关分析中计算P值和标准差;s cor()

如何从R'的相关分析中计算P值和标准差;s cor(),r,correlation,R,Correlation,我有一个包含54个样本的每个条件(x和y)。 我用以下方法计算了相关性: > dat <- read.table("http://dpaste.com/1064360/plain/",header=TRUE) > cor(dat$x,dat$y) [1] 0.2870823 >dat cor(dat$x,dat$y) [1] 0.2870823 在上面R的cor()函数中,是否有一种生成相关性SE的原生方法 T检验的p值 正如本文(第14.6页)所解释的,我认为您要查找的只

我有一个包含54个样本的每个条件(x和y)。 我用以下方法计算了相关性:

> dat <- read.table("http://dpaste.com/1064360/plain/",header=TRUE)
> cor(dat$x,dat$y)
[1] 0.2870823
>dat cor(dat$x,dat$y)
[1] 0.2870823
在上面R的cor()函数中,是否有一种生成相关性SE的原生方法 T检验的p值


正如本文(第14.6页)所解释的,我认为您要查找的只是
cor.test()
函数,它将返回您要查找的所有内容,除了标准的相关错误。但是,正如您所看到的,这个公式非常简单,如果您使用
cor.test
,您就有了计算它所需的所有输入

使用示例中的数据(以便您自己将其与第14.6页的结果进行比较):

如果需要,还可以创建如下函数,以包含相关系数的标准误差

为方便起见,以下是方程式:

r=相关估计值,n-2=自由度,这两个参数在上述输出中都很容易获得。因此,一个简单的函数可以是:

cor.test.plus <- function(x) {
  list(x, 
       Standard.Error = unname(sqrt((1 - x$estimate^2)/x$parameter)))
}
此处,“mydf”的定义如下:

mydf <- structure(list(Neighborhood = c("Fair Oaks", "Strandwood", "Walnut Acres",
  "Discov. Bay", "Belshaw", "Kennedy", "Cassell", "Miner", "Sedgewick", 
  "Sakamoto", "Toyon", "Lietz"), X = c(50L, 11L, 2L, 19L, 26L, 
  73L, 81L, 51L, 11L, 2L, 19L, 25L), Y = c(22.1, 35.9, 57.9, 22.2, 
  42.4, 5.8, 3.6, 21.4, 55.2, 33.3, 32.4, 38.4)), .Names = c("Neighborhood", 
  "X", "Y"), class = "data.frame", row.names = c(NA, -12L))

mydf您不能简单地从返回值中获取测试统计信息吗?当然,测试统计是估算值/se,因此您可以计算se,而不只是将估算值除以tstat:

在上述答案中使用
mydf

r = cor.test(mydf$X, mydf$Y)
tstat = r$statistic
estimate = r$estimate
estimate; tstat

       cor 
-0.8492663 
        t 
-5.086732 

也许你在寻找
?cor.test
。这个等式需要引用,不是(1-r^2)/sqrt(自由度)吗?或
mydf <- structure(list(Neighborhood = c("Fair Oaks", "Strandwood", "Walnut Acres",
  "Discov. Bay", "Belshaw", "Kennedy", "Cassell", "Miner", "Sedgewick", 
  "Sakamoto", "Toyon", "Lietz"), X = c(50L, 11L, 2L, 19L, 26L, 
  73L, 81L, 51L, 11L, 2L, 19L, 25L), Y = c(22.1, 35.9, 57.9, 22.2, 
  42.4, 5.8, 3.6, 21.4, 55.2, 33.3, 32.4, 38.4)), .Names = c("Neighborhood", 
  "X", "Y"), class = "data.frame", row.names = c(NA, -12L))
r = cor.test(mydf$X, mydf$Y)
tstat = r$statistic
estimate = r$estimate
estimate; tstat

       cor 
-0.8492663 
        t 
-5.086732