Skip to contents
library(modsem)
#> This is modsem (1.0.11). Please report any bugs!

As of yet, the modsem package does not support using the interaction operator : between two higher order constructs. However, you can still attempt to estimate the interaction effect between two higher order constructs by specifying the interaction term in models using the product indicator approaches (higher order constructs are not supported at all in the lms and qml approaches yet). The modsem package will then attempt to estimate the interaction effect between the two higher order constructs.

Interaction between two higher order constructs

WARNING: Please note that the literature on higher order interactions in product indicator approaches is virtually non-existant, and you will likely need to experiment with different approaches to find one that works. As well as experiment with adding constraints to the model.

In modsem there are two datasets which are variants of the Theory of Planned Behaviour (TPB) dataset. The TPB_2SO contains two second order constructs, INT (intention) which is a second order construct of ATT (attitude) and SN (subjective norm), and PBC (perceived behavioural control) which is a second order construct of PC (perceived control) and PB (perceived behaviour).

tpb <- '
  # First order constructs
  ATT =~ att1 + att2 + att3
  SN  =~ sn1 + sn2 + sn3
  PB =~ pb1 + pb2 + pb3
  PC =~ pc1 + pc2 + pc3
  BEH =~ b1 + b2

  # Higher order constructs
  INT =~ ATT + SN
  PBC =~ PC + PB

  # Higher order interaction
  INTxPBC =~ ATT:PC + ATT:PB + SN:PC + SN:PB
  
  # Structural model
  BEH ~ PBC + INT + INTxPBC
'

est_ca <- modsem(tpb, data = TPB_2SO, method = "ca")
summary(est_ca)
#> Estimating baseline model (H0)
#> Warning: Unable to estimate baseline model for models with higher-order
#> interaction terms!
#> modsem (version 1.0.11, approach = ca):
#> 
#> Interaction Model Fit Measures (H1):
#>   Loglikelihood                              -56477.03 
#>   Akaike (AIC)                               113090.05 
#>   Bayesian (BIC)                             113470.91 
#>   Chi-square                                   3479.48 
#>   Degrees of Freedom                               309 
#>   P-value (Chi-square)                           0.000 
#>   RMSEA                                          0.072 
#>   CFI                                            0.931 
#>   SRMR                                           0.076 
#> 
#> R-Squared Interaction Model (H1):
#>   BEH                                            0.165 
#> 
#> lavaan 0.6-19 ended normally after 628 iterations
#> 
#>   Estimator                                         ML
#>   Optimization method                           NLMINB
#>   Number of model parameters                        96
#>   Row rank of the constraints matrix                28
#> 
#>   Number of observations                          2000
#> 
#> Model Test User Model:
#>                                                       
#>   Test statistic                              3479.483
#>   Degrees of freedom                               309
#>   P-value (Chi-square)                           0.000
#> 
#> Parameter Estimates:
#> 
#>   Standard errors                             Standard
#>   Information                                 Expected
#>   Information saturated (h1) model          Structured
#> 
#> Latent Variables:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   ATT =~                                              
#>     a      (l_1_A)    1.000                           
#>     a      (l_2_A)    0.903    0.010   94.899    0.000
#>     a      (l_3_A)    0.787    0.009   89.747    0.000
#>   SN =~                                               
#>     s      (l_1_S)    1.000                           
#>     s      (l_2_S)    0.917    0.013   71.403    0.000
#>     s      (l_3_S)    0.804    0.012   67.969    0.000
#>   PB =~                                               
#>     p     (l_1_PB)    1.000                           
#>     p     (l_2_PB)    0.923    0.010   89.364    0.000
#>     p     (l_3_PB)    0.790    0.009   84.731    0.000
#>   PC =~                                               
#>     p     (l_1_PC)    1.000                           
#>     p     (l_2_PC)    0.889    0.009  101.651    0.000
#>     p     (l_3_PC)    0.787    0.008   97.811    0.000
#>   BEH =~                                              
#>     b      (l_1_B)    1.000                           
#>     b      (l_2_B)    0.848    0.043   19.772    0.000
#>   INT =~                                              
#>     A     (l_ATT_)    1.000                           
#>     S      (l_SN_)    0.646    0.076    8.547    0.000
#>   PBC =~                                              
#>     P       (l_PC)    1.000                           
#>     P       (l_PB)    0.650    0.081    7.985    0.000
#>   INTxPBC =~                                          
#>     A    (l_ATTPC)    1.000                           
#>     A    (l_ATTPB)    0.817    0.036   22.725    0.000
#>     S     (l_SNPC)    0.729    0.031   23.234    0.000
#>     S     (l_SNPB)    0.606    0.027   22.365    0.000
#>   ATTPC =~                                            
#>     a (l_11_ATTPC)    1.000                           
#>     a (l_22_ATTPC)    0.803    0.009   90.729    0.000
#>     a (l_33_ATTPC)    0.620    0.007   86.179    0.000
#>   ATTPB =~                                            
#>     a (l_11_ATTPB)    1.000                           
#>     a (l_22_ATTPB)    0.834    0.010   83.614    0.000
#>     a (l_33_ATTPB)    0.622    0.008   78.869    0.000
#>   SNPC =~                                             
#>     s  (l_11_SNPC)    1.000                           
#>     s  (l_22_SNPC)    0.815    0.011   71.600    0.000
#>     s  (l_33_SNPC)    0.633    0.009   68.160    0.000
#>   SNPB =~                                             
#>     s  (l_11_SNPB)    1.000                           
#>     s  (l_22_SNPB)    0.846    0.012   68.808    0.000
#>     s  (l_33_SNPB)    0.635    0.010   65.238    0.000
#> 
#> Regressions:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   BEH ~                                               
#>     PBC     (G_PB)    0.221    0.031    7.155    0.000
#>     INT   (G_INT_)    0.209    0.029    7.224    0.000
#>     INTPB (G_INTP)    0.158    0.019    8.137    0.000
#> 
#> Covariances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   INT ~~                                              
#>     PBC  (C_INT_P)    0.017    0.026    0.669    0.504
#>     INTP (C_INT_I)   -0.002    0.029   -0.083    0.934
#>   PBC ~~                                              
#>     INTP    (C_PB)   -0.094    0.035   -2.712    0.007
#>  .att1pc1 ~~                                          
#>    .at22              0.000                           
#>    .at33              0.000                           
#>  .att2pc2 ~~                                          
#>    .at33              0.000                           
#>  .att1pb1 ~~                                          
#>    .at22              0.000                           
#>    .at33              0.000                           
#>  .att2pb2 ~~                                          
#>    .at33              0.000                           
#>  .sn1pc1 ~~                                           
#>    .sn22              0.000                           
#>    .sn33              0.000                           
#>  .sn2pc2 ~~                                           
#>    .sn33              0.000                           
#>  .sn1pb1 ~~                                           
#>    .sn22              0.000                           
#>    .sn33              0.000                           
#>  .sn2pb2 ~~                                           
#>    .sn33              0.000                           
#> 
#> Intercepts:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>    .ATTP (M_ATTPC)    0.017    0.026    0.669    0.504
#>    .ATTP (M_ATTPB)    0.011    0.017    0.668    0.504
#>    .SNPC  (M_SNPC)    0.011    0.017    0.668    0.504
#>    .SNPB  (M_SNPB)    0.007    0.011    0.667    0.505
#>    .att1              1.008    0.025   40.614    0.000
#>    .att2              1.002    0.023   43.736    0.000
#>    .att3              1.012    0.021   49.282    0.000
#>    .sn1               0.980    0.018   53.085    0.000
#>    .sn2               0.986    0.018   56.087    0.000
#>    .sn3               0.993    0.016   61.749    0.000
#>    .pb1               1.010    0.024   41.515    0.000
#>    .pb2               1.014    0.023   43.981    0.000
#>    .pb3               1.015    0.020   50.248    0.000
#>    .pc1               1.032    0.028   36.550    0.000
#>    .pc2               1.023    0.026   39.909    0.000
#>    .pc3               1.027    0.023   44.819    0.000
#>    .b1                1.000    0.020   50.566    0.000
#>    .b2                0.997    0.018   54.925    0.000
#>    .at11              0.012    0.048    0.242    0.809
#>    .at22             -0.016    0.039   -0.401    0.689
#>    .at33              0.005    0.031    0.170    0.865
#>    .at11              0.031    0.038    0.812    0.417
#>    .at22              0.009    0.033    0.292    0.770
#>    .at33              0.025    0.025    1.013    0.311
#>    .sn11              0.021    0.034    0.605    0.545
#>    .sn22              0.000    0.029    0.008    0.994
#>    .sn33              0.006    0.023    0.282    0.778
#>    .sn11              0.028    0.028    1.031    0.303
#>    .sn22              0.008    0.024    0.344    0.731
#>    .sn33              0.009    0.019    0.467    0.640
#> 
#> Variances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>    .AT    (Vr_ATT)    0.306    0.088    3.482    0.000
#>    .SN     (Vr_SN)    0.190    0.037    5.088    0.000
#>    .PB     (Vr_PB)    0.619    0.054   11.411    0.000
#>    .PC      (V_PC)    0.469    0.120    3.907    0.000
#>    .BE      (Z_BE)    0.544    0.036   15.260    0.000
#>     IN    (Vr_INT)    0.752    0.091    8.252    0.000
#>     PB     (V_PBC)    0.958    0.123    7.760    0.000
#>     IN    (V_INTP)    1.297    0.089   14.646    0.000
#>    .AT   (V_ATTPC)    1.511    0.041   36.482    0.000
#>    .AT   (V_ATTPB)    1.084    0.031   35.464    0.000
#>    .SN    (V_SNPC)    0.719    0.022   32.194    0.000
#>    .SN    (V_SNPB)    0.516    0.016   31.825    0.000
#>    .a1     (Vr_t1)    0.174    0.008   21.062    0.000
#>    .a2     (Vr_t2)    0.186    0.007   24.851    0.000
#>    .a3     (Vr_t3)    0.187    0.007   28.710    0.000
#>    .s1     (Vr_s1)    0.177    0.007   24.784    0.000
#>    .s2     (Vr_s2)    0.195    0.007   28.844    0.000
#>    .s3     (Vr_s3)    0.192    0.006   32.240    0.000
#>    .p1    (Vr_pb1)    0.161    0.009   18.864    0.000
#>    .p2    (Vr_pb2)    0.191    0.008   23.432    0.000
#>    .p3    (Vr_pb3)    0.178    0.007   26.465    0.000
#>    .p1    (Vr_pc1)    0.167    0.009   18.483    0.000
#>    .p2    (Vr_pc2)    0.185    0.008   22.968    0.000
#>    .p3    (Vr_pc3)    0.165    0.007   24.405    0.000
#>    .b1     (Vr_b1)    0.131    0.031    4.180    0.000
#>    .b2     (Vr_b2)    0.191    0.023    8.211    0.000
#>    .a1 (Vr_tt1pc1)    0.454    0.015   30.377    0.000
#>    .a2 (Vr_tt2pc2)    0.404    0.011   36.058    0.000
#>    .a3 (Vr_tt3pc3)    0.305    0.008   39.382    0.000
#>    .a1 (Vr_tt1pb1)    0.377    0.012   30.603    0.000
#>    .a2 (Vr_tt2pb2)    0.363    0.010   36.293    0.000
#>    .a3 (Vr_tt3pb3)    0.270    0.007   40.454    0.000
#>    .s1 (Vr_sn1pc1)    0.367    0.012   31.101    0.000
#>    .s2 (Vr_sn2pc2)    0.334    0.009   36.194    0.000
#>    .s3 (Vr_sn3pc3)    0.255    0.007   38.970    0.000
#>    .s1 (Vr_sn1pb1)    0.291    0.009   32.171    0.000
#>    .s2 (Vr_sn2pb2)    0.288    0.008   37.329    0.000
#>    .s3 (Vr_sn3pb3)    0.214    0.005   40.765    0.000
#> 
#> Constraints:
#>                                                |Slack|
#>     V_ATTPC-((_ATT_INT^2*V_INT+V_ATT)*(_PC_PB    0.000
#>     V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_ATTPB-((_ATT_INT^2*V_INT+V_ATT)*(_PB_PB    0.000
#>     V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_SNPC-((_SN_INT^2*V_INT+V_SN)*(_PC_PBC^2    0.000
#>     V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+    0.000
#>     V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+    0.000
#>     V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+    0.000
#>     V_SNPB-((_SN_INT^2*V_INT+V_SN)*(_PB_PBC^2    0.000
#>     V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+    0.000
#>     V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+    0.000
#>     V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+    0.000
#>     lmbd_tt1pc1_ATTPC-(lmbd_tt1_ATT*lmb_1_PC)    0.000
#>     lmbd_tt2pc2_ATTPC-(lmbd_tt2_ATT*lmb_2_PC)    0.000
#>     lmbd_tt3pc3_ATTPC-(lmbd_tt3_ATT*lmb_3_PC)    0.000
#>     lmbd_tt1pb1_ATTPB-(lmbd_tt1_ATT*lmb_1_PB)    0.000
#>     lmbd_tt2pb2_ATTPB-(lmbd_tt2_ATT*lmb_2_PB)    0.000
#>     lmbd_tt3pb3_ATTPB-(lmbd_tt3_ATT*lmb_3_PB)    0.000
#>     lmbd_sn1pc1_SNPC-(lmbd_sn1_SN*lmbd_p1_PC)    0.000
#>     lmbd_sn2pc2_SNPC-(lmbd_sn2_SN*lmbd_p2_PC)    0.000
#>     lmbd_sn3pc3_SNPC-(lmbd_sn3_SN*lmbd_p3_PC)    0.000
#>     lmbd_sn1pb1_SNPB-(lmbd_sn1_SN*lmbd_p1_PB)    0.000
#>     lmbd_sn2pb2_SNPB-(lmbd_sn2_SN*lmbd_p2_PB)    0.000
#>     lmbd_sn3pb3_SNPB-(lmbd_sn3_SN*lmbd_p3_PB)    0.000
#>     Mn_ATTPC-((Cv_INT_PBC*l_ATT_INT*_PC_PBC))    0.000
#>     Mn_ATTPB-((Cv_INT_PBC*l_ATT_INT*_PB_PBC))    0.000
#>     Mn_SNPC-((Cv_INT_PBC*lmb_PC_PBC*_SN_INT))    0.000
#>     Mn_SNPB-((Cv_INT_PBC*lmb_PB_PBC*_SN_INT))    0.000

est_dblcent <- modsem(tpb, data = TPB_2SO, method = "dblcent")
summary(est_dblcent)
#> Estimating baseline model (H0)
#> Warning: Unable to estimate baseline model for models with higher-order
#> interaction terms!
#> modsem (version 1.0.11, approach = dblcent):
#> 
#> Interaction Model Fit Measures (H1):
#>   Loglikelihood                              -63633.46 
#>   Akaike (AIC)                               127854.92 
#>   Bayesian (BIC)                             129501.58 
#>   Chi-square                                   1995.66 
#>   Degrees of Freedom                               981 
#>   P-value (Chi-square)                           0.000 
#>   RMSEA                                          0.023 
#>   CFI                                            0.994 
#>   SRMR                                           0.057 
#> 
#> R-Squared Interaction Model (H1):
#>   BEH                                            0.182 
#> 
#> lavaan 0.6-19 ended normally after 728 iterations
#> 
#>   Estimator                                         ML
#>   Optimization method                           NLMINB
#>   Number of model parameters                       294
#> 
#>   Number of observations                          2000
#> 
#> Model Test User Model:
#>                                                       
#>   Test statistic                              1995.657
#>   Degrees of freedom                               981
#>   P-value (Chi-square)                           0.000
#> 
#> Parameter Estimates:
#> 
#>   Standard errors                             Standard
#>   Information                                 Expected
#>   Information saturated (h1) model          Structured
#> 
#> Latent Variables:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   ATT =~                                              
#>     att1              1.000                           
#>     att2              0.908    0.011   83.766    0.000
#>     att3              0.798    0.010   77.657    0.000
#>   SN =~                                               
#>     sn1               1.000                           
#>     sn2               0.909    0.016   55.250    0.000
#>     sn3               0.813    0.015   53.511    0.000
#>   PB =~                                               
#>     pb1               1.000                           
#>     pb2               0.918    0.012   77.166    0.000
#>     pb3               0.789    0.011   72.866    0.000
#>   PC =~                                               
#>     pc1               1.000                           
#>     pc2               0.891    0.010   89.773    0.000
#>     pc3               0.792    0.009   86.846    0.000
#>   BEH =~                                              
#>     b1                1.000                           
#>     b2                0.851    0.039   21.727    0.000
#>   INT =~                                              
#>     ATT               1.000                           
#>     SN                0.670    0.061   11.022    0.000
#>   PBC =~                                              
#>     PC                1.000                           
#>     PB                0.667    0.072    9.279    0.000
#>   INTxPBC =~                                          
#>     ATTPC             1.000                           
#>     ATTPB             0.766    0.028   27.477    0.000
#>     SNPC              0.712    0.025   28.039    0.000
#>     SNPB              0.545    0.021   25.541    0.000
#>   ATTPC =~                                            
#>     att1pc1           1.000                           
#>     att2pc1           0.909    0.011   86.206    0.000
#>     att3pc1           0.797    0.010   79.780    0.000
#>     att1pc2           0.900    0.009  102.221    0.000
#>     att2pc2           0.817    0.012   68.142    0.000
#>     att3pc2           0.708    0.011   64.482    0.000
#>     att1pc3           0.789    0.008   95.365    0.000
#>     att2pc3           0.716    0.011   66.513    0.000
#>     att3pc3           0.622    0.010   62.786    0.000
#>   ATTPB =~                                            
#>     att1pb1           1.000                           
#>     att2pb1           0.912    0.011   80.962    0.000
#>     att3pb1           0.802    0.011   75.469    0.000
#>     att1pb2           0.915    0.011   82.414    0.000
#>     att2pb2           0.836    0.014   58.155    0.000
#>     att3pb2           0.734    0.013   56.652    0.000
#>     att1pb3           0.780    0.010   75.828    0.000
#>     att2pb3           0.719    0.013   57.371    0.000
#>     att3pb3           0.628    0.011   55.238    0.000
#>   SNPC =~                                             
#>     sn1pc1            1.000                           
#>     sn2pc1            0.908    0.016   57.477    0.000
#>     sn3pc1            0.777    0.015   53.574    0.000
#>     sn1pc2            0.902    0.010   93.729    0.000
#>     sn2pc2            0.820    0.016   50.031    0.000
#>     sn3pc2            0.697    0.015   47.864    0.000
#>     sn1pc3            0.802    0.009   87.523    0.000
#>     sn2pc3            0.727    0.015   49.543    0.000
#>     sn3pc3            0.626    0.013   47.318    0.000
#>   SNPB =~                                             
#>     sn1pb1            1.000                           
#>     sn2pb1            0.923    0.016   56.507    0.000
#>     sn3pb1            0.807    0.015   54.229    0.000
#>     sn1pb2            0.926    0.012   78.526    0.000
#>     sn2pb2            0.858    0.018   47.984    0.000
#>     sn3pb2            0.748    0.016   46.473    0.000
#>     sn1pb3            0.792    0.011   73.076    0.000
#>     sn2pb3            0.728    0.016   46.470    0.000
#>     sn3pb3            0.644    0.015   44.319    0.000
#> 
#> Regressions:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   BEH ~                                               
#>     PBC               0.211    0.026    8.108    0.000
#>     INT               0.199    0.023    8.683    0.000
#>     INTxPBC           0.142    0.017    8.209    0.000
#> 
#> Covariances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>  .att1pb1 ~~                                          
#>    .att1pb2           0.182    0.011   16.731    0.000
#>    .att1pb3           0.156    0.009   16.541    0.000
#>  .att1pc1 ~~                                          
#>    .att1pb1           0.137    0.011   12.232    0.000
#>  .att1pc2 ~~                                          
#>    .att1pb1           0.116    0.010   11.632    0.000
#>  .att1pc3 ~~                                          
#>    .att1pb1           0.102    0.009   11.380    0.000
#>  .att1pb1 ~~                                          
#>    .att2pb1           0.206    0.012   17.027    0.000
#>    .att3pb1           0.172    0.010   16.490    0.000
#>    .sn1pb1            0.123    0.008   14.753    0.000
#>    .sn2pb1            0.112    0.008   14.627    0.000
#>    .sn3pb1            0.095    0.007   13.648    0.000
#>  .att1pb2 ~~                                          
#>    .att1pb3           0.146    0.009   16.560    0.000
#>  .att1pc1 ~~                                          
#>    .att1pb2           0.128    0.010   12.231    0.000
#>  .att1pc2 ~~                                          
#>    .att1pb2           0.109    0.009   11.716    0.000
#>  .att1pc3 ~~                                          
#>    .att1pb2           0.097    0.008   11.578    0.000
#>  .att1pb2 ~~                                          
#>    .att2pb2           0.237    0.012   20.406    0.000
#>    .att3pb2           0.202    0.010   20.075    0.000
#>    .sn1pb2            0.117    0.008   15.317    0.000
#>    .sn2pb2            0.111    0.007   15.625    0.000
#>    .sn3pb2            0.100    0.006   15.476    0.000
#>  .att1pc1 ~~                                          
#>    .att1pb3           0.102    0.009   11.259    0.000
#>  .att1pc2 ~~                                          
#>    .att1pb3           0.088    0.008   10.862    0.000
#>  .att1pc3 ~~                                          
#>    .att1pb3           0.077    0.007   10.598    0.000
#>  .att1pb3 ~~                                          
#>    .att2pb3           0.213    0.010   22.209    0.000
#>    .att3pb3           0.185    0.008   22.018    0.000
#>    .sn1pb3            0.116    0.007   17.433    0.000
#>    .sn2pb3            0.105    0.006   17.442    0.000
#>    .sn3pb3            0.095    0.006   16.834    0.000
#>  .att1pc1 ~~                                          
#>    .att1pc2           0.234    0.014   16.335    0.000
#>    .att1pc3           0.209    0.013   16.392    0.000
#>    .att2pc1           0.194    0.012   16.525    0.000
#>    .att3pc1           0.172    0.010   16.401    0.000
#>    .sn1pc1            0.109    0.008   13.102    0.000
#>    .sn2pc1            0.100    0.008   12.856    0.000
#>    .sn3pc1            0.091    0.007   13.046    0.000
#>  .att1pc2 ~~                                          
#>    .att1pc3           0.188    0.011   16.450    0.000
#>    .att2pc2           0.207    0.011   19.530    0.000
#>    .att3pc2           0.182    0.009   19.397    0.000
#>    .sn1pc2            0.126    0.008   16.654    0.000
#>    .sn2pc2            0.122    0.007   16.977    0.000
#>    .sn3pc2            0.099    0.006   15.802    0.000
#>  .att1pc3 ~~                                          
#>    .att2pc3           0.199    0.009   21.852    0.000
#>    .att3pc3           0.170    0.008   21.281    0.000
#>    .sn1pc3            0.108    0.006   16.676    0.000
#>    .sn2pc3            0.108    0.006   17.541    0.000
#>    .sn3pc3            0.088    0.005   16.268    0.000
#>  .att2pb1 ~~                                          
#>    .att2pb2           0.199    0.010   19.689    0.000
#>    .att2pb3           0.168    0.009   19.330    0.000
#>  .att2pc1 ~~                                          
#>    .att2pb1           0.159    0.011   15.145    0.000
#>  .att2pc2 ~~                                          
#>    .att2pb1           0.139    0.009   14.889    0.000
#>  .att2pc3 ~~                                          
#>    .att2pb1           0.130    0.008   15.491    0.000
#>  .att2pb1 ~~                                          
#>    .att3pb1           0.161    0.010   16.545    0.000
#>    .sn1pb1            0.120    0.008   15.431    0.000
#>    .sn2pb1            0.107    0.007   15.020    0.000
#>    .sn3pb1            0.094    0.007   14.406    0.000
#>  .att2pb2 ~~                                          
#>    .att2pb3           0.157    0.008   19.192    0.000
#>  .att2pc1 ~~                                          
#>    .att2pb2           0.145    0.010   14.691    0.000
#>  .att2pc2 ~~                                          
#>    .att2pb2           0.126    0.009   14.314    0.000
#>  .att2pc3 ~~                                          
#>    .att2pb2           0.116    0.008   14.779    0.000
#>  .att2pb2 ~~                                          
#>    .att3pb2           0.196    0.010   20.486    0.000
#>    .sn1pb2            0.113    0.007   15.494    0.000
#>    .sn2pb2            0.104    0.007   15.500    0.000
#>    .sn3pb2            0.091    0.006   14.944    0.000
#>  .att2pc1 ~~                                          
#>    .att2pb3           0.122    0.008   14.355    0.000
#>  .att2pc2 ~~                                          
#>    .att2pb3           0.104    0.008   13.775    0.000
#>  .att2pc3 ~~                                          
#>    .att2pb3           0.098    0.007   14.458    0.000
#>  .att2pb3 ~~                                          
#>    .att3pb3           0.165    0.008   21.586    0.000
#>    .sn1pb3            0.101    0.006   16.782    0.000
#>    .sn2pb3            0.090    0.005   16.458    0.000
#>    .sn3pb3            0.083    0.005   16.282    0.000
#>  .att2pc1 ~~                                          
#>    .att2pc2           0.262    0.013   19.764    0.000
#>    .att2pc3           0.229    0.012   19.530    0.000
#>    .att3pc1           0.158    0.010   16.408    0.000
#>    .sn1pc1            0.102    0.008   13.253    0.000
#>    .sn2pc1            0.088    0.007   12.537    0.000
#>    .sn3pc1            0.081    0.006   12.743    0.000
#>  .att2pc2 ~~                                          
#>    .att2pc3           0.201    0.010   19.307    0.000
#>    .att3pc2           0.167    0.009   19.368    0.000
#>    .sn1pc2            0.115    0.007   16.518    0.000
#>    .sn2pc2            0.102    0.006   15.679    0.000
#>    .sn3pc2            0.087    0.006   15.233    0.000
#>  .att2pc3 ~~                                          
#>    .att3pc3           0.155    0.007   21.155    0.000
#>    .sn1pc3            0.100    0.006   16.769    0.000
#>    .sn2pc3            0.097    0.006   17.395    0.000
#>    .sn3pc3            0.083    0.005   16.697    0.000
#>  .att3pb1 ~~                                          
#>    .att3pb2           0.187    0.009   21.563    0.000
#>    .att3pb3           0.160    0.008   21.286    0.000
#>  .att3pc1 ~~                                          
#>    .att3pb1           0.145    0.009   15.712    0.000
#>  .att3pc2 ~~                                          
#>    .att3pb1           0.122    0.008   15.099    0.000
#>  .att3pc3 ~~                                          
#>    .att3pb1           0.114    0.007   15.560    0.000
#>  .att3pb1 ~~                                          
#>    .sn1pb1            0.097    0.007   14.465    0.000
#>    .sn2pb1            0.091    0.006   14.645    0.000
#>    .sn3pb1            0.077    0.006   13.702    0.000
#>  .att3pb2 ~~                                          
#>    .att3pb3           0.147    0.007   20.982    0.000
#>  .att3pc1 ~~                                          
#>    .att3pb2           0.136    0.009   15.674    0.000
#>  .att3pc2 ~~                                          
#>    .att3pb2           0.114    0.008   15.041    0.000
#>  .att3pc3 ~~                                          
#>    .att3pb2           0.107    0.007   15.489    0.000
#>  .att3pb2 ~~                                          
#>    .sn1pb2            0.095    0.006   15.008    0.000
#>    .sn2pb2            0.089    0.006   15.239    0.000
#>    .sn3pb2            0.080    0.005   15.087    0.000
#>  .att3pc1 ~~                                          
#>    .att3pb3           0.115    0.008   15.300    0.000
#>  .att3pc2 ~~                                          
#>    .att3pb3           0.098    0.007   14.827    0.000
#>  .att3pc3 ~~                                          
#>    .att3pb3           0.093    0.006   15.443    0.000
#>  .att3pb3 ~~                                          
#>    .sn1pb3            0.091    0.005   17.072    0.000
#>    .sn2pb3            0.080    0.005   16.530    0.000
#>    .sn3pb3            0.071    0.004   15.757    0.000
#>  .att3pc1 ~~                                          
#>    .att3pc2           0.264    0.012   22.544    0.000
#>    .att3pc3           0.236    0.010   22.462    0.000
#>    .sn1pc1            0.087    0.007   12.683    0.000
#>    .sn2pc1            0.076    0.006   12.061    0.000
#>    .sn3pc1            0.069    0.006   12.168    0.000
#>  .att3pc2 ~~                                          
#>    .att3pc3           0.205    0.009   22.185    0.000
#>    .sn1pc2            0.101    0.006   16.349    0.000
#>    .sn2pc2            0.094    0.006   16.178    0.000
#>    .sn3pc2            0.079    0.005   15.459    0.000
#>  .att3pc3 ~~                                          
#>    .sn1pc3            0.085    0.005   16.303    0.000
#>    .sn2pc3            0.088    0.005   17.566    0.000
#>    .sn3pc3            0.071    0.004   16.185    0.000
#>  .sn1pb1 ~~                                           
#>    .sn1pb2            0.164    0.010   16.748    0.000
#>    .sn1pb3            0.144    0.009   16.617    0.000
#>  .sn1pc1 ~~                                           
#>    .sn1pb1            0.127    0.010   12.549    0.000
#>  .sn1pc2 ~~                                           
#>    .sn1pb1            0.108    0.009   12.193    0.000
#>  .sn1pc3 ~~                                           
#>    .sn1pb1            0.103    0.008   12.789    0.000
#>  .sn1pb1 ~~                                           
#>    .sn2pb1            0.110    0.006   17.192    0.000
#>    .sn3pb1            0.098    0.006   16.705    0.000
#>  .sn1pb2 ~~                                           
#>    .sn1pb3            0.131    0.008   16.248    0.000
#>  .sn1pc1 ~~                                           
#>    .sn1pb2            0.113    0.009   12.067    0.000
#>  .sn1pc2 ~~                                           
#>    .sn1pb2            0.097    0.008   11.800    0.000
#>  .sn1pc3 ~~                                           
#>    .sn1pb2            0.088    0.007   11.883    0.000
#>  .sn1pb2 ~~                                           
#>    .sn2pb2            0.105    0.006   18.013    0.000
#>    .sn3pb2            0.094    0.005   17.797    0.000
#>  .sn1pc1 ~~                                           
#>    .sn1pb3            0.100    0.008   12.016    0.000
#>  .sn1pc2 ~~                                           
#>    .sn1pb3            0.085    0.007   11.641    0.000
#>  .sn1pc3 ~~                                           
#>    .sn1pb3            0.079    0.007   11.861    0.000
#>  .sn1pb3 ~~                                           
#>    .sn2pb3            0.099    0.005   20.218    0.000
#>    .sn3pb3            0.094    0.005   20.431    0.000
#>  .sn1pc1 ~~                                           
#>    .sn1pc2            0.231    0.014   17.031    0.000
#>    .sn1pc3            0.209    0.012   17.151    0.000
#>    .sn2pc1            0.107    0.007   16.393    0.000
#>    .sn3pc1            0.096    0.006   16.303    0.000
#>  .sn1pc2 ~~                                           
#>    .sn1pc3            0.177    0.011   16.502    0.000
#>    .sn2pc2            0.107    0.006   18.253    0.000
#>    .sn3pc2            0.092    0.005   17.886    0.000
#>  .sn1pc3 ~~                                           
#>    .sn2pc3            0.103    0.005   20.384    0.000
#>    .sn3pc3            0.088    0.004   19.682    0.000
#>  .sn2pb1 ~~                                           
#>    .sn2pb2            0.195    0.010   20.268    0.000
#>    .sn2pb3            0.170    0.008   20.088    0.000
#>  .sn2pc1 ~~                                           
#>    .sn2pb1            0.142    0.010   14.546    0.000
#>  .sn2pc2 ~~                                           
#>    .sn2pb1            0.114    0.009   13.131    0.000
#>  .sn2pc3 ~~                                           
#>    .sn2pb1            0.106    0.008   13.754    0.000
#>  .sn2pb1 ~~                                           
#>    .sn3pb1            0.087    0.005   16.351    0.000
#>  .sn2pb2 ~~                                           
#>    .sn2pb3            0.158    0.008   19.973    0.000
#>  .sn2pc1 ~~                                           
#>    .sn2pb2            0.129    0.009   14.162    0.000
#>  .sn2pc2 ~~                                           
#>    .sn2pb2            0.106    0.008   13.083    0.000
#>  .sn2pc3 ~~                                           
#>    .sn2pb2            0.095    0.007   13.193    0.000
#>  .sn2pb2 ~~                                           
#>    .sn3pb2            0.086    0.005   17.769    0.000
#>  .sn2pc1 ~~                                           
#>    .sn2pb3            0.113    0.008   13.963    0.000
#>  .sn2pc2 ~~                                           
#>    .sn2pb3            0.090    0.007   12.596    0.000
#>  .sn2pc3 ~~                                           
#>    .sn2pb3            0.084    0.006   13.121    0.000
#>  .sn2pb3 ~~                                           
#>    .sn3pb3            0.080    0.004   19.472    0.000
#>  .sn2pc1 ~~                                           
#>    .sn2pc2            0.265    0.013   20.538    0.000
#>    .sn2pc3            0.232    0.011   20.416    0.000
#>    .sn3pc1            0.087    0.005   15.973    0.000
#>  .sn2pc2 ~~                                           
#>    .sn2pc3            0.209    0.010   20.439    0.000
#>    .sn3pc2            0.087    0.005   18.067    0.000
#>  .sn2pc3 ~~                                           
#>    .sn3pc3            0.083    0.004   19.756    0.000
#>  .sn3pb1 ~~                                           
#>    .sn3pb2            0.175    0.008   21.641    0.000
#>    .sn3pb3            0.155    0.007   21.405    0.000
#>  .sn3pc1 ~~                                           
#>    .sn3pb1            0.132    0.008   15.515    0.000
#>  .sn3pc2 ~~                                           
#>    .sn3pb1            0.110    0.007   14.758    0.000
#>  .sn3pc3 ~~                                           
#>    .sn3pb1            0.097    0.007   14.554    0.000
#>  .sn3pb2 ~~                                           
#>    .sn3pb3            0.147    0.007   21.635    0.000
#>  .sn3pc1 ~~                                           
#>    .sn3pb2            0.125    0.008   15.707    0.000
#>  .sn3pc2 ~~                                           
#>    .sn3pb2            0.104    0.007   14.950    0.000
#>  .sn3pc3 ~~                                           
#>    .sn3pb2            0.095    0.006   15.012    0.000
#>  .sn3pc1 ~~                                           
#>    .sn3pb3            0.107    0.007   14.895    0.000
#>  .sn3pc2 ~~                                           
#>    .sn3pb3            0.087    0.006   13.889    0.000
#>  .sn3pc3 ~~                                           
#>    .sn3pb3            0.079    0.006   14.020    0.000
#>  .sn3pc1 ~~                                           
#>    .sn3pc2            0.255    0.011   23.048    0.000
#>    .sn3pc3            0.226    0.010   22.847    0.000
#>  .sn3pc2 ~~                                           
#>    .sn3pc3            0.198    0.009   22.663    0.000
#>   INT ~~                                              
#>     PBC               0.034    0.033    1.042    0.297
#>     INTxPBC          -0.002    0.035   -0.044    0.965
#>   PBC ~~                                              
#>     INTxPBC          -0.121    0.039   -3.071    0.002
#> 
#> Variances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>    .att1              0.164    0.009   18.496    0.000
#>    .att2              0.150    0.008   19.739    0.000
#>    .att3              0.161    0.007   23.292    0.000
#>    .sn1               0.159    0.008   18.691    0.000
#>    .sn2               0.172    0.008   21.687    0.000
#>    .sn3               0.160    0.007   23.161    0.000
#>    .pb1               0.146    0.009   16.805    0.000
#>    .pb2               0.168    0.008   20.515    0.000
#>    .pb3               0.159    0.007   23.189    0.000
#>    .pc1               0.165    0.009   17.846    0.000
#>    .pc2               0.165    0.008   20.574    0.000
#>    .pc3               0.150    0.007   22.166    0.000
#>    .b1                0.134    0.029    4.615    0.000
#>    .b2                0.189    0.022    8.745    0.000
#>    .att1pc1           0.505    0.021   23.530    0.000
#>    .att2pc1           0.501    0.019   26.073    0.000
#>    .att3pc1           0.466    0.017   28.157    0.000
#>    .att1pc2           0.467    0.018   25.638    0.000
#>    .att2pc2           0.446    0.016   27.728    0.000
#>    .att3pc2           0.405    0.014   29.760    0.000
#>    .att1pc3           0.407    0.015   27.249    0.000
#>    .att2pc3           0.381    0.013   29.070    0.000
#>    .att3pc3           0.345    0.011   30.813    0.000
#>    .att1pb1           0.442    0.018   24.069    0.000
#>    .att2pb1           0.428    0.016   26.217    0.000
#>    .att3pb1           0.361    0.013   27.249    0.000
#>    .att1pb2           0.440    0.017   26.371    0.000
#>    .att2pb2           0.442    0.015   28.739    0.000
#>    .att3pb2           0.367    0.012   29.701    0.000
#>    .att1pb3           0.392    0.014   28.365    0.000
#>    .att2pb3           0.345    0.012   29.208    0.000
#>    .att3pb3           0.297    0.010   30.558    0.000
#>    .sn1pc1            0.415    0.018   23.328    0.000
#>    .sn2pc1            0.414    0.016   25.588    0.000
#>    .sn3pc1            0.394    0.014   28.006    0.000
#>    .sn1pc2            0.337    0.014   23.754    0.000
#>    .sn2pc2            0.366    0.014   27.059    0.000
#>    .sn3pc2            0.322    0.011   28.684    0.000
#>    .sn1pc3            0.296    0.012   25.145    0.000
#>    .sn2pc3            0.304    0.011   28.045    0.000
#>    .sn3pc3            0.271    0.009   29.384    0.000
#>    .sn1pb1            0.328    0.013   24.321    0.000
#>    .sn2pb1            0.334    0.013   26.575    0.000
#>    .sn3pb1            0.293    0.011   27.592    0.000
#>    .sn1pb2            0.291    0.012   24.573    0.000
#>    .sn2pb2            0.305    0.011   27.183    0.000
#>    .sn3pb2            0.268    0.009   28.458    0.000
#>    .sn1pb3            0.256    0.010   26.468    0.000
#>    .sn2pb3            0.251    0.009   28.278    0.000
#>    .sn3pb3            0.233    0.008   29.718    0.000
#>    .ATT               0.342    0.094    3.634    0.000
#>    .SN                0.229    0.043    5.316    0.000
#>    .PB                0.689    0.061   11.210    0.000
#>    .PC                0.500    0.127    3.928    0.000
#>    .BEH               0.544    0.034   16.216    0.000
#>     INT               1.058    0.104   10.177    0.000
#>     PBC               1.204    0.137    8.768    0.000
#>     INTxPBC           1.492    0.086   17.408    0.000
#>    .ATTPC             0.869    0.050   17.215    0.000
#>    .ATTPB             0.697    0.037   18.991    0.000
#>    .SNPC              0.447    0.027   16.275    0.000
#>    .SNPB              0.390    0.021   18.568    0.000

Interaction between a first order and a higher order construct

In the TPB_1SO dataset, the INT construct is a second order construct of ATT, SN and PBC. In this example, we will estimate the interaction between the INT (higher order construct) and PBC (first order construct).

tpb <- '
  # First order constructs
  ATT =~ att1 + att2 + att3
  SN  =~ sn1 + sn2 + sn3
  PBC =~ pbc1 + pbc2 + pbc3
  BEH =~ b1 + b2

  # Higher order constructs
  INT =~ ATT + PBC + SN

  # Higher order interaction
  INTxPBC =~ ATT:PBC + SN:PBC + PBC:PBC
  
  # Structural model
  BEH ~ PBC + INT + INTxPBC
'

est_ca <- modsem(tpb, data = TPB_1SO, method = "ca")
summary(est_ca)
#> Estimating baseline model (H0)
#> Warning: Unable to estimate baseline model for models with higher-order
#> interaction terms!
#> modsem (version 1.0.11, approach = ca):
#> 
#> Interaction Model Fit Measures (H1):
#>   Loglikelihood                              -42117.62 
#>   Akaike (AIC)                                84339.24 
#>   Bayesian (BIC)                              84630.48 
#>   Chi-square                                   4246.90 
#>   Degrees of Freedom                               178 
#>   P-value (Chi-square)                           0.000 
#>   RMSEA                                          0.107 
#>   CFI                                            0.890 
#>   SRMR                                           0.135 
#> 
#> R-Squared Interaction Model (H1):
#>   BEH                                            0.232 
#> 
#> lavaan 0.6-19 ended normally after 446 iterations
#> 
#>   Estimator                                         ML
#>   Optimization method                           NLMINB
#>   Number of model parameters                        73
#>   Row rank of the constraints matrix                21
#> 
#>   Number of observations                          2000
#> 
#> Model Test User Model:
#>                                                       
#>   Test statistic                              4246.901
#>   Degrees of freedom                               178
#>   P-value (Chi-square)                           0.000
#> 
#> Parameter Estimates:
#> 
#>   Standard errors                             Standard
#>   Information                                 Expected
#>   Information saturated (h1) model          Structured
#> 
#> Latent Variables:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   ATT =~                                              
#>     att1   (l_1_A)    1.000                           
#>     att2   (l_2_A)    0.904    0.010   89.441    0.000
#>     att3   (l_3_A)    0.801    0.009   85.442    0.000
#>   SN =~                                               
#>     sn1    (l_1_S)    1.000                           
#>     sn2    (l_2_S)    0.879    0.013   66.744    0.000
#>     sn3    (l_3_S)    0.780    0.012   63.639    0.000
#>   PBC =~                                              
#>     pbc1   (l_1_P)    1.000                           
#>     pbc2   (l_2_P)    0.900    0.007  135.630    0.000
#>     pbc3   (l_3_P)    0.776    0.006  125.111    0.000
#>   BEH =~                                              
#>     b1     (l_1_B)    1.000                           
#>     b2     (l_2_B)    0.863    0.033   26.043    0.000
#>   INT =~                                              
#>     ATT   (l_ATT_)    1.000                           
#>     PBC   (l_PBC_)    0.783    0.030   26.191    0.000
#>     SN     (l_SN_)    0.717    0.027   26.257    0.000
#>   INTxPBC =~                                          
#>     ATTPB (l_ATTP)    1.000                           
#>     SNPBC  (l_SNP)    0.735    0.020   35.914    0.000
#>     PBCPB (l_PBCP)    1.011    0.027   36.926    0.000
#>   ATTPBC =~                                           
#>     att11 (l_11_A)    1.000                           
#>     att22 (l_22_A)    0.813    0.009   87.006    0.000
#>     att33 (l_33_A)    0.621    0.008   82.373    0.000
#>   SNPBC =~                                            
#>     sn1p1 (l_11_S)    1.000                           
#>     sn2p2 (l_22_S)    0.792    0.012   68.052    0.000
#>     sn3p3 (l_33_S)    0.605    0.009   64.723    0.000
#>   PBCPBC =~                                           
#>     pbc11 (l_11_P)    1.000                           
#>     pbc22 (l_22_P)    0.810    0.012   67.815    0.000
#>     pbc33 (l_33_P)    0.602    0.010   62.555    0.000
#> 
#> Regressions:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   BEH ~                                               
#>     PBC     (G_PB)    0.249    0.052    4.775    0.000
#>     INT   (G_INT_)    0.160    0.056    2.838    0.005
#>     INTPB (G_INTP)    0.221    0.016   13.492    0.000
#> 
#> Covariances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   INT ~~                                              
#>     INTxPBC (C_IN)   -0.019    0.025   -0.758    0.448
#>  .att1pbc1 ~~                                         
#>    .att2pb2           0.000                           
#>    .att3pb3           0.000                           
#>  .att2pbc2 ~~                                         
#>    .att3pb3           0.000                           
#>  .sn1pbc1 ~~                                          
#>    .sn2pbc2           0.000                           
#>    .sn3pbc3           0.000                           
#>  .sn2pbc2 ~~                                          
#>    .sn3pbc3           0.000                           
#>  .pbc1pbc1 ~~                                         
#>    .pbc2pb2           0.000                           
#>    .pbc3pb3           0.000                           
#>  .pbc2pbc2 ~~                                         
#>    .pbc3pb3           0.000                           
#> 
#> Intercepts:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>    .ATTPBC  (M_AT)    0.422    0.013   32.832    0.000
#>    .SNPBC   (M_SN)    0.302    0.010   30.547    0.000
#>    .PBCPBC  (M_PB)    0.575    0.011   51.528    0.000
#>    .att1              1.001    0.023   44.025    0.000
#>    .att2              1.008    0.021   47.861    0.000
#>    .att3              1.002    0.019   52.974    0.000
#>    .sn1               0.974    0.018   55.116    0.000
#>    .sn2               0.982    0.016   60.802    0.000
#>    .sn3               0.991    0.015   67.883    0.000
#>    .pbc1              0.983    0.021   47.193    0.000
#>    .pbc2              0.988    0.020   49.207    0.000
#>    .pbc3              0.998    0.018   54.375    0.000
#>    .b1                1.150    0.020   57.082    0.000
#>    .b2                1.132    0.018   61.428    0.000
#>    .att1pb1           0.391    0.038   10.186    0.000
#>    .att2pb2           0.330    0.032   10.249    0.000
#>    .att3pb3           0.256    0.025   10.137    0.000
#>    .sn1pbc1           0.262    0.029    9.112    0.000
#>    .sn2pbc2           0.226    0.024    9.516    0.000
#>    .sn3pbc3           0.177    0.019    9.454    0.000
#>    .pbc1pb1           0.553    0.038   14.525    0.000
#>    .pbc2pb2           0.501    0.032   15.560    0.000
#>    .pbc3pb3           0.421    0.025   16.843    0.000
#> 
#> Variances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>    .ATT   (Vr_ATT)    0.346    0.023   15.014    0.000
#>    .SN     (Vr_SN)    0.179    0.013   13.986    0.000
#>    .PBC   (Vr_PBC)    0.245    0.016   15.052    0.000
#>    .BEH     (Z_BE)    0.513    0.029   18.005    0.000
#>     INT   (Vr_INT)    0.539    0.027   19.889    0.000
#>     INTPB (V_INTP)    1.535    0.076   20.148    0.000
#>    .ATTPB (V_ATTP)    0.687    0.022   30.946    0.000
#>    .SNPBC  (V_SNP)    0.354    0.013   27.980    0.000
#>    .PBCPB (V_PBCP)    0.662    0.026   25.764    0.000
#>    .att1   (Vr_t1)    0.150    0.008   18.624    0.000
#>    .att2   (Vr_t2)    0.165    0.007   22.170    0.000
#>    .att3   (Vr_t3)    0.147    0.006   23.582    0.000
#>    .sn1    (Vr_s1)    0.168    0.008   20.991    0.000
#>    .sn2    (Vr_s2)    0.168    0.007   24.105    0.000
#>    .sn3    (Vr_s3)    0.149    0.006   25.303    0.000
#>    .pbc1   (Vr_p1)    0.293    0.009   30.965    0.000
#>    .pbc2   (Vr_p2)    0.340    0.009   38.979    0.000
#>    .pbc3   (Vr_p3)    0.327    0.007   44.262    0.000
#>    .b1     (Vr_b1)    0.144    0.024    6.051    0.000
#>    .b2     (Vr_b2)    0.181    0.018    9.880    0.000
#>    .att11 (Vr_t11)    0.389    0.011   34.052    0.000
#>    .att22 (Vr_t22)    0.378    0.010   39.469    0.000
#>    .att33 (Vr_t33)    0.285    0.007   41.921    0.000
#>    .sn1p1 (Vr_s11)    0.279    0.008   35.023    0.000
#>    .sn2p2 (Vr_s22)    0.256    0.006   39.790    0.000
#>    .sn3p3 (Vr_s33)    0.191    0.005   41.982    0.000
#>    .pbc11 (Vr_p11)    0.423    0.015   28.080    0.000
#>    .pbc22 (Vr_p22)    0.432    0.013   33.193    0.000
#>    .pbc33 (Vr_p33)    0.334    0.009   35.936    0.000
#> 
#> Constraints:
#>                                                |Slack|
#>     V_ATTPBC-((_ATT_INT^2*V_INT+V_ATT)*(_PBC_    0.000
#>     V_11-(_1_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_22-(_2_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_33-(_3_ATT^2*(_ATT_INT^2*V_INT+V_ATT)*V    0.000
#>     V_SNPBC-((_SN_INT^2*V_INT+V_SN)*(_PBC_INT    0.000
#>     V_11-(_1_SN^2*(_SN_INT^2*V_INT+V_SN)*V_1+    0.000
#>     V_22-(_2_SN^2*(_SN_INT^2*V_INT+V_SN)*V_2+    0.000
#>     V_33-(_3_SN^2*(_SN_INT^2*V_INT+V_SN)*V_3+    0.000
#>     V_PBCPBC-((_PBC_INT^2*V_INT+V_PBC)*(_PBC_    0.000
#>     V_11-(_1_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V    0.000
#>     V_22-(_2_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V    0.000
#>     V_33-(_3_PBC^2*(_PBC_INT^2*V_INT+V_PBC)*V    0.000
#>     lmbd_tt1pbc1_ATTPBC-(lmbd_tt1_ATT*_1_PBC)    0.000
#>     lmbd_tt2pbc2_ATTPBC-(lmbd_tt2_ATT*_2_PBC)    0.000
#>     lmbd_tt3pbc3_ATTPBC-(lmbd_tt3_ATT*_3_PBC)    0.000
#>     lmbd_sn1pbc1_SNPBC-(lmbd_sn1_SN*lm_1_PBC)    0.000
#>     lmbd_sn2pbc2_SNPBC-(lmbd_sn2_SN*lm_2_PBC)    0.000
#>     lmbd_sn3pbc3_SNPBC-(lmbd_sn3_SN*lm_3_PBC)    0.000
#>     lmbd_pbc1pbc1_PBCPBC-(lmbd_p1_PBC*_1_PBC)    0.000
#>     lmbd_pbc2pbc2_PBCPBC-(lmbd_p2_PBC*_2_PBC)    0.000
#>     lmbd_pbc3pbc3_PBCPBC-(lmbd_p3_PBC*_3_PBC)    0.000
#>     Mn_ATTPBC-((lmbd_ATT_INT*_PBC_INT*V_INT))    0.000
#>     Mn_SNPBC-((lmbd_PBC_INT*lm_SN_INT*V_INT))    0.000
#>     Mn_PBCPBC-((lmbd_PBC_INT^2*Vr_INT+V_PBC))    0.000

est_dblcent  <- modsem(tpb, data = TPB_1SO, method = "dblcent")
summary(est_dblcent)
#> Estimating baseline model (H0)
#> Warning: Unable to estimate baseline model for models with higher-order
#> interaction terms!
#> modsem (version 1.0.11, approach = dblcent):
#> 
#> Interaction Model Fit Measures (H1):
#>   Loglikelihood                              -42695.54 
#>   Akaike (AIC)                                85803.08 
#>   Bayesian (BIC)                              86956.87 
#>   Chi-square                                    565.72 
#>   Degrees of Freedom                               424 
#>   P-value (Chi-square)                           0.000 
#>   RMSEA                                          0.013 
#>   CFI                                            0.999 
#>   SRMR                                           0.018 
#> 
#> R-Squared Interaction Model (H1):
#>   BEH                                            0.276 
#> 
#> lavaan 0.6-19 ended normally after 583 iterations
#> 
#>   Estimator                                         ML
#>   Optimization method                           NLMINB
#>   Number of model parameters                       206
#> 
#>   Number of observations                          2000
#> 
#> Model Test User Model:
#>                                                       
#>   Test statistic                               565.724
#>   Degrees of freedom                               424
#>   P-value (Chi-square)                           0.000
#> 
#> Parameter Estimates:
#> 
#>   Standard errors                             Standard
#>   Information                                 Expected
#>   Information saturated (h1) model          Structured
#> 
#> Latent Variables:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   ATT =~                                              
#>     att1              1.000                           
#>     att2              0.909    0.011   82.768    0.000
#>     att3              0.802    0.010   80.425    0.000
#>   SN =~                                               
#>     sn1               1.000                           
#>     sn2               0.891    0.016   54.218    0.000
#>     sn3               0.790    0.015   52.448    0.000
#>   PBC =~                                              
#>     pbc1              1.000                           
#>     pbc2              0.909    0.014   66.750    0.000
#>     pbc3              0.793    0.013   63.370    0.000
#>   BEH =~                                              
#>     b1                1.000                           
#>     b2                0.865    0.029   30.297    0.000
#>   INT =~                                              
#>     ATT               1.000                           
#>     PBC               0.819    0.024   33.976    0.000
#>     SN                0.702    0.021   33.484    0.000
#>   INTxPBC =~                                          
#>     ATTPBC            1.000                           
#>     SNPBC             0.717    0.017   41.167    0.000
#>     PBCPBC            0.971    0.022   43.199    0.000
#>   ATTPBC =~                                           
#>     att1pbc1          1.000                           
#>     att2pbc1          0.897    0.010   92.034    0.000
#>     att3pbc1          0.807    0.009   90.390    0.000
#>     att1pbc2          0.908    0.010   87.991    0.000
#>     att2pbc2          0.813    0.012   65.243    0.000
#>     att3pbc2          0.733    0.011   65.091    0.000
#>     att1pbc3          0.774    0.010   81.181    0.000
#>     att2pbc3          0.694    0.011   60.977    0.000
#>     att3pbc3          0.630    0.010   61.880    0.000
#>   SNPBC =~                                            
#>     sn1pbc1           1.000                           
#>     sn2pbc1           0.884    0.014   63.726    0.000
#>     sn3pbc1           0.782    0.013   61.274    0.000
#>     sn1pbc2           0.907    0.011   84.140    0.000
#>     sn2pbc2           0.802    0.015   52.856    0.000
#>     sn3pbc2           0.702    0.014   51.227    0.000
#>     sn1pbc3           0.787    0.010   79.471    0.000
#>     sn2pbc3           0.686    0.014   50.281    0.000
#>     sn3pbc3           0.613    0.012   50.032    0.000
#>   PBCPBC =~                                           
#>     pbc1pbc1          1.000                           
#>     pbc2pbc1          0.909    0.010   89.205    0.000
#>     pbc3pbc1          0.782    0.009   85.688    0.000
#>     pbc2pbc2          0.827    0.017   47.996    0.000
#>     pbc3pbc2          0.710    0.013   54.545    0.000
#>     pbc3pbc3          0.616    0.014   45.151    0.000
#> 
#> Regressions:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   BEH ~                                               
#>     PBC               0.188    0.043    4.337    0.000
#>     INT               0.188    0.045    4.173    0.000
#>     INTxPBC           0.217    0.016   13.789    0.000
#> 
#> Covariances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>  .att1pbc1 ~~                                         
#>    .att1pbc2          0.122    0.008   15.676    0.000
#>    .att1pbc3          0.108    0.007   15.545    0.000
#>    .att2pbc1          0.201    0.013   16.047    0.000
#>    .att3pbc1          0.178    0.011   16.033    0.000
#>    .pbc1pbc1          0.256    0.018   13.950    0.000
#>    .pbc2pbc1          0.118    0.009   12.940    0.000
#>    .pbc3pbc1          0.098    0.008   12.237    0.000
#>    .sn1pbc1           0.116    0.009   13.217    0.000
#>    .sn2pbc1           0.100    0.008   12.831    0.000
#>    .sn3pbc1           0.097    0.007   13.331    0.000
#>  .att1pbc2 ~~                                         
#>    .att1pbc3          0.099    0.006   15.365    0.000
#>    .att2pbc2          0.205    0.011   18.285    0.000
#>    .att3pbc2          0.189    0.010   18.718    0.000
#>    .pbc2pbc1          0.136    0.009   15.063    0.000
#>    .pbc2pbc2          0.241    0.015   15.591    0.000
#>    .pbc3pbc2          0.106    0.007   14.278    0.000
#>    .sn1pbc2           0.123    0.008   15.415    0.000
#>    .sn2pbc2           0.098    0.007   13.955    0.000
#>    .sn3pbc2           0.098    0.007   15.102    0.000
#>  .att1pbc3 ~~                                         
#>    .att2pbc3          0.232    0.010   22.926    0.000
#>    .att3pbc3          0.199    0.009   22.457    0.000
#>    .pbc3pbc1          0.144    0.008   18.050    0.000
#>    .pbc3pbc2          0.130    0.007   17.741    0.000
#>    .pbc3pbc3          0.232    0.012   18.949    0.000
#>    .sn1pbc3           0.125    0.007   17.887    0.000
#>    .sn2pbc3           0.107    0.006   17.035    0.000
#>    .sn3pbc3           0.103    0.006   17.869    0.000
#>  .att2pbc1 ~~                                         
#>    .att2pbc2          0.156    0.008   20.447    0.000
#>    .att2pbc3          0.144    0.007   20.765    0.000
#>    .att3pbc1          0.163    0.010   16.025    0.000
#>    .pbc1pbc1          0.238    0.017   14.066    0.000
#>    .pbc2pbc1          0.105    0.008   12.572    0.000
#>    .pbc3pbc1          0.088    0.007   11.960    0.000
#>    .sn1pbc1           0.111    0.008   13.687    0.000
#>    .sn2pbc1           0.093    0.007   12.940    0.000
#>    .sn3pbc1           0.092    0.007   13.718    0.000
#>  .att2pbc2 ~~                                         
#>    .att2pbc3          0.130    0.006   20.314    0.000
#>    .att3pbc2          0.169    0.009   18.418    0.000
#>    .pbc2pbc1          0.121    0.008   14.699    0.000
#>    .pbc2pbc2          0.223    0.014   15.709    0.000
#>    .pbc3pbc2          0.097    0.007   14.256    0.000
#>    .sn1pbc2           0.108    0.007   14.776    0.000
#>    .sn2pbc2           0.090    0.006   14.023    0.000
#>    .sn3pbc2           0.085    0.006   14.369    0.000
#>  .att2pbc3 ~~                                         
#>    .att3pbc3          0.182    0.008   22.286    0.000
#>    .pbc3pbc1          0.129    0.007   17.566    0.000
#>    .pbc3pbc2          0.116    0.007   17.202    0.000
#>    .pbc3pbc3          0.214    0.011   18.903    0.000
#>    .sn1pbc3           0.116    0.006   17.956    0.000
#>    .sn2pbc3           0.100    0.006   17.266    0.000
#>    .sn3pbc3           0.093    0.005   17.549    0.000
#>  .att3pbc1 ~~                                         
#>    .att3pbc2          0.132    0.006   20.977    0.000
#>    .att3pbc3          0.118    0.006   20.694    0.000
#>    .pbc1pbc1          0.205    0.015   13.672    0.000
#>    .pbc2pbc1          0.093    0.007   12.446    0.000
#>    .pbc3pbc1          0.078    0.007   11.904    0.000
#>    .sn1pbc1           0.098    0.007   13.636    0.000
#>    .sn2pbc1           0.084    0.006   13.195    0.000
#>    .sn3pbc1           0.082    0.006   13.824    0.000
#>  .att3pbc2 ~~                                         
#>    .att3pbc3          0.105    0.005   20.231    0.000
#>    .pbc2pbc1          0.115    0.007   15.475    0.000
#>    .pbc2pbc2          0.216    0.013   16.714    0.000
#>    .pbc3pbc2          0.091    0.006   14.907    0.000
#>    .sn1pbc2           0.096    0.007   14.798    0.000
#>    .sn2pbc2           0.080    0.006   13.856    0.000
#>    .sn3pbc2           0.077    0.005   14.399    0.000
#>  .att3pbc3 ~~                                         
#>    .pbc3pbc1          0.116    0.007   17.724    0.000
#>    .pbc3pbc2          0.106    0.006   17.648    0.000
#>    .pbc3pbc3          0.186    0.010   18.584    0.000
#>    .sn1pbc3           0.098    0.006   17.232    0.000
#>    .sn2pbc3           0.087    0.005   16.906    0.000
#>    .sn3pbc3           0.080    0.005   17.060    0.000
#>  .pbc1pbc1 ~~                                         
#>    .pbc2pbc1          0.283    0.017   16.582    0.000
#>    .pbc3pbc1          0.251    0.015   16.550    0.000
#>  .sn1pbc1 ~~                                          
#>    .pbc1pbc1          0.201    0.014   14.829    0.000
#>  .sn2pbc1 ~~                                          
#>    .pbc1pbc1          0.171    0.012   14.066    0.000
#>  .sn3pbc1 ~~                                          
#>    .pbc1pbc1          0.163    0.011   14.496    0.000
#>  .pbc2pbc1 ~~                                         
#>    .pbc2pbc2          0.299    0.015   19.338    0.000
#>    .pbc3pbc1          0.111    0.007   15.091    0.000
#>    .pbc3pbc2          0.130    0.007   17.842    0.000
#>  .sn1pbc1 ~~                                          
#>    .pbc2pbc1          0.089    0.007   13.195    0.000
#>  .sn1pbc2 ~~                                          
#>    .pbc2pbc1          0.088    0.007   13.471    0.000
#>  .sn2pbc1 ~~                                          
#>    .pbc2pbc1          0.079    0.006   13.005    0.000
#>  .sn2pbc2 ~~                                          
#>    .pbc2pbc1          0.080    0.006   13.607    0.000
#>  .sn3pbc1 ~~                                          
#>    .pbc2pbc1          0.071    0.006   12.854    0.000
#>  .sn3pbc2 ~~                                          
#>    .pbc2pbc1          0.077    0.005   14.169    0.000
#>  .pbc2pbc2 ~~                                         
#>    .pbc3pbc2          0.241    0.013   18.860    0.000
#>  .sn1pbc2 ~~                                          
#>    .pbc2pbc2          0.166    0.011   14.639    0.000
#>  .sn2pbc2 ~~                                          
#>    .pbc2pbc2          0.152    0.010   14.913    0.000
#>  .sn3pbc2 ~~                                          
#>    .pbc2pbc2          0.137    0.009   14.766    0.000
#>  .pbc3pbc1 ~~                                         
#>    .pbc3pbc2          0.146    0.007   21.068    0.000
#>    .pbc3pbc3          0.263    0.012   22.316    0.000
#>  .sn1pbc1 ~~                                          
#>    .pbc3pbc1          0.078    0.006   12.972    0.000
#>  .sn1pbc3 ~~                                          
#>    .pbc3pbc1          0.091    0.006   15.897    0.000
#>  .sn2pbc1 ~~                                          
#>    .pbc3pbc1          0.067    0.005   12.407    0.000
#>  .sn2pbc3 ~~                                          
#>    .pbc3pbc1          0.083    0.005   16.014    0.000
#>  .sn3pbc1 ~~                                          
#>    .pbc3pbc1          0.062    0.005   12.611    0.000
#>  .sn3pbc3 ~~                                          
#>    .pbc3pbc1          0.079    0.005   16.645    0.000
#>  .pbc3pbc2 ~~                                         
#>    .pbc3pbc3          0.236    0.011   21.902    0.000
#>  .sn1pbc2 ~~                                          
#>    .pbc3pbc2          0.075    0.005   13.720    0.000
#>  .sn1pbc3 ~~                                          
#>    .pbc3pbc2          0.083    0.005   15.837    0.000
#>  .sn2pbc2 ~~                                          
#>    .pbc3pbc2          0.067    0.005   13.755    0.000
#>  .sn2pbc3 ~~                                          
#>    .pbc3pbc2          0.077    0.005   16.119    0.000
#>  .sn3pbc2 ~~                                          
#>    .pbc3pbc2          0.062    0.004   13.867    0.000
#>  .sn3pbc3 ~~                                          
#>    .pbc3pbc2          0.071    0.004   16.237    0.000
#>  .sn1pbc3 ~~                                          
#>    .pbc3pbc3          0.153    0.009   17.396    0.000
#>  .sn2pbc3 ~~                                          
#>    .pbc3pbc3          0.142    0.008   17.662    0.000
#>  .sn3pbc3 ~~                                          
#>    .pbc3pbc3          0.129    0.007   17.642    0.000
#>  .sn1pbc1 ~~                                          
#>    .sn1pbc2           0.163    0.009   19.134    0.000
#>    .sn1pbc3           0.139    0.007   18.626    0.000
#>    .sn2pbc1           0.099    0.006   15.359    0.000
#>    .sn3pbc1           0.089    0.006   15.027    0.000
#>  .sn1pbc2 ~~                                          
#>    .sn1pbc3           0.126    0.007   18.289    0.000
#>    .sn2pbc2           0.101    0.006   17.396    0.000
#>    .sn3pbc2           0.096    0.005   18.005    0.000
#>  .sn1pbc3 ~~                                          
#>    .sn2pbc3           0.106    0.005   20.768    0.000
#>    .sn3pbc3           0.095    0.005   20.530    0.000
#>  .sn2pbc1 ~~                                          
#>    .sn2pbc2           0.136    0.007   19.542    0.000
#>    .sn2pbc3           0.122    0.006   19.630    0.000
#>    .sn3pbc1           0.079    0.005   14.861    0.000
#>  .sn2pbc2 ~~                                          
#>    .sn2pbc3           0.109    0.006   19.185    0.000
#>    .sn3pbc2           0.083    0.005   17.507    0.000
#>  .sn2pbc3 ~~                                          
#>    .sn3pbc3           0.084    0.004   20.140    0.000
#>  .sn3pbc1 ~~                                          
#>    .sn3pbc2           0.122    0.006   20.972    0.000
#>    .sn3pbc3           0.107    0.005   20.599    0.000
#>  .sn3pbc2 ~~                                          
#>    .sn3pbc3           0.096    0.005   20.403    0.000
#>   INT ~~                                              
#>     INTxPBC          -0.038    0.033   -1.147    0.252
#> 
#> Variances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>    .att1              0.152    0.008   18.217    0.000
#>    .att2              0.168    0.008   21.468    0.000
#>    .att3              0.147    0.006   22.692    0.000
#>    .sn1               0.171    0.009   19.842    0.000
#>    .sn2               0.165    0.008   21.851    0.000
#>    .sn3               0.151    0.006   23.314    0.000
#>    .pbc1              0.162    0.009   18.801    0.000
#>    .pbc2              0.167    0.008   21.287    0.000
#>    .pbc3              0.159    0.007   23.501    0.000
#>    .b1                0.145    0.021    6.812    0.000
#>    .b2                0.180    0.017   10.895    0.000
#>    .att1pbc1          0.377    0.017   22.325    0.000
#>    .att2pbc1          0.381    0.015   25.514    0.000
#>    .att3pbc1          0.314    0.012   25.965    0.000
#>    .att1pbc2          0.371    0.015   24.510    0.000
#>    .att2pbc2          0.360    0.013   27.082    0.000
#>    .att3pbc2          0.298    0.011   27.636    0.000
#>    .att1pbc3          0.364    0.013   27.887    0.000
#>    .att2pbc3          0.357    0.012   30.624    0.000
#>    .att3pbc3          0.277    0.009   30.093    0.000
#>    .sn1pbc1           0.315    0.013   25.133    0.000
#>    .sn2pbc1           0.261    0.010   25.532    0.000
#>    .sn3pbc1           0.232    0.009   26.660    0.000
#>    .sn1pbc2           0.297    0.011   26.676    0.000
#>    .sn2pbc2           0.240    0.009   26.744    0.000
#>    .sn3pbc2           0.211    0.007   28.273    0.000
#>    .sn1pbc3           0.253    0.009   28.195    0.000
#>    .sn2pbc3           0.222    0.008   29.257    0.000
#>    .sn3pbc3           0.183    0.006   29.644    0.000
#>    .pbc1pbc1          0.680    0.036   19.050    0.000
#>    .pbc2pbc1          0.310    0.013   23.088    0.000
#>    .pbc3pbc1          0.287    0.011   25.366    0.000
#>    .pbc2pbc2          0.611    0.028   21.890    0.000
#>    .pbc3pbc2          0.264    0.010   26.146    0.000
#>    .pbc3pbc3          0.470    0.019   24.836    0.000
#>    .ATT               0.389    0.025   15.723    0.000
#>    .SN                0.199    0.014   14.729    0.000
#>    .PBC               0.300    0.018   16.350    0.000
#>    .BEH               0.516    0.027   19.381    0.000
#>     INT               0.994    0.049   20.231    0.000
#>     INTxPBC           1.597    0.073   21.909    0.000
#>    .ATTPBC            0.373    0.025   14.700    0.000
#>    .SNPBC             0.224    0.015   15.118    0.000
#>    .PBCPBC            0.349    0.025   13.718    0.000