Hi lavaan users,
I have a question regarding differences between a bifactor model and a second-order model estimated using the same covmat.
My covmat is specified to get a bifactor model with all loadings equal to 7.
When I estimated the bifactor on this covmat both my unstandardized and standardized values have a value of 7.
When I estimate a second-order model on the same covmat only the unstandardized values have the expected value of 7.
Why there is this difference with the second-order model ?
Thanks in advance for your helpful replies.
Hereunder is my syntax and the results.
library(lavaan)
lower <- '
1
0.98 1
0.98 0.98 1
0.49 0.49 0.49 1
0.49 0.49 0.49 0.98 1
0.49 0.49 0.49 0.98 0.98 1
0.49 0.49 0.49 0.49 0.49 0.49 1
0.49 0.49 0.49 0.49 0.49 0.49 0.98 1
0.49 0.49 0.49 0.49 0.49 0.49 0.98 0.98 1
0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 1
0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.98 1
0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.98 0.98 1
'
model.cov <-
getCov(lower, names = c("y1", "y2", "y3", "y4",
"y5", "y6","y7", "y8","y9","y10", "y11", "y12"))
model_bif <- '
g =~ NA*y1 + y2 + y3 + y4 + y5 + y6 + y7 + y8 + y9+ y10 + y11 + y12
S1 =~ NA*y1 + y2 + y3
S2 =~ NA*y4 + y5 + y6
S3 =~ NA*y7 + y8 + y9
S4 =~ NA*y10 + y11 + y12
S1 + S2 + S3 + S4 ~~ 0*g
S1 + S2 + S3 ~~ 0*S4
S1 + S2 ~~ 0*S3
S1 ~~ 0*S2
g ~~ 1*g
S1 ~~ 1*S1
S2 ~~ 1*S2
S3 ~~ 1*S3
S4 ~~ 1*S4'
model_sec <- '
S1 =~ NA*y1 + y2 + y3
S2 =~ NA*y4 + y5 + y6
S3 =~ NA*y7 + y8 + y9
S4 =~ NA*y10 + y11 + y12
g =~ NA*S1 + S2 + S3 + S4
S1 + S2 + S3 + S4 ~~ 0*g
S1 + S2 + S3 ~~ 0*S4
S1 + S2 ~~ 0*S3
S1 ~~ 0*S2
g ~~ 1*g
S1 ~~ 1*S1
S2 ~~ 1*S2
S3 ~~ 1*S3
S4 ~~ 1*S4'
fit_bifactor <- sem(model_bif,
sample.cov = model.cov,
sample.nobs = 2000)
summary(fit_bifactor, fit.measures =TRUE, standardized = TRUE)
fit_second_order <- sem(model_sec,
sample.cov = model.cov,
sample.nobs = 2000)
summary(fit_second_order, fit.measures =TRUE, standardized = TRUE)
lavaan 0.6-21 ended normally after 137 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 36
Number of observations 2000
Model Test User Model:
Test statistic 0.000
Degrees of freedom 42
P-value (Chi-square) 1.000
Model Test Baseline Model:
Test statistic 56204.876
Degrees of freedom 66
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 1.000
Tucker-Lewis Index (TLI) 1.001
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -5946.085
Loglikelihood unrestricted model (H1) -5946.085
Akaike (AIC) 11964.171
Bayesian (BIC) 12165.803
Sample-size adjusted Bayesian (SABIC) 12051.429
Root Mean Square Error of Approximation:
RMSEA 0.000
90 Percent confidence interval - lower 0.000
90 Percent confidence interval - upper 0.000
P-value H_0: RMSEA <= 0.050 1.000
P-value H_0: RMSEA >= 0.080 0.000
Standardized Root Mean Square Residual:
SRMR 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
g =~
y1 0.700 0.022 31.797 0.000 0.700 0.700
y2 0.700 0.022 31.797 0.000 0.700 0.700
y3 0.700 0.022 31.797 0.000 0.700 0.700
y4 0.700 0.022 31.797 0.000 0.700 0.700
y5 0.700 0.022 31.797 0.000 0.700 0.700
y6 0.700 0.022 31.797 0.000 0.700 0.700
y7 0.700 0.022 31.797 0.000 0.700 0.700
y8 0.700 0.022 31.797 0.000 0.700 0.700
y9 0.700 0.022 31.797 0.000 0.700 0.700
y10 0.700 0.022 31.797 0.000 0.700 0.700
y11 0.700 0.022 31.797 0.000 0.700 0.700
y12 0.700 0.022 31.797 0.000 0.700 0.700
S1 =~
y1 0.700 0.015 45.191 0.000 0.700 0.700
y2 0.700 0.015 45.191 0.000 0.700 0.700
y3 0.700 0.015 45.191 0.000 0.700 0.700
S2 =~
y4 0.700 0.015 45.191 0.000 0.700 0.700
y5 0.700 0.015 45.191 0.000 0.700 0.700
y6 0.700 0.015 45.191 0.000 0.700 0.700
S3 =~
y7 0.700 0.015 45.191 0.000 0.700 0.700
y8 0.700 0.015 45.191 0.000 0.700 0.700
y9 0.700 0.015 45.191 0.000 0.700 0.700
S4 =~
y10 0.700 0.015 45.191 0.000 0.700 0.700
y11 0.700 0.015 45.191 0.000 0.700 0.700
y12 0.700 0.015 45.191 0.000 0.700 0.700
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
g ~~
S1 0.000 0.000 0.000
S2 0.000 0.000 0.000
S3 0.000 0.000 0.000
S4 0.000 0.000 0.000
S1 ~~
S4 0.000 0.000 0.000
S2 ~~
S4 0.000 0.000 0.000
S3 ~~
S4 0.000 0.000 0.000
S1 ~~
S3 0.000 0.000 0.000
S2 ~~
S3 0.000 0.000 0.000
S1 ~~
S2 0.000 0.000 0.000
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
g 1.000 1.000 1.000
S1 1.000 1.000 1.000
S2 1.000 1.000 1.000
S3 1.000 1.000 1.000
S4 1.000 1.000 1.000
.y1 0.020 0.001 20.000 0.000 0.020 0.020
.y2 0.020 0.001 20.000 0.000 0.020 0.020
.y3 0.020 0.001 20.000 0.000 0.020 0.020
.y4 0.020 0.001 20.000 0.000 0.020 0.020
.y5 0.020 0.001 20.000 0.000 0.020 0.020
.y6 0.020 0.001 20.000 0.000 0.020 0.020
.y7 0.020 0.001 20.000 0.000 0.020 0.020
.y8 0.020 0.001 20.000 0.000 0.020 0.020
.y9 0.020 0.001 20.000 0.000 0.020 0.020
.y10 0.020 0.001 20.000 0.000 0.020 0.020
.y11 0.020 0.001 20.000 0.000 0.020 0.020
.y12 0.020 0.001 20.000 0.000 0.020 0.020
>
>
> fit_second_order <- sem(model_sec,
+ sample.cov = model.cov,
+ sample.nobs = 2000)
> summary(fit_second_order, fit.measures =TRUE, standardized = TRUE)
lavaan 0.6-21 ended normally after 133 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 28
Number of observations 2000
Model Test User Model:
Test statistic 0.000
Degrees of freedom 50
P-value (Chi-square) 1.000
Model Test Baseline Model:
Test statistic 56204.876
Degrees of freedom 66
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 1.000
Tucker-Lewis Index (TLI) 1.001
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -5946.085
Loglikelihood unrestricted model (H1) -5946.085
Akaike (AIC) 11948.171
Bayesian (BIC) 12104.996
Sample-size adjusted Bayesian (SABIC) 12016.038
Root Mean Square Error of Approximation:
RMSEA 0.000
90 Percent confidence interval - lower 0.000
90 Percent confidence interval - upper 0.000
P-value H_0: RMSEA <= 0.050 1.000
P-value H_0: RMSEA >= 0.080 0.000
Standardized Root Mean Square Residual:
SRMR 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
S1 =~
y1 0.700 0.015 45.746 0.000 0.990 0.990
y2 0.700 0.015 45.746 0.000 0.990 0.990
y3 0.700 0.015 45.746 0.000 0.990 0.990
S2 =~
y4 0.700 0.015 45.746 0.000 0.990 0.990
y5 0.700 0.015 45.746 0.000 0.990 0.990
y6 0.700 0.015 45.746 0.000 0.990 0.990
S3 =~
y7 0.700 0.015 45.746 0.000 0.990 0.990
y8 0.700 0.015 45.746 0.000 0.990 0.990
y9 0.700 0.015 45.746 0.000 0.990 0.990
S4 =~
y10 0.700 0.015 45.746 0.000 0.990 0.990
y11 0.700 0.015 45.746 0.000 0.990 0.990
y12 0.700 0.015 45.746 0.000 0.990 0.990
g =~
S1 1.000 0.043 23.126 0.000 0.707 0.707
S2 1.000 0.043 23.126 0.000 0.707 0.707
S3 1.000 0.043 23.126 0.000 0.707 0.707
S4 1.000 0.043 23.126 0.000 0.707 0.707
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.S1 ~~
g 0.000 0.000 0.000
.S2 ~~
g 0.000 0.000 0.000
.S3 ~~
g 0.000 0.000 0.000
.S4 ~~
g 0.000 0.000 0.000
.S1 ~~
.S4 0.000 0.000 0.000
.S2 ~~
.S4 0.000 0.000 0.000
.S3 ~~
.S4 0.000 0.000 0.000
.S1 ~~
.S3 0.000 0.000 0.000
.S2 ~~
.S3 0.000 0.000 0.000
.S1 ~~
.S2 0.000 0.000 0.000