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.017 54.749 0.000
#> att2 0.882 0.019 46.731 0.000
#> att3 0.908 0.019 46.965 0.000
#> att4 0.862 0.022 39.838 0.000
#> att5 0.931 0.018 52.384 0.000
#> SN =~
#> sn1 0.897 0.014 65.464 0.000
#> sn2 0.941 0.015 63.502 0.000
#> PBC =~
#> pbc1 0.929 0.014 67.754 0.000
#> pbc2 0.930 0.015 60.303 0.000
#> pbc3 0.884 0.016 55.031 0.000
#> INT =~
#> int1 0.903 0.014 65.951 0.000
#> int2 0.906 0.014 65.438 0.000
#> int3 0.868 0.015 57.872 0.000
#> BEH =~
#> b1 0.884 0.019 46.127 0.000
#> b2 0.879 0.018 48.568 0.000
#>
#> Regressions:
#> Estimate Std.Error z.value P(>|z|)
#> INT ~
#> ATT 0.239 0.029 8.258 0.000
#> SN 0.209 0.033 6.274 0.000
#> PBC 0.239 0.035 6.814 0.000
#> BEH ~
#> PBC 0.286 0.028 10.080 0.000
#> INT 0.219 0.029 7.462 0.000
#>
#> Covariances:
#> Estimate Std.Error z.value P(>|z|)
#> ATT ~~
#> SN 0.623 0.015 41.680 0.000
#> PBC 0.690 0.013 53.961 0.000
#> SN ~~
#> PBC 0.690 0.014 48.857 0.000
#>
#> Variances:
#> Estimate Std.Error z.value P(>|z|)
#> ATT 1.000
#> SN 1.000
#> PBC 1.000
#> .INT 0.632 0.020 32.282 0.000
#> .BEH 0.802 0.018 44.949 0.000
#> .att1 0.138 0.031 4.397 0.000
#> .att2 0.223 0.033 6.709 0.000
#> .att3 0.175 0.035 4.998 0.000
#> .att4 0.257 0.037 6.898 0.000
#> .att5 0.133 0.033 4.012 0.000
#> .sn1 0.195 0.025 7.935 0.000
#> .sn2 0.114 0.028 4.081 0.000
#> .pbc1 0.137 0.025 5.389 0.000
#> .pbc2 0.135 0.029 4.696 0.000
#> .pbc3 0.219 0.028 7.737 0.000
#> .int1 0.185 0.025 7.463 0.000
#> .int2 0.179 0.025 7.151 0.000
#> .int3 0.246 0.026 9.448 0.000
#> .b1 0.219 0.034 6.441 0.000
#> .b2 0.227 0.032 7.122 0.000