Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的自举相关_R_Correlation_Statistics Bootstrap - Fatal编程技术网

R中的自举相关

R中的自举相关,r,correlation,statistics-bootstrap,R,Correlation,Statistics Bootstrap,我想在R中做一个自举关联。 我有两个变量Var1和Var2,我想得到皮尔逊相关性的自举p值 my variables look like this: x y 1 .6080522 1.707642 2 1.4307273 1.772616 3 0.8226198 1.768537 4 1.7714221 1.265276 5 1.5986213 1.855719 6 1.0000000 1.606106 7

我想在R中做一个自举关联。 我有两个变量Var1和Var2,我想得到皮尔逊相关性的自举p值

my variables look like this:
      x            y
1   .6080522    1.707642
2   1.4307273   1.772616
3   0.8226198   1.768537
4   1.7714221   1.265276
5   1.5986213   1.855719
6   1.0000000   1.606106
7   1.1678940   1.671457
8   0.6630012   1.608428
9   1.0842423   1.670619
10  0.5592512   1.107783
11  1.6442616   1.492832
12  0.8326965   1.643923
13  1.1696954   1.763181
14  0.7484543   1.762921
15  1.0842423   1.591566
16  0.9014748   1.718669
17  0.7604917   1.782863
18  0.8566499   1.796216
19  1.4307273   1.913675
20  1.7579695   1.903155
到目前为止,我有:

data = as.data.frame(data)
x = data$Var1
y = data$Var2
dat = data.frame(x,y)

library(boot)
set.seed(1)
bootCorTest3 <- function(data, i){
  d <- data[i, ]
  results  <- cor.test(d$x, d$y, method='pearson')
  c(est = results$estimate, stat = results$statistic, param = results$parameter, p.value = results$p.value, CI = results$conf.int)
}


b3 <- boot(dat, bootCorTest3, R = 1000)
b3

# Original (non-bootstrap) statistics with label
b3$t0
colMeans(b3$t)
boot.ci(b3, type = c("norm", "basic", "perc", "bca")) #bootstrapped CI. 
看来一切都很顺利。问题是我在不同的软件上运行了相同的统计数据,结果大不相同。这里得到的p值比另一个高很多。 我想我可能在这里做错了什么,因为我在R方面不强

有人能给我一些关于这个代码的反馈吗?我做错什么了吗?你会得到Pearson相关性的自举p.值吗


谢谢您的时间。

如果您想引导相关测试,只需从引导统计函数返回相关系数即可。在这种情况下,引导相关性测试的p值是不合适的,因为您忽略了相关性测试的方向性

在CrossValidated上检查这个问题,以获得一些关于执行引导假设测试的好答案:

库(“启动”)
数据校正(数据[i,“x”],数据[i,“y”],方法=“皮尔逊”)
#>},R=1000)
#> 
#> 
#>引导统计:
#>原始偏差标准误差
#>t1*0.1279691-0.0004316781 0.314056
ci(b3,type=c(“norm”、“basic”、“perc”、“bca”)#自举ci。
#>自举置信区间计算
#>基于1000个引导复制
#> 
#>电话:
#>ci(boot.out=b3,type=c(“norm”、“basic”、“perc”、“bca”))
#> 
#>间隔时间:
#>普通初级
#> 95%   (-0.4871,  0.7439 )   (-0.4216,  0.7784 )  
#> 
#>水平百分位数BCa
#> 95%   (-0.5225,  0.6775 )   (-0.5559,  0.6484 )  
#>原始比例尺上的计算和间隔
地块(密度(b3$t))
abline(v=0,lty=“虚线”,col=“灰色60”)


在这种情况下,如果没有p值,可以很安全地说,抽样分布的大部分质量非常接近于零。

引导复制在t矩阵的行中。是的,好的。因此,如果我这样做(意味着(b3$t)(或colMeans(b3$t))我应该得到自举的p.value,对吗?我会认为使用rowMeans或只是means.rowMeans应该是一行一行的平均值。在b3$t中,我得到1列1000行。每行一个p.value(对吗?)。因此,如果我使用rowMeans(b3$t)我得到了1000个结果。我认为colMeans或just Means有效,因为我只得到一个值,如果我在excel中导出并执行该平均值,我会得到相同的值。问题是该值仍然与其他软件大不相同…“大不相同”。也许你可以更具体一些?令人惊讶的回答!谢谢!
est.cor      stat.t    param.df     p.value         CI1         CI2
 0.28495324  2.13981008 48.00000000  0.14418623  0.01438146  0.51726022