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

Composite Constructs

As of version 1.0.20, the modsem function supports the estimation of models with composite constructs, when using method="lms". The approach is based on Tamara Schamberger, Florian Schuberth, Jörg Henseler & Yves Rosseel, 2015.

Here we can see a simple example, using the TPB dataset.

tpb <- '
# Outer Model (Based on Hagger et al., 2007)
  # Latent Variables
  SN =~ sn1 + sn2
  PBC =~ pbc1 + pbc2 + pbc3
  INT =~ int1 + int2 + int3

  # Composites
  ATT <~ att1 + att2 + att3 + att4 + att5
  BEH <~ b1 + b2

# Inner Model (Based on Steinmetz et al., 2011)
  INT ~ ATT + SN + PBC
  BEH ~ INT + PBC + INT:PBC
'

fit <- modsem(tpb, TPB, method = "lms", nodes = 32)
summary(fit)
#> 
#> modsem (1.0.20) ended normally after 113 iterations
#> 
#>   Estimator                                        LMS
#>   Optimization method                       EMA-NLMINB
#>   Number of model parameters                        47
#> 
#>   Number of observations                          2000
#> 
#> Loglikelihood and Information Criteria:
#>   Loglikelihood                              -26324.39
#>   Akaike (AIC)                                52742.77
#>   Bayesian (BIC)                              53006.02
#>  
#> Numerical Integration:
#>   Points of integration (per dim)                   32
#>   Dimensions                                         1
#>   Total points of integration                       32
#> 
#> Fit Measures for Baseline Model (H0):
#>                                               Standard
#>   Chi-square                                     63.05
#>   Degrees of Freedom (Chi-square)                   71
#>   P-value (Chi-square)                           0.738
#>   RMSEA                                          0.000
#>                                                       
#>   Loglikelihood                              -26391.61
#>   Akaike (AIC)                                52875.22
#>   Bayesian (BIC)                              53132.86
#>  
#> Comparative Fit to H0 (LRT test):
#>   Loglikelihood change                           67.22
#>   Difference test (D)                           134.45
#>   Degrees of freedom (D)                             1
#>   P-value (D)                                    0.000
#>  
#> R-Squared Interaction Model (H1):
#>   INT                                            0.364
#>   BEH                                            0.232
#> R-Squared Baseline Model (H0):
#>   INT                                            0.364
#>   BEH                                            0.186
#> R-Squared Change (H1 - H0):
#>   INT                                            0.000
#>   BEH                                            0.046
#> 
#> Parameter Estimates:
#>   Coefficients                          unstandardized
#>   Information                                 observed
#>   Standard errors                             standard
#>  
#> Latent Variables:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   SN =~         
#>     sn1             1.000                             
#>     sn2             0.888      0.017   52.605    0.000
#>   PBC =~        
#>     pbc1            1.000                             
#>     pbc2            0.912      0.013   69.340    0.000
#>     pbc3            0.801      0.012   65.996    0.000
#>   INT =~        
#>     int1            1.000                             
#>     int2            0.913      0.015   59.047    0.000
#>     int3            0.807      0.014   55.729    0.000
#> 
#> Composites:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   ATT <~        
#>     att1            1.000                             
#>     att2            0.677      0.261    2.596    0.009
#>     att3            0.870      0.279    3.118    0.002
#>     att4            0.839      0.273    3.078    0.002
#>     att5            1.124      0.313    3.588    0.000
#>   BEH <~        
#>     b1              1.000                             
#>     b2              1.322      0.312    4.241    0.000
#> 
#> Regressions:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   INT ~         
#>     SN              0.182      0.027    6.611    0.000
#>     PBC             0.226      0.029    7.767    0.000
#>     ATT             0.051      0.011    4.715    0.000
#>   BEH ~         
#>     PBC             0.527      0.085    6.239    0.000
#>     INT             0.430      0.081    5.296    0.000
#>     INT:PBC         0.465      0.072    6.419    0.000
#> 
#> Intercepts:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>    .pbc1            0.997      0.024   42.397    0.000
#>    .pbc2            0.984      0.022   44.918    0.000
#>    .pbc3            0.991      0.020   50.438    0.000
#>    .sn1             1.005      0.024   41.641    0.000
#>    .sn2             1.010      0.022   46.690    0.000
#>     att1            1.014      0.024   41.988    0.000
#>     att2            1.006      0.021   46.949    0.000
#>     att3            1.016      0.020   51.437    0.000
#>     att4            0.999      0.018   55.635    0.000
#>     att5            0.992      0.022   45.654    0.000
#>    .int1            1.013      0.022   46.946    0.000
#>    .int2            1.012      0.020   50.388    0.000
#>    .int3            1.005      0.018   54.788    0.000
#>     b1              1.001      0.021   47.027    0.000
#>     b2              1.019      0.020   51.092    0.000
#> 
#> Covariances:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   att2 ~~       
#>     att1            0.878                             
#>   att3 ~~       
#>     att1            0.788                             
#>     att2            0.692                             
#>   att4 ~~       
#>     att1            0.693                             
#>     att2            0.609                             
#>     att3            0.547                             
#>   att5 ~~       
#>     att1            0.885                             
#>     att2            0.778                             
#>     att3            0.698                             
#>     att4            0.616                             
#>   b2 ~~         
#>     b1              0.605                             
#>   SN ~~         
#>     ATT             2.433      0.438    5.559    0.000
#>   PBC ~~        
#>     SN              0.678      0.029   23.330    0.000
#>     ATT             2.620      0.470    5.574    0.000
#> 
#> Variances:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>    .pbc1            0.144      0.008   18.388    0.000
#>    .pbc2            0.160      0.007   21.435    0.000
#>    .pbc3            0.155      0.006   23.883    0.000
#>    .sn1             0.178      0.015   12.075    0.000
#>    .sn2             0.157      0.012   13.269    0.000
#>     att1            1.166                             
#>     att2            0.920                             
#>     att3            0.781                             
#>     att4            0.645                             
#>     att5            0.944                             
#>    .int1            0.157      0.009   18.099    0.000
#>    .int2            0.160      0.008   20.409    0.000
#>    .int3            0.168      0.007   23.552    0.000
#>     b1              0.815                             
#>     b2              0.716                             
#>     SN              0.988      0.039   25.404    0.000
#>     PBC             0.962      0.035   27.233    0.000
#>     ATT            15.539      5.442    2.855    0.004
#>    .INT             0.493      0.020   24.710    0.000
#>    .BEH             2.766      0.735    3.764    0.000