【发布时间】:2018-04-27 21:35:55
【问题描述】:
我想在 R 中模拟来自跟随模型的数据
Y ~ N(b0 + b1*X, sigma)
并在R中拟合以下模型
lm(Y ~ 1 + X, data)
R 代码大致如下,
nsims = 1000
X = 1:50
b0 = rnorm(nsims, 55.63, 31.40)
b1 = rnorm(nsims, 1.04, .39)
sigma = rnorm(nsims, 11.34, 4.11)
问题是我希望 b0、b1 和 sigma 相关联。我希望他们有这个进行关联。
R <- matrix(c(1, .16, .54,
.16, 1, .13,
.54, .13, 1),
nrow = 3)
colnames(R) <- c("b0", "b1", "sigma")
现在考虑到我想要这种关联结构,我上面的rnorm 代码是错误的。如果我的数据不需要这个相关矩阵,我可能会执行以下操作,
sim_data <- data.frame()
for(i in 1:nsims){
Y = b0[i] + b1[i]*X + rnorm(length(X), 0, sigma[i])
data_tmp <- data.frame(Y = Y, X = X, ID = i)
sim_data <- rbind(sim_data, data_tmp)
}
但是由于我生成参数的方式,这忽略了我的相关结构。谁能给我一些建议或指示在哪里寻找如何合并相关性?
【问题讨论】:
标签: r simulation