library(MASS)
n <- 500
means <- c(0,0)
covmat <- matrix(c(1, 0.3, 0.3, 1),nrow=2)
data <- mvrnorm(n,means,covmat)
x<-as.vector(data[,1])
z<-as.vector(data[,2])
y<-rnorm(n,0,1)+.4*x+.4*z+.2*x*z
x1<-rnorm(n,0.2,.2)+.7*x
x2<-rnorm(n,0.2,.2)+.7*x
x3<-rnorm(n,0.2,.2)+.7*x
z1<-rnorm(n,0.2,.2)+.7*z
z2<-rnorm(n,0.2,.2)+.7*z
z3<-rnorm(n,0.2,.2)+.7*z
y1<-rnorm(n,0.2,.2)+.7*y
y2<-rnorm(n,0.2,.2)+.7*y
y3<-rnorm(n,0.2,.2)+.7*y
dat<-data.frame(cbind(x1,x2,x3,z1,z2,z3,y1,y2,y3))
datOrth <-orthogonalize(dat,(1:3), (4:6))
#Fit model in Lavaan
library(lavaan)
syntax <- '
x =~ x1 + x2 +x3
z =~ z1 + z2 + z3
xz =~ x1z1 + x1z2 + x1z3 + x2z1 + x2z2 + x2z3 + x3z1 + x3z2 + x3z3
y =~ y1 + y2 + y3
x ~~ z
x ~~ 0*xz
z ~~ 0*xz
y ~ x + z +xz
'
fit <- sem(model = syntax, data=datOrth, std.lv=TRUE)
summary(fit, fit.measures=TRUE)
Run the code above in your browser using DataLab