Ordered indicators are common in survey-based SEM applications. This vignette reuses the Theory of Planned Behavior example but illustrates how to run the model when the manifest variables are ordinal.
tpb <- '
# Outer Model (Based on Hagger et al., 2007)
ATT =~ att1 + att2 + att3 + att4 + att5
SN =~ sn1 + sn2
PBC =~ pbc1 + pbc2 + pbc3
INT =~ int1 + int2 + int3
BEH =~ b1 + b2
# Inner Model (Based on Steinmetz et al., 2011)
INT ~ ATT + SN + PBC
BEH ~ INT + PBC
'
fit_cat <- pls(
tpb,
data = TPB_Ordered,
bootstrap = TRUE,
sample = 500,
ordered = colnames(TPB_Ordered) # explicitly specify ordered variables
)
summary(fit_cat)
#> plssem (0.1.0) ended normally after 4 iterations
#>
#> Estimator OrdPLSc
#> Link PROBIT
#>
#> Number of observations 2000
#> Number of iterations 4
#> Number of latent variables 5
#> Number of observed variables 15
#>
#> R-squared (indicators):
#> att1 0.862
#> att2 0.777
#> att3 0.825
#> att4 0.743
#> att5 0.867
#> sn1 0.805
#> sn2 0.886
#> pbc1 0.863
#> pbc2 0.865
#> pbc3 0.781
#> int1 0.815
#> int2 0.821
#> int3 0.754
#> b1 0.781
#> b2 0.773
#>
#> R-squared (latents):
#> INT 0.368
#> BEH 0.198
#>
#> Latent Variables:
#> Estimate Std.Error z.value P(>|z|)
#> ATT =~
#> att1 0.928 0.016 59.170 0.000
#> att2 0.882 0.019 45.249 0.000
#> att3 0.908 0.019 48.312 0.000
#> att4 0.862 0.021 40.439 0.000
#> att5 0.931 0.019 49.674 0.000
#> SN =~
#> sn1 0.897 0.014 64.331 0.000
#> sn2 0.941 0.015 64.385 0.000
#> PBC =~
#> pbc1 0.929 0.013 70.570 0.000
#> pbc2 0.930 0.015 60.875 0.000
#> pbc3 0.884 0.015 57.922 0.000
#> INT =~
#> int1 0.903 0.013 67.886 0.000
#> int2 0.906 0.014 66.357 0.000
#> int3 0.868 0.015 56.973 0.000
#> BEH =~
#> b1 0.884 0.020 43.990 0.000
#> b2 0.879 0.020 44.318 0.000
#>
#> Regressions:
#> Estimate Std.Error z.value P(>|z|)
#> INT ~
#> ATT 0.239 0.030 8.069 0.000
#> SN 0.209 0.031 6.693 0.000
#> PBC 0.239 0.035 6.841 0.000
#> BEH ~
#> PBC 0.286 0.029 9.788 0.000
#> INT 0.219 0.030 7.306 0.000
#>
#> Covariances:
#> Estimate Std.Error z.value P(>|z|)
#> ATT ~~
#> SN 0.623 0.016 39.136 0.000
#> PBC 0.690 0.013 51.792 0.000
#> SN ~~
#> PBC 0.690 0.015 47.198 0.000
#>
#> Thresholds:
#> Estimate Std.Error z.value P(>|z|)
#> att1|t1 -2.968 0.335 -8.849 0.000
#> att1|t2 -1.572 0.247 -6.354 0.000
#> att1|t3 -0.408 0.142 -2.875 0.004
#> att1|t4 0.255 0.203 1.256 0.209
#> att1|t5 1.213 0.266 4.563 0.000
#> att1|t6 2.457 0.927 2.652 0.008
#> att2|t1 -1.911 0.245 -7.810 0.000
#> att2|t2 -0.769 0.151 -5.101 0.000
#> att2|t3 -0.069 0.289 -0.239 0.811
#> att2|t4 1.290 0.193 6.684 0.000
#> att2|t5 2.170 0.426 5.097 0.000
#> att2|t6 2.968 1.504 1.973 0.048
#> att3|t1 -2.652 0.376 -7.056 0.000
#> att3|t2 -1.454 0.312 -4.655 0.000
#> att3|t3 -0.400 0.258 -1.550 0.121
#> att3|t4 0.457 0.309 1.480 0.139
#> att3|t5 1.256 0.583 2.154 0.031
#> att3|t6 2.878 1.633 1.763 0.078
#> att4|t1 -2.878 0.408 -7.047 0.000
#> att4|t2 -1.859 0.353 -5.265 0.000
#> att4|t3 -0.933 0.370 -2.523 0.012
#> att4|t4 -0.018 0.443 -0.040 0.968
#> att4|t5 1.221 0.563 2.169 0.030
#> att4|t6 2.144 1.475 1.453 0.146
#> att5|t1 -2.807 0.466 -6.027 0.000
#> att5|t2 -1.793 0.507 -3.539 0.000
#> att5|t3 -0.389 0.368 -1.057 0.291
#> att5|t4 0.567 0.345 1.643 0.100
#> att5|t5 1.385 0.530 2.611 0.009
#> att5|t6 2.484 1.261 1.970 0.049
#> sn1|t1 -1.706 0.383 -4.455 0.000
#> sn1|t2 -0.762 0.398 -1.916 0.055
#> sn1|t3 0.243 0.391 0.622 0.534
#> sn1|t4 1.305 0.368 3.543 0.000
#> sn1|t5 2.044 0.957 2.134 0.033
#> sn1|t6 3.090 2.454 1.259 0.208
#> sn2|t1 -3.090 0.554 -5.581 0.000
#> sn2|t2 -2.326 0.716 -3.251 0.001
#> sn2|t3 -1.115 0.661 -1.686 0.092
#> sn2|t4 0.024 0.601 0.040 0.968
#> sn2|t5 1.030 0.842 1.223 0.221
#> sn2|t6 2.024 1.751 1.156 0.248
#> pbc1|t1 -1.919 0.597 -3.214 0.001
#> pbc1|t2 -0.883 0.564 -1.568 0.117
#> pbc1|t3 -0.005 0.650 -0.008 0.994
#> pbc1|t4 1.065 1.014 1.051 0.293
#> pbc1|t5 2.170 2.113 1.027 0.304
#> pbc2|t1 -2.543 0.642 -3.963 0.000
#> pbc2|t2 -1.392 0.520 -2.678 0.007
#> pbc2|t3 -0.617 0.637 -0.970 0.332
#> pbc2|t4 0.454 0.607 0.748 0.455
#> pbc2|t5 1.491 0.898 1.661 0.097
#> pbc2|t6 2.432 1.881 1.293 0.196
#> pbc3|t1 -1.768 0.569 -3.106 0.002
#> pbc3|t2 -0.845 0.612 -1.381 0.167
#> pbc3|t3 0.145 0.607 0.238 0.812
#> pbc3|t4 1.282 0.585 2.191 0.028
#> pbc3|t5 1.896 1.157 1.639 0.101
#> pbc3|t6 2.968 2.405 1.234 0.217
#> int1|t1 -2.226 0.652 -3.416 0.001
#> int1|t2 -1.213 0.636 -1.908 0.056
#> int1|t3 -0.333 0.726 -0.459 0.646
#> int1|t4 0.851 0.678 1.254 0.210
#> int1|t5 1.818 1.104 1.647 0.099
#> int1|t6 2.697 2.264 1.191 0.234
#> int2|t1 -2.197 0.654 -3.358 0.001
#> int2|t2 -1.254 0.694 -1.807 0.071
#> int2|t3 -0.167 0.641 -0.261 0.794
#> int2|t4 0.908 0.614 1.478 0.139
#> int2|t5 1.670 1.099 1.519 0.129
#> int2|t6 2.512 2.274 1.105 0.269
#> int3|t1 -2.432 0.686 -3.545 0.000
#> int3|t2 -1.308 0.573 -2.282 0.023
#> int3|t3 -0.439 0.600 -0.731 0.465
#> int3|t4 0.441 0.684 0.645 0.519
#> int3|t5 1.375 1.096 1.255 0.210
#> int3|t6 2.512 2.248 1.118 0.264
#> b1|t1 -2.387 0.756 -3.159 0.002
#> b1|t2 -1.227 0.699 -1.756 0.079
#> b1|t3 0.004 0.503 0.007 0.994
#> b1|t4 0.678 0.663 1.022 0.307
#> b1|t5 1.630 1.078 1.513 0.130
#> b1|t6 2.512 2.205 1.139 0.255
#> b2|t1 -2.308 0.783 -2.949 0.003
#> b2|t2 -0.972 0.594 -1.637 0.102
#> b2|t3 -0.068 0.558 -0.121 0.903
#> b2|t4 0.779 0.536 1.453 0.146
#> b2|t5 1.977 0.510 3.876 0.000
#>
#> Variances:
#> Estimate Std.Error z.value P(>|z|)
#> ATT 1.000
#> SN 1.000
#> PBC 1.000
#> .INT 0.632 0.019 33.831 0.000
#> .BEH 0.802 0.019 42.659 0.000
#> .att1 0.138 0.029 4.748 0.000
#> .att2 0.223 0.034 6.494 0.000
#> .att3 0.175 0.034 5.138 0.000
#> .att4 0.257 0.037 6.977 0.000
#> .att5 0.133 0.035 3.805 0.000
#> .sn1 0.195 0.025 7.804 0.000
#> .sn2 0.114 0.028 4.143 0.000
#> .pbc1 0.137 0.024 5.606 0.000
#> .pbc2 0.135 0.028 4.739 0.000
#> .pbc3 0.219 0.027 8.138 0.000
#> .int1 0.185 0.024 7.687 0.000
#> .int2 0.179 0.025 7.236 0.000
#> .int3 0.246 0.026 9.297 0.000
#> .b1 0.219 0.035 6.171 0.000
#> .b2 0.227 0.035 6.469 0.000