lavaan Tutorial for Confirmatory Composite Analysis

Get the data here.
Install the lavaan package:
install.packages("lavaan")
Load the lavaan package:
library(lavaan)
## This is lavaan 0.6-20.2262
## lavaan is FREE software! Please report any bugs.
Import the dataset. For that reason, please select the IT_Flex.xlsx file.
ITFlex <- as.data.frame(readxl::read_excel(choose.files()))
Specify the model using the the Henseler-Ogasawara specification (Schuberth, in press):
model_ITFlex = '
# Specification of the relationships between the observed variables ITCOMP1 - ITCOMP4
# and the emergent variable ITCOMP in terms of composite loadings.
ITCOMP =~ NA*ITCOMP1 + l11*ITCOMP1+ l21*ITCOMP2 + 1*ITCOMP3 + l41*ITCOMP4
ITCOMP~~vITCOMP*ITCOMP
# Specification of the relationships between the observed variables ITCOMP1 - ITCOMP4
# and their excrescent variables in terms of composite loadings.
nu11 =~ 1*ITCOMP1 + l22*ITCOMP2 + l32*ITCOMP3 + l42*ITCOMP4
nu12 =~ 0*ITCOMP1 + 1*ITCOMP2 + l33*ITCOMP3 + l43*ITCOMP4
nu13 =~ 0*ITCOMP1 + 0*ITCOMP2 + l34*ITCOMP3 + 1*ITCOMP4
nu11~~vnu11*nu11
nu12~~vnu12*nu12
nu13~~vnu13*nu13
# Specification of the relationships between the observed variables ITCONN1 - ITCONN4
# and the emergent variable ITCONN in terms of composite loadings.
ITCONN =~ NA*ITCONN1 + 1*ITCONN2 + ITCONN3 + ITCONN4
# Specification of the relationships between the observed variables ITCONN1 - ITCONN4
# and their excrescent variables in terms of composite loadings.
nu21 =~ 1*ITCONN1 + ITCONN2 + ITCONN3 + ITCONN4
nu22 =~ 0*ITCONN1 + ITCONN2 + 1*ITCONN3 + ITCONN4
nu23 =~ 0*ITCONN1 + 0*ITCONN2 + ITCONN3 + 1*ITCONN4
# Specification of the relationships between the observed variables MOD1 - MOD4
# and the emergent variable MOD in terms of composite loadings.
MOD =~ NA*MOD1 + MOD2 + 1*MOD3 + MOD4
# Specification of the relationships between the observed variables MOD1 - MOD4
# and their excrescent variables in terms of composite loadings.
nu31 =~ 1*MOD1 + MOD2 + MOD3 + MOD4
nu32 =~ 0*MOD1 + 1*MOD2 + MOD3 + MOD4
nu33 =~ 0*MOD1 + 0*MOD2 + MOD3 + 1*MOD4
# Specification of the relationships between the observed variables ITPSF1 - ITPSF4
# and the emergent variable ITPSF in terms of composite loadings.
ITPSF =~ NA*ITPSF1 + 1*ITPSF2 + ITPSF3 + ITPSF4
# Specification of the relationships between the observed variables ITPSF1 - ITPSF4
# and their excrescent variables in terms of composite loadings.
nu41 =~ 1*ITPSF1 + ITPSF2 + ITPSF3 + ITPSF4
nu42 =~ 0*ITPSF1 + ITPSF2 + 1*ITPSF3 + ITPSF4
nu43 =~ 0*ITPSF1 + 0*ITPSF2 + ITPSF3 + 1*ITPSF4
# Speciifcation of the covariances among the emergent variables
ITCOMP ~~ ITCONN + MOD + ITPSF
ITCONN ~~ MOD + ITPSF
MOD ~~ ITPSF
# The H-O specification assumes that the excrescent variables are uncorrelated.
# Therefore, the covariance between the excrescent variables is fixed to 0:
nu11 ~~ 0*nu12 + 0*nu13 + 0*nu21 + 0*nu22 + 0*nu23 + 0*nu31 + 0*nu32 + 0*nu33
nu11 ~~ 0*nu41 + 0*nu42 + 0*nu43
nu12 ~~ 0*nu13 + 0*nu21 + 0*nu22 + 0*nu23 + 0*nu31 + 0*nu32 + 0*nu33
nu12 ~~ 0*nu41 + 0*nu42 + 0*nu43
nu13 ~~ 0*nu21 + 0*nu22 + 0*nu23 + 0*nu31 + 0*nu32 + 0*nu33
nu13 ~~ 0*nu41 + 0*nu42 + 0*nu43
nu21 ~~ 0*nu22 + 0*nu23 + 0*nu31 + 0*nu32 + 0*nu33
nu21 ~~ 0*nu41 + 0*nu42 + 0*nu43
nu22 ~~ 0*nu23 + 0*nu31 + 0*nu32 + 0*nu33
nu22 ~~ 0*nu41 + 0*nu42 + 0*nu43
nu23 ~~ 0*nu31 + 0*nu32 + 0*nu33 + 0*nu41 + 0*nu42 + 0*nu43
nu31 ~~ 0*nu32 + 0*nu33 + 0*nu41 + 0*nu42 + 0*nu43
nu32 ~~ 0*nu33 + 0*nu41 + 0*nu42 + 0*nu43
nu33 ~~ 0*nu41 + 0*nu42 + 0*nu43
nu41 ~~ 0*nu42 + 0*nu43
nu42 ~~ 0*nu43
# Moreover, the H-O specification assumes that the excrescent variables are uncorrelated
# with the emergent and latent variables. Therefore, the covariances between
# the emergent and the excrescent varibales are fixed to 0:
ITCOMP ~~ 0*nu11 + 0*nu12 + 0*nu13 + 0*nu21 + 0*nu22 + 0*nu23
ITCOMP ~~ 0*nu31 + 0*nu32 + 0*nu33 + 0*nu41 + 0*nu42 + 0*nu43
ITCONN =~ 0*nu11 + 0*nu12 + 0*nu13 + 0*nu21 + 0*nu22 + 0*nu23
ITCONN =~ 0*nu31 + 0*nu32 + 0*nu33 + 0*nu41 + 0*nu42 + 0*nu43
MOD ~~ 0*nu11 + 0*nu12 + 0*nu13 + 0*nu21 + 0*nu22 + 0*nu23
MOD ~~ 0*nu31 + 0*nu32 + 0*nu33 + 0*nu41 + 0*nu42 + 0*nu43
ITPSF ~~ 0*nu11 + 0*nu12 + 0*nu13 + 0*nu21 + 0*nu22 + 0*nu23
ITPSF ~~ 0*nu31 + 0*nu32 + 0*nu33 + 0*nu41 + 0*nu42 + 0*nu43
# In lavaan, the =~ command is originally used to specify a common factor model,
# which assumes that each observed variable is affected by a random measurement error.
# It is assumed that the observed variables forming composites are free from
# random measurement error. Therefore, the variances of the random measurement errors
# originally attached to the observed variables by the common factor model are fixed to 0:
ITCOMP1~~0*ITCOMP1
ITCOMP2~~0*ITCOMP2
ITCOMP3~~0*ITCOMP3
ITCOMP4~~0*ITCOMP4
ITCONN1~~0*ITCONN1
ITCONN2~~0*ITCONN2
ITCONN3~~0*ITCONN3
ITCONN4~~0*ITCONN4
MOD1~~0*MOD1
MOD2~~0*MOD2
MOD3~~0*MOD3
MOD4~~0*MOD4
ITPSF1~~0*ITPSF1
ITPSF2~~0*ITPSF2
ITPSF3~~0*ITPSF3
ITPSF4~~0*ITPSF4
# Specify weights:
w1:= (-l32 + l22*l33 + l34*l42 - l22*l34*l43)/(1 - l11*l32 - l21*l33 + l11*l22*l33 - l34*l41 + l11*l34*l42 +
l21* l34* l43 - l11* l22* l34* l43)
w2:= (-l33 + l34*l43)/(1 - l11*l32 - l21*l33 +
l11*l22*l33 - l34*l41 + l11*l34*l42 + l21*l34*l43 - l11*l22*l34*l43)
w3:= 1/(1 - l11*l32 - l21*l33 + l11*l22*l33 -
l34*l41 + l11*l34*l42 + l21*l34*l43 - l11*l22*l34*l43)
w4:= -l34/(1 - l11*l32 - l21*l33 + l11*l22*l33 -
l34*l41 + l11*l34*l42 + l21*l34*l43 - l11*l22*l34*l43)
vITCOMP1 := l11^2*vITCOMP + vnu11
vITCOMP2 := l21^2*vITCOMP + l22^2*vnu11 + vnu12
vITCOMP3 := vITCOMP + l32^2*vnu11 + l33^2 * vnu12 + l34^2*vnu13
vITCOMP4 := l41^2*vITCOMP + l42^2*vnu11 + l43^2*vnu12 + vnu13
w1std := w1*(vITCOMP1/vITCOMP)^(1/2)
w2std := w2*(vITCOMP2/vITCOMP)^(1/2)
w3std := w3*(vITCOMP3/vITCOMP)^(1/2)
w4std := w4*(vITCOMP4/vITCOMP)^(1/2)
'
Estimate the model maximum-likelihood:
out <- sem(data = ITFlex, model = model_ITFlex)
Return model summary:
summary(out,standardize = T)
## lavaan 0.6-20.2262 ended normally after 179 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 58
##
## Number of observations 100
##
## Model Test User Model:
##
## Test statistic 130.326
## Degrees of freedom 78
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## ITCOMP =~
## ITCOMP1 (l11) 0.677 0.160 4.229 0.000 0.721 0.594
## ITCOMP2 (l21) 0.746 0.132 5.657 0.000 0.794 0.668
## ITCOMP3 1.000 1.065 0.949
## ITCOMP4 (l41) 0.648 0.123 5.257 0.000 0.690 0.674
## nu11 =~
## ITCOMP1 1.000 0.977 0.805
## ITCOMP2 (l22) 0.091 0.138 0.654 0.513 0.088 0.074
## ITCOMP3 (l32) -0.287 0.140 -2.053 0.040 -0.280 -0.250
## ITCOMP4 (l42) -0.044 0.125 -0.350 0.726 -0.043 -0.042
## nu12 =~
## ITCOMP1 0.000 0.000 0.000
## ITCOMP2 1.000 0.881 0.741
## ITCOMP3 (l33) -0.041 0.158 -0.256 0.798 -0.036 -0.032
## ITCOMP4 (l43) 0.060 0.139 0.432 0.666 0.053 0.052
## nu13 =~
## ITCOMP1 0.000 0.000 0.000
## ITCOMP2 0.000 0.000 0.000
## ITCOMP3 (l34) -0.282 0.208 -1.354 0.176 -0.212 -0.189
## ITCOMP4 1.000 0.753 0.736
## ITCONN =~
## ITCONN1 0.607 0.167 3.643 0.000 0.464 0.471
## ITCONN2 1.000 0.765 0.724
## ITCONN3 1.700 0.307 5.531 0.000 1.300 0.921
## ITCONN4 0.909 0.205 4.436 0.000 0.695 0.660
## nu21 =~
## ITCONN1 1.000 0.871 0.882
## ITCONN2 0.153 0.123 1.251 0.211 0.134 0.126
## ITCONN3 -0.280 0.176 -1.588 0.112 -0.244 -0.173
## ITCONN4 -0.315 0.137 -2.304 0.021 -0.274 -0.260
## nu22 =~
## ITCONN1 0.000 0.000 0.000
## ITCONN2 -2.144 1.168 -1.835 0.066 -0.717 -0.678
## ITCONN3 1.000 0.334 0.237
## ITCONN4 0.222 0.375 0.592 0.554 0.074 0.070
## nu23 =~
## ITCONN1 0.000 0.000 0.000
## ITCONN2 0.000 0.000 0.000
## ITCONN3 -0.488 0.298 -1.639 0.101 -0.360 -0.255
## ITCONN4 1.000 0.738 0.701
## MOD =~
## MOD1 0.885 0.198 4.469 0.000 0.665 0.620
## MOD2 1.183 0.184 6.417 0.000 0.888 0.784
## MOD3 1.000 0.751 0.751
## MOD4 0.960 0.193 4.964 0.000 0.721 0.754
## nu31 =~
## MOD1 1.000 0.841 0.785
## MOD2 -0.036 0.146 -0.246 0.806 -0.030 -0.027
## MOD3 -0.094 0.134 -0.701 0.483 -0.079 -0.079
## MOD4 -0.251 0.133 -1.892 0.059 -0.212 -0.221
## nu32 =~
## MOD1 0.000 0.000 0.000
## MOD2 1.000 0.702 0.620
## MOD3 0.075 0.178 0.422 0.673 0.053 0.053
## MOD4 -0.773 0.221 -3.497 0.000 -0.543 -0.568
## nu33 =~
## MOD1 0.000 0.000 0.000
## MOD2 0.000 0.000 0.000
## MOD3 -2.799 2.107 -1.328 0.184 -0.654 -0.654
## MOD4 1.000 0.234 0.244
## ITPSF =~
## ITPSF1 1.529 0.361 4.239 0.000 0.816 0.829
## ITPSF2 1.000 0.533 0.576
## ITPSF3 1.326 0.398 3.335 0.001 0.707 0.779
## ITPSF4 1.160 0.331 3.510 0.000 0.619 0.670
## nu41 =~
## ITPSF1 1.000 0.551 0.560
## ITPSF2 0.236 0.297 0.792 0.428 0.130 0.140
## ITPSF3 -0.902 0.347 -2.597 0.009 -0.497 -0.548
## ITPSF4 -0.546 0.340 -1.605 0.108 -0.301 -0.326
## nu42 =~
## ITPSF1 0.000 0.000 0.000
## ITPSF2 -6.439 10.633 -0.606 0.545 -0.746 -0.805
## ITPSF3 1.000 0.116 0.128
## ITPSF4 -0.674 2.265 -0.297 0.766 -0.078 -0.085
## nu43 =~
## ITPSF1 0.000 0.000 0.000
## ITPSF2 0.000 0.000 0.000
## ITPSF3 -0.410 0.397 -1.033 0.302 -0.250 -0.276
## ITPSF4 1.000 0.611 0.662
## ITCONN =~
## nu11 0.000 0.000 0.000
## nu12 0.000 0.000 0.000
## nu13 0.000 0.000 0.000
## nu21 0.000 0.000 0.000
## nu22 0.000 0.000 0.000
## nu23 0.000 0.000 0.000
## nu31 0.000 0.000 0.000
## nu32 0.000 0.000 0.000
## nu33 0.000 0.000 0.000
## nu41 0.000 0.000 0.000
## nu42 0.000 0.000 0.000
## nu43 0.000 0.000 0.000
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## ITCOMP ~~
## ITCONN 0.517 0.122 4.252 0.000 0.635 0.635
## MOD 0.472 0.111 4.240 0.000 0.591 0.591
## ITPSF 0.221 0.080 2.768 0.006 0.390 0.390
## ITCONN ~~
## MOD 0.340 0.091 3.742 0.000 0.592 0.592
## ITPSF 0.202 0.070 2.872 0.004 0.496 0.496
## MOD ~~
## ITPSF 0.238 0.077 3.080 0.002 0.593 0.593
## .nu11 ~~
## .nu12 0.000 0.000 0.000
## .nu13 0.000 0.000 0.000
## .nu21 0.000 0.000 0.000
## .nu22 0.000 0.000 0.000
## .nu23 0.000 0.000 0.000
## .nu31 0.000 0.000 0.000
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu12 ~~
## .nu13 0.000 0.000 0.000
## .nu21 0.000 0.000 0.000
## .nu22 0.000 0.000 0.000
## .nu23 0.000 0.000 0.000
## .nu31 0.000 0.000 0.000
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu13 ~~
## .nu21 0.000 0.000 0.000
## .nu22 0.000 0.000 0.000
## .nu23 0.000 0.000 0.000
## .nu31 0.000 0.000 0.000
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu21 ~~
## .nu22 0.000 0.000 0.000
## .nu23 0.000 0.000 0.000
## .nu31 0.000 0.000 0.000
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu22 ~~
## .nu23 0.000 0.000 0.000
## .nu31 0.000 0.000 0.000
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu23 ~~
## .nu31 0.000 0.000 0.000
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu31 ~~
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu32 ~~
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu33 ~~
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu41 ~~
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu42 ~~
## .nu43 0.000 0.000 0.000
## ITCOMP ~~
## .nu11 0.000 0.000 0.000
## .nu12 0.000 0.000 0.000
## .nu13 0.000 0.000 0.000
## .nu21 0.000 0.000 0.000
## .nu22 0.000 0.000 0.000
## .nu23 0.000 0.000 0.000
## .nu31 0.000 0.000 0.000
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu11 ~~
## MOD 0.000 0.000 0.000
## .nu12 ~~
## MOD 0.000 0.000 0.000
## .nu13 ~~
## MOD 0.000 0.000 0.000
## .nu21 ~~
## MOD 0.000 0.000 0.000
## .nu22 ~~
## MOD 0.000 0.000 0.000
## .nu23 ~~
## MOD 0.000 0.000 0.000
## MOD ~~
## .nu31 0.000 0.000 0.000
## .nu32 0.000 0.000 0.000
## .nu33 0.000 0.000 0.000
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
## .nu11 ~~
## ITPSF 0.000 0.000 0.000
## .nu12 ~~
## ITPSF 0.000 0.000 0.000
## .nu13 ~~
## ITPSF 0.000 0.000 0.000
## .nu21 ~~
## ITPSF 0.000 0.000 0.000
## .nu22 ~~
## ITPSF 0.000 0.000 0.000
## .nu23 ~~
## ITPSF 0.000 0.000 0.000
## .nu31 ~~
## ITPSF 0.000 0.000 0.000
## .nu32 ~~
## ITPSF 0.000 0.000 0.000
## .nu33 ~~
## ITPSF 0.000 0.000 0.000
## ITPSF ~~
## .nu41 0.000 0.000 0.000
## .nu42 0.000 0.000 0.000
## .nu43 0.000 0.000 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## ITCOMP (vITC) 1.133 0.194 5.847 0.000 1.000 1.000
## .nu11 (vn11) 0.954 0.200 4.764 0.000 1.000 1.000
## .nu12 (vn12) 0.776 0.174 4.461 0.000 1.000 1.000
## .nu13 (vn13) 0.567 0.134 4.236 0.000 1.000 1.000
## .ITCOMP1 0.000 0.000 0.000
## .ITCOMP2 0.000 0.000 0.000
## .ITCOMP3 0.000 0.000 0.000
## .ITCOMP4 0.000 0.000 0.000
## .ITCONN1 0.000 0.000 0.000
## .ITCONN2 0.000 0.000 0.000
## .ITCONN3 0.000 0.000 0.000
## .ITCONN4 0.000 0.000 0.000
## .MOD1 0.000 0.000 0.000
## .MOD2 0.000 0.000 0.000
## .MOD3 0.000 0.000 0.000
## .MOD4 0.000 0.000 0.000
## .ITPSF1 0.000 0.000 0.000
## .ITPSF2 0.000 0.000 0.000
## .ITPSF3 0.000 0.000 0.000
## .ITPSF4 0.000 0.000 0.000
## ITCONN 0.585 0.178 3.284 0.001 1.000 1.000
## .nu21 0.758 0.134 5.647 0.000 1.000 1.000
## .nu22 0.112 0.102 1.091 0.275 1.000 1.000
## .nu23 0.545 0.155 3.512 0.000 1.000 1.000
## MOD 0.564 0.158 3.565 0.000 1.000 1.000
## .nu31 0.708 0.146 4.860 0.000 1.000 1.000
## .nu32 0.493 0.140 3.526 0.000 1.000 1.000
## .nu33 0.055 0.071 0.770 0.441 1.000 1.000
## ITPSF 0.285 0.136 2.088 0.037 1.000 1.000
## .nu41 0.304 0.121 2.501 0.012 1.000 1.000
## .nu42 0.013 0.043 0.313 0.754 1.000 1.000
## .nu43 0.373 0.167 2.230 0.026 1.000 1.000
##
## Defined Parameters:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## w1 0.212 0.099 2.140 0.032 0.209 0.198
## w2 0.017 0.126 0.134 0.893 0.018 0.017
## w3 0.714 0.131 5.449 0.000 0.729 0.773
## w4 0.201 0.129 1.564 0.118 0.155 0.146
## vITCOMP1 1.474 0.208 7.071 0.000 1.520 1.353
## vITCOMP2 1.414 0.200 7.071 0.000 1.638 1.452
## vITCOMP3 1.258 0.178 7.071 0.000 1.125 1.099
## vITCOMP4 1.047 0.148 7.071 0.000 1.480 1.459
## w1std 0.241 0.119 2.022 0.043 0.258 0.230
## w2std 0.019 0.141 0.134 0.893 0.023 0.021
## w3std 0.752 0.115 6.524 0.000 0.773 0.810
## w4std 0.193 0.127 1.518 0.129 0.188 0.177