The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Interaction Models with plssem

This vignette shows how to estimate interaction models, with both continuous and ordered (categorical) data.

Model Syntax

m <- '
  X =~ x1 + x2 + x3
  Z =~ z1 + z2 + z3
  Y =~ y1 + y2 + y3

  Y ~ X + Z + X:Z
'

Continuous Indicators

fit_cont <- pls(
  m,
  data      = modsem::oneInt,
  bootstrap = TRUE,
  sample    = 50
)
summary(fit_cont)
#> plssem (0.1.0) ended normally after 3 iterations
#> 
#>   Estimator                                       PLSc
#>   Link                                          LINEAR
#>                                                       
#>   Number of observations                          2000
#>   Number of iterations                               3
#>   Number of latent variables                         3
#>   Number of observed variables                       9
#> 
#> R-squared (indicators):
#>   x1                                             0.863
#>   x2                                             0.819
#>   x3                                             0.809
#>   z1                                             0.830
#>   z2                                             0.827
#>   z3                                             0.843
#>   y1                                             0.934
#>   y2                                             0.919
#>   y3                                             0.923
#> 
#> R-squared (latents):
#>   Y                                              0.604
#> 
#> Latent Variables:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   X =~          
#>     x1              0.929      0.015   62.948    0.000
#>     x2              0.905      0.013   70.005    0.000
#>     x3              0.899      0.014   65.703    0.000
#>   Z =~          
#>     z1              0.911      0.013   71.112    0.000
#>     z2              0.909      0.015   62.539    0.000
#>     z3              0.918      0.015   61.573    0.000
#>   Y =~          
#>     y1              0.966      0.006  161.293    0.000
#>     y2              0.959      0.007  133.159    0.000
#>     y3              0.961      0.007  130.698    0.000
#> 
#> Regressions:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   Y ~           
#>     X               0.423      0.018   23.205    0.000
#>     Z               0.361      0.017   20.967    0.000
#>     X:Z             0.452      0.017   26.519    0.000
#> 
#> Covariances:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   X ~~          
#>     Z               0.201      0.022    9.225    0.000
#>     X:Z             0.018      0.031    0.590    0.555
#>   Z ~~          
#>     X:Z             0.060      0.039    1.561    0.119
#> 
#> Variances:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>     X               1.000                             
#>     Z               1.000                             
#>    .Y               0.396      0.017   22.929    0.000
#>     X:Z             1.013      0.046   22.024    0.000
#>    .x1              0.137      0.027    5.009    0.000
#>    .x2              0.181      0.023    7.710    0.000
#>    .x3              0.191      0.025    7.778    0.000
#>    .z1              0.170      0.023    7.322    0.000
#>    .z2              0.173      0.026    6.547    0.000
#>    .z3              0.157      0.027    5.723    0.000
#>    .y1              0.066      0.012    5.716    0.000
#>    .y2              0.081      0.014    5.881    0.000
#>    .y3              0.077      0.014    5.479    0.000

Ordered Indicators

fit_ord <- pls(
  m,
  data      = oneIntOrdered,
  bootstrap = TRUE,
  sample    = 50,
  ordered   = colnames(oneIntOrdered) # explicitly specify variables as ordered
)
summary(fit_ord)
#> plssem (0.1.0) ended normally after 44 iterations
#> 
#>   Estimator                                  MCOrdPLSc
#>   Link                                          PROBIT
#>                                                       
#>   Number of observations                          2000
#>   Number of iterations                              44
#>   Number of latent variables                         3
#>   Number of observed variables                       9
#> 
#> R-squared (indicators):
#>   x1                                             0.930
#>   x2                                             0.899
#>   x3                                             0.906
#>   z1                                             0.935
#>   z2                                             0.901
#>   z3                                             0.912
#>   y1                                             0.972
#>   y2                                             0.951
#>   y3                                             0.962
#> 
#> R-squared (latents):
#>   Y                                              0.558
#> 
#> Latent Variables:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   X =~          
#>     x1              0.930      0.008  120.685    0.000
#>     x2              0.899      0.009  105.738    0.000
#>     x3              0.906      0.008  106.666    0.000
#>   Z =~          
#>     z1              0.935      0.007  137.890    0.000
#>     z2              0.901      0.009  102.039    0.000
#>     z3              0.912      0.009  105.202    0.000
#>   Y =~          
#>     y1              0.972      0.004  268.018    0.000
#>     y2              0.951      0.005  178.269    0.000
#>     y3              0.962      0.005  206.572    0.000
#> 
#> Regressions:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   Y ~           
#>     X               0.417      0.024   17.534    0.000
#>     Z               0.357      0.023   15.846    0.000
#>     X:Z             0.445      0.021   21.072    0.000
#> 
#> Covariances:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>   X ~~          
#>     Z               0.192      0.024    8.146    0.000
#>     X:Z            -0.011      0.010   -1.053    0.292
#>   Z ~~          
#>     X:Z             0.015      0.009    1.743    0.081
#> 
#> Variances:
#>                  Estimate  Std.Error  z.value  P(>|z|)
#>     X               1.000                             
#>     Z               1.000                             
#>    .Y               0.442      0.030   14.960    0.000
#>     X:Z             1.028      0.018   55.700    0.000
#>    .x1              0.070      0.008    9.065    0.000
#>    .x2              0.101      0.009   11.866    0.000
#>    .x3              0.094      0.008   11.127    0.000
#>    .z1              0.065      0.007    9.548    0.000
#>    .z2              0.099      0.009   11.208    0.000
#>    .z3              0.088      0.009   10.173    0.000
#>    .y1              0.028      0.004    7.792    0.000
#>    .y2              0.049      0.005    9.089    0.000
#>    .y3              0.038      0.005    8.073    0.000

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.