Mediation MODEL data <- read.table(file = "MASEM_Mediere1_Cluster.dat", header = TRUE) head(data) nvar <- 6 varnames <- c ("v1 ","v2","v3","v4","v5","v6") labels <- list (varnames,varnames) cordat <- list () for (i in 1 :nrow (data)){ cordat[[i]] <- vec2symMat ( as.matrix (data[i,3 : 17]), diag = FALSE) dimnames (cordat[[i]]) <- labels } for (i in 1 :length (cordat)){ for (j in 1 :nrow (cordat[[i]])){ if ( sum ( is.na (cordat[[i]][j,])) == nvar-1) {cordat[[i]][j,j] <- NA} }} cordat[[13]] for (i in 1:length(cordat)){ for (j in 1:nrow(cordat[[i]])){ for (k in 1:nvar){ if (is.na(cordat[[i]][j,k])==TRUE &is.na(cordat[[i]][j,j])!=TRUE &is.na(cordat[[i]][k,k])!=TRUE){ if(sum(is.na(cordat[[i]])[j,])>sum(is.na(cordat[[i]])[k,])) {cordat[[i]][k,k] <- NA} if(sum(is.na(cordat[[i]])[j,])<=sum(is.na(cordat[[i]])[k,])) {cordat[[i]][j,j] <- NA} }}}} stage1random <- tssem1 (Cov=cordat, n=data$N, method="REM") stage1random <- rerun (stage1random, autofixtau2 = TRUE) summary (stage1random) A <- create.mxMatrix( c( 0 , 0 , 0 , 0 , 0 , 0, "0.1*b21", 0 , "0.1*b23", 0 , 0 , 0, 0 , 0, 0 , 0 , 0 , 0, "0.1*b41", "0.1*b42", 0 , 0 , 0 , 0, 0, "0.1*b52", "0.1*b53","0.1*b54", 0 , 0, 0 , "0.1*b62" , "0.1*b63","0.1*b64", 0, 0), type = "Full", nrow = 6, ncol = 6, byrow = TRUE, name = "A", dimnames = list(varnames,varnames)) dimnames(A)[[1]] <- dimnames(A)[[2]] <- c("A","B","C","D","E","F") S <- create.mxMatrix( c(1, 0, "1*p22", "0.1*p31",0, 1, 0,0,0,"1*p44", 0,0,0,0,"1*p55", 0,0,0,0,"0.1*p65","1*p66"), type="Symm", byrow = TRUE, name="S", dimnames = list(varnames,varnames)) dimnames(S)[[1]] <- dimnames(S)[[2]] <- c("A","B","C","D","E","F") stage2 <- tssem2(stage1random, Amatrix=A, Smatrix=S, diag.constraints=FALSE, intervals="LB", mx.algebras=list(Ind125=mxAlgebra(b21*b52,name="Ind125"), Ind126=mxAlgebra(b21*b62,name="Ind126"), Ind145=mxAlgebra(b41*b54,name="Ind145"), Ind146=mxAlgebra(b41*b64,name="Ind146"), Ind325=mxAlgebra(b23*b52,name="Ind325"), Ind326=mxAlgebra(b23*b62,name="Ind326"), Ind1245=mxAlgebra(b21*b42*b54,name="Ind1245"), Ind1246=mxAlgebra(b21*b42*b64,name="Ind1246"))) SUBGOUP ANALYSIS cordat_lo <- cordat[data$m1<2] N_lo <- data$N[data$m1<2] cordat_hi <- cordat[data$m1>1] N_hi <- data$N[data$m1>1] stage1random_lo <- tssem1(cov=cordat_lo, n=N_lo, method="REM", RE.type="Diag") stage1random_hi <- tssem1(cov=cordat_hi, n=N_hi, method="REM", RE.type="Diag")