#generate data for 2 process model, each process measured by noisy indicator,
#stable individual differences in process levels.
generatingModel<-ctModel(Tpoints=8,n.latent=2,n.TDpred=0,n.TIpred=0,n.manifest=2,
MANIFESTVAR=diag(.1,2),
LAMBDA=diag(1,2),
DRIFT=matrix(c(-.2,-.05,-.1,-.1),nrow=2),
DIFFUSION=matrix(c(1,.2,0,4),2),
CINT=matrix(c(1,0),nrow=2),
T0MEANS=matrix(0,ncol=1,nrow=2),
T0VAR=diag(1,2))
nsubjects <- 15
traitChol <- matrix(c(.5,.2,0,.8),nrow=2)
subjectCint <- t(replicate(nsubjects, as.numeric(traitChol %*% rnorm(2))))
datalist <- vector("list", nsubjects)
for(i in seq_len(nsubjects)){
subjectModel <- generatingModel
subjectModel$CINT <- matrix(subjectCint[i,], ncol = 1)
d <- ctGenerate(subjectModel,n.subjects=1,burnin=10)
d[,'id'] <- i
datalist[[i]] <- d
}
data <- do.call(rbind, datalist)
Run the code above in your browser using DataLab