1 FUNCTIONS

2 DATA PREPARATION

2.1 Load all sheets of an Excel

Sheets <- rio::import_list("https://drive.google.com/uc?id=1-_SGvqQpl0bPTa2e9vVcr0SJEjFZMEsn&export=download")

#Sheets <- rio::import_list("https://drive.google.com/uc?id=1W9iSMJyKMf9dlay7YyCyRrY5E1GLceAQ&export=download")

#Sheets <- rio::import_list("https://drive.google.com/uc?id=1eWmXuL3uXAHMZesaCuiSQcuMD8djEKNc&export=download")
#Sheets <-rio::import_list("C:\\Users\\S\\Documents\\WXWork\\1688851821252719\\Cache\\File\\2024-09\\Matrix-overall.xlsx")
#as.data.frame(Sheets$Template)

# 使用 lapply 将 Sheets 中的每个数据框转换为 data.table,并替换缺失值
Sheets <- lapply(Sheets, function(df) {
  # 替换所有缺失值为 -999
  df[is.na(df)] <- -999
  # 返回修改后的 df
  return(df)
})

# 对 Sheets 列表中的每个数据表保留前 7 行和前 7 列
Sheets <- lapply(Sheets, function(df) {
  # 只保留前 7 行和前 7 列
  df[1:7, 1:7]
})

2.2 Convert all data in wide-format within one sheet

result_list <- lapply(Sheets, function(sheet) Matrix.toDT(sheet, title = ""))
#result_list <- result_list[!names(result_list) %in% "Sources"]
#result_list$Sources[[1]]
df <- bind_rows(lapply(result_list, function(x) x[[1]]))%>%
  setDT%>%
  .[, MatrixName := names(result_list)]#%>%
#  .[MatrixName != "Sources", ]%>%
#  .[MatrixName != "Template" , ]  #%>%  .[, lapply(.SD, as.numeric), .SDcols = setdiff(names(df), "MatrixName")]

# 将除了 "MatrixName" 之外的所有列转换为数值类型
cols_to_convert <- setdiff(names(df), "MatrixName")
#df=df[, (cols_to_convert) := lapply(.SD, as.numeric), .SDcols = cols_to_convert]

#MatrixName=df$MatrixName  

#df[] <- lapSources#df[] <- lapply(df, as.numeric)
#df=df[, names(df) := lapply(.SD, as.numeric)]

#names(df)
#unique(df$MatrixName)
#print_table(df)
#View(df)
# 查看合并后的数据框
#export(combined_df,"JPJSrow.xlsx")
#data <-read_sheet("https://docs.google.com/spreadsheets/d/1Q8OUSBQ9a1R0jJ14PtEH3w74aTmwyru3u3uIOst3DC4/edit?usp=sharing")
#View(data)

2.3 Convert all data in matrix format

cor_matrices <- Matrix.fromDT(as.data.frame(df),"A-ES", "Y-X", "MatrixName", text_rows = c("Sources", "Template"))
## 正在处理行:  Template 
## 正在处理行:  r 
## 正在处理行:  C-r 
## 正在处理行:  SD-r 
## 正在处理行:  SD-cr 
## 正在处理行:  Sources 
## 正在处理行:  Sample size 
## 正在处理行:  K Size 
## 正在处理行:  95%CI-L 
## 正在处理行:  95%CI-U
P <- cor_matrices$r
Nnum=Matrix.Stats(Sheets$`Sample size`)
## Statistics of matrix
## ────────────────────────────
##    harmonic_mean         sum
## ────────────────────────────
## 1      30130.709 1061439.000
## ────────────────────────────
## Descriptive Statistics:
## ───────────────────────────────────────────────────────────────────────
##     N     Mean       SD |   Median      Min       Max Skewness Kurtosis
## ───────────────────────────────────────────────────────────────────────
##    21 50544.71 32220.21 | 54471.00 11856.00 106149.00     0.20    -1.53
## ───────────────────────────────────────────────────────────────────────
Knum=Matrix.Stats(Sheets$`K Size`)
## Statistics of matrix
## ─────────────────────────
##    harmonic_mean      sum
## ─────────────────────────
## 1         81.468 2236.000
## ─────────────────────────
## Descriptive Statistics:
## ──────────────────────────────────────────────────────────
##     N   Mean    SD | Median   Min    Max Skewness Kurtosis
## ──────────────────────────────────────────────────────────
##    21 106.48 61.10 | 111.00 38.00 312.00     1.62     3.43
## ──────────────────────────────────────────────────────────
Nhar=round(Nnum$sum/Knum$sum,0)#round(Nnum$harmonic_mean,0)

3 TEMPLATE

IV.oceanS0  <- '
  # X 由 ES、A、C、EX 和 O 预测
  X ~  O + C + EX + A + ES

  # Y 由 X 预测
  Y ~ X
  
  # Residual correlation
  Y ~~ X
'

# 1.1 model specification 
IV.S <- '
  X ON O C EX A ES;
  Y ON X;
  Y WITH X;

  O WITH C EX A ES;
  C WITH EX A ES;
  EX WITH A ES;
  A WITH ES;
'
IV <- mplus2lavaan.modelSyntax(IV.S)
IVb <- mplus2lavaan.modelSyntax(IV.S)
cat(IV)
## X ~ O + C + EX + A + ES
## Y ~ X
## Y ~~ X
## O ~~ C + EX + A + ES
## C ~~ EX + A + ES
## EX ~~ A + ES
## A ~~ ES

4 MAIN EFFECTS OF OCEAN ON X AND Y

# 1. Model Specification
IV <- gsub("Y ON X;", "Y ON O C EX A ES;", IV.S)
IV <- mplus2lavaan.modelSyntax(IV)
cat(IV)
## X ~ O + C + EX + A + ES
## Y ~ O + C + EX + A + ES
## Y ~~ X
## O ~~ C + EX + A + ES
## C ~~ EX + A + ES
## EX ~~ A + ES
## A ~~ ES
# 1.2 model fit
IV.cenA <- sem(IV,sample.cov = P,sample.nobs = Nhar)#xxx
lavaan_summary(IV.cenA)
## 
## Fit Measures (lavaan):
## χ²(0, N = 475) = 0.000, p = 1.000    
## χ²/df = Inf (saturated model)
## AIC = 9219.285 (Akaike Information Criterion)
## BIC = 9335.857 (Bayesian Information Criterion)
## CFI = 1.000 (Comparative Fit Index)
## TLI = 1.000 (Tucker-Lewis Index; Non-Normed Fit Index, NNFI)
## NFI = 1.000 (Normed Fit Index)
## IFI = 1.000 (Incremental Fit Index)
## GFI = 1.000 (Goodness-of-Fit Index)
## AGFI = 1.000 (Adjusted Goodness-of-Fit Index)
## RMSEA = 0.000, 90% CI [0.000, 0.000] (Root Mean Square Error of Approximation)
## SRMR = 0.000 (Standardized Root Mean Square Residual)
## 
## Model Estimates (lavaan):
## ────────────────────────────────────────────────────────────────────────
##                    Estimate    S.E.      z     p       LLCI  ULCI   Beta
## ────────────────────────────────────────────────────────────────────────
## Regression Paths:                                                       
##   X <- O             -0.071 (0.046) -1.533  .125     -0.161 0.020 -0.071
##   X <- C              0.132 (0.047)  2.820  .005 **   0.040 0.224  0.132
##   X <- EX             0.130 (0.048)  2.742  .006 **   0.037 0.223  0.130
##   X <- A              0.052 (0.047)  1.108  .268     -0.040 0.143  0.052
##   X <- ES             0.172 (0.046)  3.742 <.001 ***  0.082 0.263  0.172
##   Y <- O             -0.013 (0.047) -0.283  .777     -0.106 0.079 -0.013
##   Y <- C              0.172 (0.048)  3.609 <.001 ***  0.079 0.266  0.172
##   Y <- EX             0.119 (0.048)  2.459  .014 *    0.024 0.214  0.119
##   Y <- A              0.059 (0.047)  1.235  .217     -0.034 0.152  0.059
##   Y <- ES             0.001 (0.047)  0.020  .984     -0.091 0.093  0.001
## ────────────────────────────────────────────────────────────────────────
## Note. Raw (Standard) Confidence Interval (CI) and SE.
# Plot
lavaanPlot(model = IV.cenA, coefs = T, sig = 0.05)

5 OVERALL RESULTS

5.1 IVs are OCEAN

# 1. Model Specification
IV.ocean <- IVb
cat(IV.ocean)
## X ~ O + C + EX + A + ES
## Y ~ X
## Y ~~ X
## O ~~ C + EX + A + ES
## C ~~ EX + A + ES
## EX ~~ A + ES
## A ~~ ES
# 1.2 model fit
IV.oceanA <- sem(IV.ocean,sample.cov = P,sample.nobs = Nhar)#xxx
lavaan_summary(IV.oceanA)
## 
## Fit Measures (lavaan):
## χ²(4, N = 475) = 7.538, p = 0.110    
## χ²/df = 1.885
## AIC = 9218.823 (Akaike Information Criterion)
## BIC = 9318.742 (Bayesian Information Criterion)
## CFI = 0.986 (Comparative Fit Index)
## TLI = 0.924 (Tucker-Lewis Index; Non-Normed Fit Index, NNFI)
## NFI = 0.972 (Normed Fit Index)
## IFI = 0.986 (Incremental Fit Index)
## GFI = 0.996 (Goodness-of-Fit Index)
## AGFI = 0.969 (Adjusted Goodness-of-Fit Index)
## RMSEA = 0.043, 90% CI [0.000, 0.090] (Root Mean Square Error of Approximation)
## SRMR = 0.020 (Standardized Root Mean Square Residual)
## 
## Model Estimates (lavaan):
## ────────────────────────────────────────────────────────────────────────
##                    Estimate    S.E.      z     p       LLCI  ULCI   Beta
## ────────────────────────────────────────────────────────────────────────
## Regression Paths:                                                       
##   X <- O             -0.053 (0.040) -1.348  .178     -0.131 0.024 -0.053
##   X <- C              0.164 (0.042)  3.937 <.001 ***  0.083 0.246  0.164
##   X <- EX             0.140 (0.042)  3.343 <.001 ***  0.058 0.222  0.140
##   X <- A              0.060 (0.040)  1.512  .130     -0.018 0.139  0.060
##   X <- ES             0.116 (0.040)  2.884  .004 **   0.037 0.195  0.116
##   Y <- X              0.749 (0.170)  4.416 <.001 ***  0.416 1.081  0.749
## ────────────────────────────────────────────────────────────────────────
## Note. Raw (Standard) Confidence Interval (CI) and SE.
# 2.1. Wald
variables <- c("ES", "A", "C", "EX", "O")
par.names <- paste0('X~',variables)
Wald.test(fit=IV.oceanA,par.names,method='UIMASEM')%>%setDT()%>%print_table()
## ─────────────────────────────
##    Wald.Statistic Wald.pValue
## ─────────────────────────────
## 1          49.624       0.000
## ─────────────────────────────
# 2.3. R2
R2xzw.MASEM(P = P,method = 'UIMASEM',y.nm='Y',X.nm='X',Z.nm=variables)
## $R2x.z
##         [,1]
## [1,] 0.09853
# 3. X->Y
lavaanPlot(model = IV.oceanA, coefs = T, sig = 0.05)

5.2 Test for excluding the unqualified IVs

# 1. Model Specification
IV <- gsub("X ON O C EX A ES;", "X ON C EX ES;", IV.S)
IV <- mplus2lavaan.modelSyntax(IV)
cat(IV)
## X ~ C + EX + ES
## Y ~ X
## Y ~~ X
## O ~~ C + EX + A + ES
## C ~~ EX + A + ES
## EX ~~ A + ES
## A ~~ ES
# 1.2 model fit
IV.cenA <- sem(IV,sample.cov = P,sample.nobs = Nhar)#xxx
lavaan_summary(IV.cenA)
## 
## Fit Measures (lavaan):
## χ²(6, N = 475) = 11.237, p = 0.081 .  
## χ²/df = 1.873
## AIC = 9218.522 (Akaike Information Criterion)
## BIC = 9310.115 (Bayesian Information Criterion)
## CFI = 0.979 (Comparative Fit Index)
## TLI = 0.925 (Tucker-Lewis Index; Non-Normed Fit Index, NNFI)
## NFI = 0.958 (Normed Fit Index)
## IFI = 0.980 (Incremental Fit Index)
## GFI = 0.993 (Goodness-of-Fit Index)
## AGFI = 0.969 (Adjusted Goodness-of-Fit Index)
## RMSEA = 0.043, 90% CI [0.000, 0.081] (Root Mean Square Error of Approximation)
## SRMR = 0.025 (Standardized Root Mean Square Residual)
## 
## Model Estimates (lavaan):
## ─────────────────────────────────────────────────────────────────────
##                    Estimate    S.E.     z     p      LLCI  ULCI  Beta
## ─────────────────────────────────────────────────────────────────────
## Regression Paths:                                                    
##   X <- C              0.173 (0.041) 4.238 <.001 *** 0.093 0.253 0.173
##   X <- EX             0.133 (0.040) 3.308 <.001 *** 0.054 0.212 0.133
##   X <- ES             0.120 (0.040) 2.991  .003 **  0.042 0.199 0.120
##   Y <- X              0.757 (0.176) 4.312 <.001 *** 0.413 1.102 0.757
## ─────────────────────────────────────────────────────────────────────
## Note. Raw (Standard) Confidence Interval (CI) and SE.
# 2.1. Wald
variables <- c("ES", "C", "EX")
par.names <- paste0('X~',variables)
Wald.test(fit=IV.cenA,par.names,method='UIMASEM')%>%setDT()%>%print_table()
## ─────────────────────────────
##    Wald.Statistic Wald.pValue
## ─────────────────────────────
## 1          46.275       0.000
## ─────────────────────────────
# 2.3. R2
R2xzw.MASEM(P = P,method = 'UIMASEM',y.nm='Y',X.nm='X',Z.nm=variables)
## $R2x.z
##         [,1]
## [1,] 0.09242
# 3. X->Y
lavaanPlot(model = IV.cenA, coefs = T, sig = 0.05)
IV.Af <- SEM.FitCombine(list(IV.oceanA,IV.cenA), Mplus = F)#xxx
## SEM Model fit results
## ──────────────────────────────────────────────────────────────────────────────────────
##      Model ChiSqM_Value ChiSqM_DF ChiSqM_PValue   CFI  SRMR ChiSq_Diff DF_Diff ChiSq_p
## ──────────────────────────────────────────────────────────────────────────────────────
## 1  Model 1        7.538     4.000         0.110 0.986 0.020                           
## 2  Model 2       11.237     6.000         0.081 0.979 0.025      3.699   2.000   0.157
## ──────────────────────────────────────────────────────────────────────────────────────
#result[[2]][, Disgin := "Longitudinal design"]

5.3 IVs are CEN

# 1. Model Specification
IV <- gsub("X ON O C EX A ES;", "X ON C EX ES;", IV.S)
IV <- gsub("O WITH C EX A ES;", "", IV)
IV <- gsub("C WITH EX A ES;", "C WITH EX ES;", IV)
IV <- gsub("EX WITH A ES;", "EX WITH ES;", IV)
IV <- gsub("A WITH ES;", "", IV)
IV <- mplus2lavaan.modelSyntax(IV)
cat(IV)
## X ~ C + EX + ES
## Y ~ X
## Y ~~ X
## C ~~ EX + ES
## EX ~~ ES
# 1.2 model fit
IV.A <- sem(IV,sample.cov = P,sample.nobs = Nhar)
lavaan_summary(IV.A)
## 
## Fit Measures (lavaan):
## χ²(2, N = 475) = 6.809, p = 0.033 *  
## χ²/df = 3.405
## AIC = 6616.660 (Akaike Information Criterion)
## BIC = 6670.783 (Bayesian Information Criterion)
## CFI = 0.966 (Comparative Fit Index)
## TLI = 0.830 (Tucker-Lewis Index; Non-Normed Fit Index, NNFI)
## NFI = 0.955 (Normed Fit Index)
## IFI = 0.968 (Incremental Fit Index)
## GFI = 0.994 (Goodness-of-Fit Index)
## AGFI = 0.958 (Adjusted Goodness-of-Fit Index)
## RMSEA = 0.071, 90% CI [0.017, 0.133] (Root Mean Square Error of Approximation)
## SRMR = 0.024 (Standardized Root Mean Square Residual)
## 
## Model Estimates (lavaan):
## ─────────────────────────────────────────────────────────────────────
##                    Estimate    S.E.     z     p      LLCI  ULCI  Beta
## ─────────────────────────────────────────────────────────────────────
## Regression Paths:                                                    
##   X <- C              0.173 (0.041) 4.238 <.001 *** 0.093 0.253 0.173
##   X <- EX             0.133 (0.040) 3.308 <.001 *** 0.054 0.212 0.133
##   X <- ES             0.120 (0.040) 2.991  .003 **  0.042 0.199 0.120
##   Y <- X              0.757 (0.176) 4.312 <.001 *** 0.413 1.102 0.757
## ─────────────────────────────────────────────────────────────────────
## Note. Raw (Standard) Confidence Interval (CI) and SE.
# 2.1. Wald
variables <- c("ES", "C", "EX")
par.names <- paste0('X~',variables)
Wald.test(fit=IV.A,par.names,method='UIMASEM')%>%setDT()%>%print_table()
## ─────────────────────────────
##    Wald.Statistic Wald.pValue
## ─────────────────────────────
## 1          46.275       0.000
## ─────────────────────────────
# 2.3. R2
R2xzw.MASEM(P = P,method = 'UIMASEM',y.nm='Y',X.nm='X',Z.nm=variables)
## $R2x.z
##         [,1]
## [1,] 0.09242
# 3. X->Y
lavaanPlot(model = IV.A, coefs = T, sig = 0.05)

5.4 IVs are EN with Y on C

# 1. Model Specification
IV <- gsub("X ON O C EX A ES;", "X ON C EX ES;", IV.S)
IV <- gsub("Y ON X;", "Y ON X C;", IV)
IV <- gsub("O WITH C EX A ES;", "", IV)
IV <- gsub("C WITH EX A ES;", "C WITH EX ES;", IV)
IV <- gsub("EX WITH A ES;", "EX WITH ES;", IV)
IV <- gsub("A WITH ES;", "", IV)
IV <- mplus2lavaan.modelSyntax(IV)
cat(IV)
## X ~ C + EX + ES
## Y ~ X + C
## Y ~~ X
## C ~~ EX + ES
## EX ~~ ES
# 1.2 model fit
IV.Ac <- sem(IV,sample.cov = P,sample.nobs = Nhar)
lavaan_summary(IV.Ac)
## 
## Fit Measures (lavaan):
## χ²(1, N = 475) = 3.598, p = 0.058 .  
## χ²/df = 3.598
## AIC = 6615.449 (Akaike Information Criterion)
## BIC = 6673.735 (Bayesian Information Criterion)
## CFI = 0.982 (Comparative Fit Index)
## TLI = 0.816 (Tucker-Lewis Index; Non-Normed Fit Index, NNFI)
## NFI = 0.976 (Normed Fit Index)
## IFI = 0.983 (Incremental Fit Index)
## GFI = 0.997 (Goodness-of-Fit Index)
## AGFI = 0.955 (Adjusted Goodness-of-Fit Index)
## RMSEA = 0.074, 90% CI [0.000, 0.163] (Root Mean Square Error of Approximation)
## SRMR = 0.018 (Standardized Root Mean Square Residual)
## 
## Model Estimates (lavaan):
## ─────────────────────────────────────────────────────────────────────
##                    Estimate    S.E.     z     p      LLCI  ULCI  Beta
## ─────────────────────────────────────────────────────────────────────
## Regression Paths:                                                    
##   X <- C              0.137 (0.045) 3.022  .003 **  0.048 0.226 0.137
##   X <- EX             0.137 (0.045) 3.074  .002 **  0.050 0.224 0.137
##   X <- ES             0.160 (0.045) 3.547 <.001 *** 0.072 0.249 0.160
##   Y <- X              0.415 (0.202) 2.053  .040 *   0.019 0.811 0.415
##   Y <- C              0.127 (0.061) 2.074  .038 *   0.007 0.247 0.127
## ─────────────────────────────────────────────────────────────────────
## Note. Raw (Standard) Confidence Interval (CI) and SE.
# 2.1. Wald
variables <- c("ES", "C", "EX")
par.names <- paste0('X~',variables)
Wald.test(fit=IV.Ac,par.names,method='UIMASEM')%>%setDT()%>%print_table()
## ─────────────────────────────
##    Wald.Statistic Wald.pValue
## ─────────────────────────────
## 1          48.077       0.000
## ─────────────────────────────
# 2.3. R2
R2xzw.MASEM(P = P,method = 'UIMASEM',y.nm='Y',X.nm='X',Z.nm=variables)
## $R2x.z
##         [,1]
## [1,] 0.09242
# 3. X->Y
lavaanPlot(model = IV.Ac, coefs = T, sig = 0.05)
IV.Acenf <- SEM.FitCombine(list(IV.Ac,IV.A), Mplus = F)#xxx
## SEM Model fit results
## ──────────────────────────────────────────────────────────────────────────────────────
##      Model ChiSqM_Value ChiSqM_DF ChiSqM_PValue   CFI  SRMR ChiSq_Diff DF_Diff ChiSq_p
## ──────────────────────────────────────────────────────────────────────────────────────
## 1  Model 1        3.598     1.000         0.058 0.982 0.018                           
## 2  Model 2        6.809     2.000         0.033 0.966 0.024      3.211   1.000   0.073
## ──────────────────────────────────────────────────────────────────────────────────────

5.5 IVs are EN

# 1. Model Specification
IV <- gsub("X ON O C EX A ES;", "X ON EX ES;", IV.S)
IV <- gsub("O WITH C EX A ES;", "", IV)
IV <- gsub("C WITH EX A ES;", "", IV)
IV <- gsub("EX WITH A ES;", "EX WITH ES;", IV)
IV <- gsub("A WITH ES;", "", IV)
IV <- mplus2lavaan.modelSyntax(IV)
cat(IV)
## X ~ EX + ES
## Y ~ X
## Y ~~ X
## EX ~~ ES
# 1.2 model fit
IV.A2 <- sem(IV,sample.cov = P,sample.nobs = Nhar)
lavaan_summary(IV.A2)
## 
## Fit Measures (lavaan):
## χ²(1, N = 475) = 3.371, p = 0.066 .  
## χ²/df = 3.371
## AIC = 5315.205 (Akaike Information Criterion)
## BIC = 5352.675 (Bayesian Information Criterion)
## CFI = 0.973 (Comparative Fit Index)
## TLI = 0.839 (Tucker-Lewis Index; Non-Normed Fit Index, NNFI)
## NFI = 0.964 (Normed Fit Index)
## IFI = 0.975 (Incremental Fit Index)
## GFI = 0.996 (Goodness-of-Fit Index)
## AGFI = 0.965 (Adjusted Goodness-of-Fit Index)
## RMSEA = 0.071, 90% CI [0.000, 0.160] (Root Mean Square Error of Approximation)
## SRMR = 0.021 (Standardized Root Mean Square Residual)
## 
## Model Estimates (lavaan):
## ─────────────────────────────────────────────────────────────────────
##                    Estimate    S.E.     z     p      LLCI  ULCI  Beta
## ─────────────────────────────────────────────────────────────────────
## Regression Paths:                                                    
##   X <- EX             0.162 (0.044) 3.700 <.001 *** 0.076 0.247 0.162
##   X <- ES             0.181 (0.044) 4.125 <.001 *** 0.095 0.267 0.181
##   Y <- X              0.544 (0.177) 3.079  .002 **  0.198 0.890 0.544
## ─────────────────────────────────────────────────────────────────────
## Note. Raw (Standard) Confidence Interval (CI) and SE.
# 2.1. Wald
variables <- c("ES", "EX")
par.names <- paste0('X~',variables)
Wald.test(fit=IV.A2,par.names,method='UIMASEM')%>%setDT()%>%print_table()
## ─────────────────────────────
##    Wald.Statistic Wald.pValue
## ─────────────────────────────
## 1          38.076       0.000
## ─────────────────────────────
# 2.3. R2
R2xzw.MASEM(P = P,method = 'UIMASEM',y.nm='Y',X.nm='X',Z.nm=variables)
## $R2x.z
##         [,1]
## [1,] 0.07506
# 3. X->Y
lavaanPlot(model = IV.A2, coefs = T, sig = 0.05)
IV.A2f <- SEM.FitCombine(list(IV.A2,IV.A2), Mplus = F)#xxx
## SEM Model fit results
## ──────────────────────────────────────────────────────────────────────────────────────
##      Model ChiSqM_Value ChiSqM_DF ChiSqM_PValue   CFI  SRMR ChiSq_Diff DF_Diff ChiSq_p
## ──────────────────────────────────────────────────────────────────────────────────────
## 1  Model 1        3.371     1.000         0.066 0.973 0.021                           
## 2  Model 2        3.371     1.000         0.066 0.973 0.021      0.000   0.000   1.000
## ──────────────────────────────────────────────────────────────────────────────────────
IV.A2f2=IV.A2f[[2]][Model!="Model 2",]

6 RESULTS SUMMARY

Summary.fit <- rbindlist(list(IV.Af[[2]], IV.Acenf[[2]],IV.A2f2), use.names = TRUE)
Summary.fit$Model[1:5] <- c(
  "M1. OCEAN as IVs",
  "M2. CEN as IVs with OA retained",
  "M4. EN as IVs with the effect of C on Y",
  "M3. CEN as IVs with OA removed",
  "M5. EN as IVs with OA removed"
)
print_table(Summary.fit[order(Summary.fit$Model), ])
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
##                                      Model ChiSqM_Value ChiSqM_DF ChiSqM_PValue   CFI  SRMR ChiSq_Diff DF_Diff ChiSq_p
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## 1  M1. OCEAN as IVs                               7.538     4.000         0.110 0.986 0.020                           
## 2  M2. CEN as IVs with OA retained               11.237     6.000         0.081 0.979 0.025      3.699   2.000   0.157
## 3  M3. CEN as IVs with OA removed                 6.809     2.000         0.033 0.966 0.024      3.211   1.000   0.073
## 4  M4. EN as IVs with the effect of C on Y        3.598     1.000         0.058 0.982 0.018                           
## 5  M5. EN as IVs with OA removed                  3.371     1.000         0.066 0.973 0.021                           
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#Fit <- SEM.FitCombine(model_list, Mplus = F)#,title = "")
combined_results <- SEM.PathCombine(list(IV.oceanA,IV.cenA,IV.A,IV.Ac,IV.A2), title = "Combined SEM Path Results", ShortTable = T, EffectOnly = F)
## Combined SEM Path Results
## ─────────────────────────────────────────────────────────────────────────────────────────────────────
##            label M1.est_sig M1.se M2.est_sig M2.se M3.est_sig M3.se M4.est_sig M4.se M5.est_sig M5.se
## ─────────────────────────────────────────────────────────────────────────────────────────────────────
## 1   A.WITH.ES     0.160***  0.046  NA               NA                NA               NA            
## 2   C.WITH.A      0.289***  0.048  0.289***  0.048  NA                NA               NA            
## 3   C.WITH.ES     0.230***  0.047  0.230***  0.047  0.230***  0.047   0.230*** 0.047   NA            
## 4   C.WITH.EX     0.190***  0.047  0.190***  0.047  0.190***  0.047   0.190*** 0.047   NA            
## 5   C.WITH.O      NA               0.160***  0.046  NA                NA               NA            
## 6   ES.WITH.A     NA               0.160***  0.046  NA                NA               NA            
## 7   ES.WITH.O     NA               0.070     0.046  NA                NA               NA            
## 8   EX.WITH.A     0.200***  0.047  0.200***  0.047  NA                NA               NA            
## 9   EX.WITH.ES    0.259***  0.047  0.259***  0.047  0.259***  0.047   0.259*** 0.047   0.259*** 0.047
## 10  EX.WITH.O     NA               0.289***  0.048  NA                NA               NA            
## 11  O.WITH.A      0.190***  0.047  0.190***  0.047  NA                NA               NA            
## 12  O.WITH.C      0.160***  0.046  NA               NA                NA               NA            
## 13  O.WITH.ES     0.070     0.046  NA               NA                NA               NA            
## 14  O.WITH.EX     0.289***  0.048  NA               NA                NA               NA            
## 15  Variances.A   0.998***  0.065  0.998***  0.065  NA                NA               NA            
## 16  Variances.C   0.998***  0.065  0.998***  0.065  0.998***  0.065   0.998*** 0.065   NA            
## 17  Variances.ES  0.998***  0.065  0.998***  0.065  0.998***  0.065   0.998*** 0.065   0.998*** 0.065
## 18  Variances.EX  0.998***  0.065  0.998***  0.065  0.998***  0.065   0.998*** 0.065   0.998*** 0.065
## 19  Variances.O   0.998***  0.065  0.998***  0.065  NA                NA               NA            
## 20  Variances.X   0.904***  0.059  0.909***  0.059  0.909***  0.059   0.906*** 0.059   0.924*** 0.060
## 21  Variances.Y   1.288***  0.210  1.298***  0.219  1.298***  0.219   1.005*** 0.124   1.098*** 0.147
## 22  X.ON.A        0.060     0.040  NA               NA                NA               NA            
## 23  X.ON.C        0.164***  0.042  0.173***  0.041  0.173***  0.041   0.137**  0.045   NA            
## 24  X.ON.ES       0.116**   0.040  0.120**   0.040  0.120**   0.040   0.160*** 0.045   0.181*** 0.044
## 25  X.ON.EX       0.140***  0.042  0.133***  0.040  0.133***  0.040   0.137**  0.045   0.162*** 0.044
## 26  X.ON.O        -0.053    0.040  NA               NA                NA               NA            
## 27  X.WITH.Y      -0.567*** 0.163  -0.576*** 0.169  -0.576*** 0.169   -0.260   0.189   -0.363*  0.170
## 28  Y.ON.C        NA               NA               NA                0.127*   0.061   NA            
## 29  Y.ON.X        0.749***  0.170  0.757***  0.176  0.757***  0.176   0.415*   0.202   0.544**  0.177
## ─────────────────────────────────────────────────────────────────────────────────────────────────────
combined_results[!grepl("Variances\\.", label)]%>%
  .[15:nrow(.), ]%>%
  print_table()
## ────────────────────────────────────────────────────────────────────────────────────────────────
##       label M1.est_sig M1.se M2.est_sig M2.se M3.est_sig M3.se M4.est_sig M4.se M5.est_sig M5.se
## ────────────────────────────────────────────────────────────────────────────────────────────────
## 1  X.ON.A    0.060     0.040  NA               NA                NA               NA            
## 2  X.ON.C    0.164***  0.042  0.173***  0.041  0.173***  0.041   0.137**  0.045   NA            
## 3  X.ON.ES   0.116**   0.040  0.120**   0.040  0.120**   0.040   0.160*** 0.045   0.181*** 0.044
## 4  X.ON.EX   0.140***  0.042  0.133***  0.040  0.133***  0.040   0.137**  0.045   0.162*** 0.044
## 5  X.ON.O    -0.053    0.040  NA               NA                NA               NA            
## 6  X.WITH.Y  -0.567*** 0.163  -0.576*** 0.169  -0.576*** 0.169   -0.260   0.189   -0.363*  0.170
## 7  Y.ON.C    NA               NA               NA                0.127*   0.061   NA            
## 8  Y.ON.X    0.749***  0.170  0.757***  0.176  0.757***  0.176   0.415*   0.202   0.544**  0.177
## ────────────────────────────────────────────────────────────────────────────────────────────────