Use a função rmvnorm (). São necessários 3 argumentos: a matriz de covariância das variações, as médias e o número de linhas.
O sigma terá 3 * 5 = 15 linhas e colunas. Um para cada observação de cada variável. Existem muitas maneiras de definir esses 15 ^ 2 parâmetros (ar, simetria bilateral, não estruturada ...). No entanto, você preenche essa matriz, esteja ciente das premissas, principalmente quando define uma correlação / covariância como zero ou quando define duas variações para serem iguais. Para um ponto de partida, uma matriz sigma pode ser algo como isto:
sigma=matrix(c(
#y1 y2 y3
3 ,.5, 0, 0, 0, 0, 0, 0, 0, 0,.5,.2, 0, 0, 0,
.5, 3,.5, 0, 0, 0, 0, 0, 0, 0,.2,.5,.2, 0, 0,
0 ,.5, 3,.5, 0, 0, 0, 0, 0, 0, 0,.2,.5,.2, 0,
0 , 0,.5, 3,.5, 0, 0, 0, 0, 0, 0, 0,.2,.5,.2,
0 , 0, 0,.5, 3, 0, 0, 0, 0, 0, 0, 0, 0,.2,.5,
0 ,0 ,0 ,0 , 0, 3,.5, 0, 0, 0, 0, 0, 0, 0, 0,
0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0, 0, 0, 0, 0, 0, 0,
0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0, 0, 0, 0, 0, 0,
0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0, 0, 0, 0, 0,
0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3, 0, 0, 0, 0, 0,
.5,.2,0 ,0 ,0 ,0 ,0 ,0 ,0 , 0, 3,.5, 0, 0, 0,
.2,.5,.2,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0, 0,
0 ,.2,.5,.2,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0,
0 ,0 ,.2,.5,.2,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5,
0 ,0 ,0 ,.2,.5,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3
),15,15)
Portanto, o sigma [1,12] é 0,2 e isso significa que a covariância entre a primeira observação de Y1 e a segunda observação de Y3 é 0,2, condicional a todas as outras 13 variáveis. Nem todas as linhas diagonais precisam ter o mesmo número: essa é uma suposição simplificadora que eu fiz. Às vezes faz sentido, às vezes não. Em geral, significa que a correlação entre uma 3ª observação e uma 4ª é igual à correlação entre uma 1ª e uma segunda.
Você também precisa de meios. Poderia ser tão simples quanto
meanTreat=c(1:5,51:55,101:105)
meanControl=c(1,1,1,1,1,50,50,50,50,50,100,100,100,100,100)
Aqui os 5 primeiros são os meios para as 5 observações de Y1, ..., os 5 últimos são as observações de Y3
obtenha 2000 observações de seus dados com:
sampleT=rmvnorm(1000,meanTreat,sigma)
sampleC=rmvnorm(1000,meanControl,sigma)
sample=data.frame(cbind(sampleT,sampleC) )
sample$group=c(rep("Treat",1000),rep("Control",1000) )
colnames(sample)=c("Y11","Y12","Y13","Y14","Y15",
"Y21","Y22","Y23","Y24","Y25",
"Y31","Y32","Y33","Y34","Y35")
Onde Y11 é a 1ª observação de Y1, ..., Y15 é o 5º obs de Y1 ...
n <- 3*5; sigma <- diag(1, nrow=n, ncol=n); sigma[rbind(cbind(1:n-1,1:n),cbind(1:n,1:n-1))] <- 1/2
. Uma abordagem semelhante irá gerar o segundo exemplo. No entanto, eles têm um problema comum: você perdeu as covariâncias entre os 's durante cada período - essas matrizes não refletem uma estrutura de medidas repetidas.