首页 > 解决方案 > R中使用汽车数据集的Cor函数

问题描述

使用这种相关性作为检验统计量,我如何实现 mpg 和 wt 不相关的零假设的置换检验?

with(mtcars, cor(mpg, wt))

标签: r

解决方案


如果你确实使用sample(),你可以改变 mpg 的顺序:

with(mtcars,sample(mpg))
 [1] 15.2 22.8 21.4 19.7 15.8 10.4 15.5 21.0 30.4 27.3 17.8 18.7 14.7 13.3 21.5
[16] 30.4 17.3 22.8 21.4 21.0 32.4 33.9 15.0 15.2 24.4 19.2 10.4 18.1 26.0 19.2
[31] 14.3 16.4

这应该与 wt 没有相关性(因为它是置换的),所以我们重复与这个采样的 mpg 1000x 的相关性:

perm_cor = replicate(1000,with(mtcars, cor(sample(mpg), wt)))

我们绘制并查看您的真正相关性在哪里:

obs = with(mtcars, cor(mpg, wt))
hist(perm_cor,br=20,xlim=c(-1,1))
abline(v=obs,lty=8,col="blue")

因此,使用本出版物中定义的内容,获得比您看到的更高的绝对值(相关性)的概率,因此您没有 p-value =0 :

(sum(abs(perm_cor)>=abs(obs))+1)/(length(perm_cor)+1)
[1] 0.000999001

推荐阅读