## Not run:
# data(Becker92)
#
# #### Fixed-effects model
# ## First stage analysis
# ## Replicate Becker's (1992) analysis using 4 studies only
# fixed1 <- tssem1(Becker92$data[1:4], Becker92$n[1:4], method="FEM")
# summary(fixed1)
#
# ## Prepare a regression model using create.mxMatrix()
# A1 <- create.mxMatrix(c(0,0,0,"0.2*Spatial2Math",
# 0,0,"0.2*Verbal2Math",0,0), type="Full",
# ncol=3, nrow=3, as.mxMatrix=FALSE)
#
# ## This step is not necessary but it is useful for inspecting the model.
# dimnames(A1)[[1]] <- dimnames(A1)[[2]] <- c("Math","Spatial","Verbal")
#
# ## Display A1
# A1
#
# S1 <- create.mxMatrix(c("0.2*ErrorVarMath",0,0,1,"0.2*CorSpatialVerbal",1),
# type="Symm", as.mxMatrix=FALSE)
#
# ## This step is not necessary but it is useful for inspecting the model.
# dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c("Math","Spatial","Verbal")
#
# ## Display S1
# S1
#
# ################################################################################
# ## Alternative model specification in lavaan model syntax
# model <- "## Regression paths
# Math~Spatial2Math*Spatial
# Math~Verbal2Math*Verbal
# Spatial~~CorSpatialVerbal*Verbal
# ## Fix the variances of Spatial and Verbal at 1
# Spatial~~1*Spatial
# Verbal~~1*Verbal
# ## Label the error variance of Math
# Math~~ErrorVarMath*Math+start(0.2)*Math"
#
# RAM <- lavaan2RAM(model, obs.variables=c("Math","Spatial","Verbal"))
# RAM
#
# A1 <- RAM$A
# S1 <- RAM$S
# ################################################################################
#
# ## Fixed-effects model: Second stage analysis
# ## Two equivalent versions to calculate the R2 and its 95% LBCI
# fixed2 <- tssem2(fixed1, Amatrix=A1, Smatrix=S1, intervals.type="LB",
# mx.algebras=list(R1=mxAlgebra(Spatial2Math^2+Verbal2Math^2
# +2*CorSpatialVerbal*Spatial2Math*Verbal2Math, name="R1"),
# R2=mxAlgebra(One-Smatrix[1,1], name="R2"),
# One=mxMatrix("Iden", ncol=1, nrow=1, name="One")))
# summary(fixed2)
#
# #### Random-effects model
# ## First stage analysis
# ## No random effects for off-diagonal elements
# random1 <- tssem1(Becker92$data, Becker92$n, method="REM", RE.type="Diag")
# summary(random1)
#
# ## Random-effects model: Second stage analysis
# random2 <- tssem2(random1, Amatrix=A1, Smatrix=S1, intervals.type="z")
# summary(random2)
#
# #### Conventional fixed-effects GLS approach
# ## First stage analysis
# ## No random effects
# ## Replicate Becker's (1992) analysis using 4 studies only
# gls1 <- tssem1(Becker92$data[1:4], Becker92$n[1:4], method="REM", RE.type="Zero",
# model.name="Fixed effects GLS Stage 1")
# summary(gls1)
#
# ## Fixed-effects GLS model: Second stage analysis
# gls2 <- tssem2(gls1, Amatrix=A1, Smatrix=S1, intervals.type="z",
# model.name="Fixed effects GLS Stage 2")
# summary(gls2)
#
# ## Load the library
# library("semPlot")
#
# ## Convert the model to semPlotModel object
# my.plot <- meta2semPlot(gls2)
#
# ## Plot the model with labels
# semPaths(my.plot, whatLabels="path", nCharEdges=10, nCharNodes=10, color="red")
#
# ## Plot the parameter estimates
# semPaths(my.plot, whatLabels="est", nCharNodes=10, color="green")
# ## End(Not run)
Run the code above in your browser using DataLab