我想为20项研究产生三个相关结果 . 每项研究有3组(对照组,治疗组1和治疗组2) . 对于对照组,我的生成值是:mean = 0,sd = 1;对于两个治疗组,我的生成值是:mean = 0.40,sd = 1 . 我想要完成的两件事(我遇到了麻烦):
1)条件1:我想生成相关结果,以便每对结果之间存在不同的相关性 . 应从相关矢量中采样相关,rho = c(0.6,0.7,0.8);和
2)条件2:我想生成相关结果,以便研究的一个子集(一半)将来自相关向量的样本,rho1 = c(0.6,0.7,0.8),另一个子集(剩下的一半)将从相关向量中采样,rho2 = c(0.3,0.4,0.5)
我正在使用“mvtnorm”包来生成每个组的结果 . 这是我的代码(请原谅我对模拟和R的基本知识):
library(“mvtnorm”)
set.seed(0307)
mean_c = c(0, 0, 0)
mean_t1 = c(0.4, 0.4, 0.4)
mean_t2 = c(0.4. 0.4, 0.4)
k <- 20 # no. of studies
n <- 50 # sample size
rho <- # the value is sampled from a vector of correlations
for (i in 1:k) {
Yc <-rmvnorm(n=n, mean=mean_c, sigma=rho)
Yt1<-rmvnorm(n=n, mean=mean_t1, sigma=rho)
Yt2 <-rmvnorm(n=n, mean=mean_t2, sigma=rho)
}
我感谢编程专家提供的任何意见 . 谢谢!
2 回答
我不确定我是否理解你的问题 .
但是为了防止它对你有所帮助,我在这里提供了一个使用你的“数据”的rmvnorm函数的例子 . 我修改了一些数字以清除所有依赖项
检查输出
谢谢你的电子邮件,很高兴被问到!我不完全理解rmvnorm函数(或你的请求!),但看起来Roc回答了你的问题 . 然而,使用两半中的不同rho值,执行该功能20次是很简单的 . 我的代码可能不是最优雅的 - 可能只需要一次调用rmvnorm来生成所有这些数据,而不是像我的代码那样生成20,但这似乎工作得很好 . 您可以像使用方括号一样访问20项研究的结果 .