# NOT RUN {
## Check whether the correlation matrices are valid (positive definite)
is.pd(Cooke16$data)
## Since the correlation matrix in Study 3 is not positive definite,
## we exclude it in the following analyses
my.data <- Cooke16$data[-3]
my.n <- Cooke16$n[-3]
## Show the no. of studies per correlation
pattern.na(my.data, show.na = FALSE)
## Show the total sample sizes per correlation
pattern.n(my.data, my.n)
## Stage 1 analysis
## Random-effects model
random1 <- tssem1(my.data, my.n, method="REM", RE.type="Diag")
summary(random1)
A1 <- create.mxMatrix(c(0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
"0.2*SN2BI","0.2*ATT2BI","0.2*PBC2BI",0,0,
0,0,"0.2*PBC2BEH","0.2*BI2BEH",0),
type="Full", ncol=5, nrow=5,
byrow=TRUE, as.mxMatrix=FALSE)
## This step is not necessary but it is useful for inspecting the model.
dimnames(A1)[[1]] <- dimnames(A1)[[2]] <- colnames(Cooke16$data[[1]])
## Display A1
A1
S1 <- create.mxMatrix(c(1,
"0.1*ATT_SN", 1,
"0.1*PBC_SN", "0.1*PBC_ATT", 1,
0, 0, 0, "0.5*VarBI",
0, 0, 0, 0, "0.5*VarBEH"),
type = "Symm", ncol=5, nrow=5,
byrow=TRUE, as.mxMatrix=FALSE)
dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- colnames(Cooke16$data[[1]])
S1
## Stage 2 analysis
random2 <- tssem2(random1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE, intervals.type="LB")
summary(random2)
my.plot <- meta2semPlot(random2)
semPlot::semPaths(my.plot, whatLabels="est", sizeMan=8,
edge.label.cex=1.5, color="yellow",
edge.color = "black", weighted=FALSE)
# }
Run the code above in your browser using DataLab