【发布时间】:2019-06-24 19:17:14
【问题描述】:
对于 2 个独立的正态分布变量 x 和 y,它们是使用 x = rnorm(50) 和 y = rnorm(50) 找到的。计算相关性 5000 次,每次保存结果。计算绝对值大于 0.3 的相关性的可能性有多大? (默认 set.seed(42) 并绘制系数分布的直方图)
这是我迄今为止尝试过的......
set.seed(42)
n <- 50 #length of random sequence
x_norm <- rnorm(n)
y_norm <- rnorm(n)
nrun <- 5000
corr <- numeric(nrun)
for (i in 1:nrun) {
corrxy <- cor(x_norm,y_norm)
corr[i] <- sum(abs(corrxy > 0.3)) / n #save statistic in the vector
}
hist(corr)
预计我会在 [i] 中保存 5000 个不同的系数编号,并且当使用 hist(0) 绘制时,这些系数应遵循近似正态分布。但我不明白 for 循环是如何工作的,以及如何合并大于 0.3 的系数值。
【问题讨论】:
-
corrxy > 0.3为您提供布尔输出,TRUE或FALSE,对于TRUE的计算结果为 1,对于FALSE的计算结果为 0。 -
很好的问题。两个
rnorm()不应该在循环内吗?否则cor()将始终相同。
标签: r for-loop correlation normal-distribution