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 = 50,
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 58.828 0.000
#> att2 0.882 0.015 58.957 0.000
#> att3 0.908 0.016 55.107 0.000
#> att4 0.862 0.020 44.184 0.000
#> att5 0.931 0.016 57.199 0.000
#> SN =~
#> sn1 0.897 0.015 61.007 0.000
#> sn2 0.941 0.016 60.587 0.000
#> PBC =~
#> pbc1 0.929 0.014 67.567 0.000
#> pbc2 0.930 0.012 77.212 0.000
#> pbc3 0.884 0.016 54.809 0.000
#> INT =~
#> int1 0.903 0.014 62.917 0.000
#> int2 0.906 0.011 81.375 0.000
#> int3 0.868 0.014 60.087 0.000
#> BEH =~
#> b1 0.884 0.022 39.529 0.000
#> b2 0.879 0.021 41.887 0.000
#>
#> Regressions:
#> Estimate Std.Error z.value P(>|z|)
#> INT ~
#> ATT 0.239 0.031 7.631 0.000
#> SN 0.209 0.030 7.047 0.000
#> PBC 0.239 0.034 6.991 0.000
#> BEH ~
#> PBC 0.286 0.031 9.338 0.000
#> INT 0.219 0.027 8.178 0.000
#>
#> Covariances:
#> Estimate Std.Error z.value P(>|z|)
#> ATT ~~
#> SN 0.623 0.016 38.842 0.000
#> PBC 0.690 0.012 59.776 0.000
#> SN ~~
#> PBC 0.690 0.016 42.576 0.000
#>
#> Variances:
#> Estimate Std.Error z.value P(>|z|)
#> ATT 1.000
#> SN 1.000
#> PBC 1.000
#> .INT 0.632 0.017 37.901 0.000
#> .BEH 0.802 0.019 42.198 0.000
#> .att1 0.138 0.029 4.727 0.000
#> .att2 0.223 0.026 8.483 0.000
#> .att3 0.175 0.030 5.834 0.000
#> .att4 0.257 0.034 7.630 0.000
#> .att5 0.133 0.030 4.395 0.000
#> .sn1 0.195 0.026 7.398 0.000
#> .sn2 0.114 0.029 3.896 0.000
#> .pbc1 0.137 0.026 5.368 0.000
#> .pbc2 0.135 0.022 6.002 0.000
#> .pbc3 0.219 0.028 7.719 0.000
#> .int1 0.185 0.026 7.108 0.000
#> .int2 0.179 0.020 8.879 0.000
#> .int3 0.246 0.025 9.793 0.000
#> .b1 0.219 0.039 5.543 0.000
#> .b2 0.227 0.037 6.112 0.000