# Instalar paquetes y llamar librerías
# install.packages("lavaan")
library(lavaan)
## This is lavaan 0.6-21
## lavaan is FREE software! Please report any bugs.
# install.packages("lavaanPlot")
library(lavaanPlot)
# Importar base de datos
bd <- HolzingerSwineford1939
# Entender la base de datos
summary(bd)
## id sex ageyr agemo
## Min. : 1.0 Min. :1.000 Min. :11 Min. : 0.000
## 1st Qu.: 82.0 1st Qu.:1.000 1st Qu.:12 1st Qu.: 2.000
## Median :163.0 Median :2.000 Median :13 Median : 5.000
## Mean :176.6 Mean :1.515 Mean :13 Mean : 5.375
## 3rd Qu.:272.0 3rd Qu.:2.000 3rd Qu.:14 3rd Qu.: 8.000
## Max. :351.0 Max. :2.000 Max. :16 Max. :11.000
##
## school grade x1 x2
## Grant-White:145 Min. :7.000 Min. :0.6667 Min. :2.250
## Pasteur :156 1st Qu.:7.000 1st Qu.:4.1667 1st Qu.:5.250
## Median :7.000 Median :5.0000 Median :6.000
## Mean :7.477 Mean :4.9358 Mean :6.088
## 3rd Qu.:8.000 3rd Qu.:5.6667 3rd Qu.:6.750
## Max. :8.000 Max. :8.5000 Max. :9.250
## NA's :1
## x3 x4 x5 x6
## Min. :0.250 Min. :0.000 Min. :1.000 Min. :0.1429
## 1st Qu.:1.375 1st Qu.:2.333 1st Qu.:3.500 1st Qu.:1.4286
## Median :2.125 Median :3.000 Median :4.500 Median :2.0000
## Mean :2.250 Mean :3.061 Mean :4.341 Mean :2.1856
## 3rd Qu.:3.125 3rd Qu.:3.667 3rd Qu.:5.250 3rd Qu.:2.7143
## Max. :4.500 Max. :6.333 Max. :7.000 Max. :6.1429
##
## x7 x8 x9
## Min. :1.304 Min. : 3.050 Min. :2.778
## 1st Qu.:3.478 1st Qu.: 4.850 1st Qu.:4.750
## Median :4.087 Median : 5.500 Median :5.417
## Mean :4.186 Mean : 5.527 Mean :5.374
## 3rd Qu.:4.913 3rd Qu.: 6.100 3rd Qu.:6.083
## Max. :7.435 Max. :10.000 Max. :9.250
##
# Tipos de fórmulas
# Regresión ~
# Definición de variable latente =~
# Varianzas y covarianzas ~~
# Intercepto ~1
# Estructura del modelo
modelo <- ' # Definiciones de variables latentes
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
'
# Análisis Factorial Confirmatorio
fit <- cfa(modelo,bd) # integra bd con el modelo
summary(fit, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6-21 ended normally after 35 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 21
##
## Number of observations 301
##
## Model Test User Model:
##
## Test statistic 85.306
## Degrees of freedom 24
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 918.852
## Degrees of freedom 36
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.931
## Tucker-Lewis Index (TLI) 0.896
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -3737.745
## Loglikelihood unrestricted model (H1) -3695.092
##
## Akaike (AIC) 7517.490
## Bayesian (BIC) 7595.339
## Sample-size adjusted Bayesian (SABIC) 7528.739
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.092
## 90 Percent confidence interval - lower 0.071
## 90 Percent confidence interval - upper 0.114
## P-value H_0: RMSEA <= 0.050 0.001
## P-value H_0: RMSEA >= 0.080 0.840
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.065
##
## 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
## visual =~
## x1 1.000 0.900 0.772
## x2 0.554 0.100 5.554 0.000 0.498 0.424
## x3 0.729 0.109 6.685 0.000 0.656 0.581
## textual =~
## x4 1.000 0.990 0.852
## x5 1.113 0.065 17.014 0.000 1.102 0.855
## x6 0.926 0.055 16.703 0.000 0.917 0.838
## speed =~
## x7 1.000 0.619 0.570
## x8 1.180 0.165 7.152 0.000 0.731 0.723
## x9 1.082 0.151 7.155 0.000 0.670 0.665
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## visual ~~
## textual 0.408 0.074 5.552 0.000 0.459 0.459
## speed 0.262 0.056 4.660 0.000 0.471 0.471
## textual ~~
## speed 0.173 0.049 3.518 0.000 0.283 0.283
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .x1 0.549 0.114 4.833 0.000 0.549 0.404
## .x2 1.134 0.102 11.146 0.000 1.134 0.821
## .x3 0.844 0.091 9.317 0.000 0.844 0.662
## .x4 0.371 0.048 7.779 0.000 0.371 0.275
## .x5 0.446 0.058 7.642 0.000 0.446 0.269
## .x6 0.356 0.043 8.277 0.000 0.356 0.298
## .x7 0.799 0.081 9.823 0.000 0.799 0.676
## .x8 0.488 0.074 6.573 0.000 0.488 0.477
## .x9 0.566 0.071 8.003 0.000 0.566 0.558
## visual 0.809 0.145 5.564 0.000 1.000 1.000
## textual 0.979 0.112 8.737 0.000 1.000 1.000
## speed 0.384 0.086 4.451 0.000 1.000 1.000
lavaanPlot(model = fit, coefs = TRUE, covs = TRUE)
# Ejercicio
bd2 <- PoliticalDemocracy
summary(bd2)
## y1 y2 y3 y4
## Min. : 1.250 Min. : 0.000 Min. : 0.000 Min. : 0.000
## 1st Qu.: 2.900 1st Qu.: 0.000 1st Qu.: 3.767 1st Qu.: 1.581
## Median : 5.400 Median : 3.333 Median : 6.667 Median : 3.333
## Mean : 5.465 Mean : 4.256 Mean : 6.563 Mean : 4.453
## 3rd Qu.: 7.500 3rd Qu.: 8.283 3rd Qu.:10.000 3rd Qu.: 6.667
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
## y5 y6 y7 y8
## Min. : 0.000 Min. : 0.000 Min. : 0.000 Min. : 0.000
## 1st Qu.: 3.692 1st Qu.: 0.000 1st Qu.: 3.478 1st Qu.: 1.301
## Median : 5.000 Median : 2.233 Median : 6.667 Median : 3.333
## Mean : 5.136 Mean : 2.978 Mean : 6.196 Mean : 4.043
## 3rd Qu.: 7.500 3rd Qu.: 4.207 3rd Qu.:10.000 3rd Qu.: 6.667
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
## x1 x2 x3
## Min. :3.784 Min. :1.386 Min. :1.002
## 1st Qu.:4.477 1st Qu.:3.663 1st Qu.:2.300
## Median :5.075 Median :4.963 Median :3.568
## Mean :5.054 Mean :4.792 Mean :3.558
## 3rd Qu.:5.515 3rd Qu.:5.830 3rd Qu.:4.523
## Max. :6.737 Max. :7.872 Max. :6.425
modelo2 <- '
# Regresión ~
dem60 ~ ind60
dem65 ~ ind60 + dem60
# Variable latente =~
ind60 =~ x1 + x2 + x3
dem60 =~ y1 + y2 + y3 + y4
dem65 =~ y5 + y6 + y7 + y8
# Varianzas y covarianzas ~~
y1 ~~ y5
y2 ~~ y6
y3 ~~ y7
y4 ~~ y8
# Intercepto ~1
'
# Análisis Factorial Confirmatorio
fit2 <- cfa(modelo2,bd2) # integra bd con el modelo
summary(fit2, fit2.measures = TRUE, standardized = TRUE)
## Warning: lavaan->.local():
## Unknown argument 'fit2.measures' for 'summary'
## lavaan 0.6-21 ended normally after 58 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 29
##
## Number of observations 75
##
## Model Test User Model:
##
## Test statistic 50.835
## Degrees of freedom 37
## P-value (Chi-square) 0.064
##
## 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
## ind60 =~
## x1 1.000 0.670 0.920
## x2 2.181 0.139 15.720 0.000 1.460 0.973
## x3 1.819 0.152 11.966 0.000 1.218 0.872
## dem60 =~
## y1 1.000 2.145 0.824
## y2 1.388 0.188 7.401 0.000 2.977 0.760
## y3 1.053 0.161 6.552 0.000 2.259 0.694
## y4 1.368 0.153 8.928 0.000 2.933 0.881
## dem65 =~
## y5 1.000 2.014 0.777
## y6 1.317 0.180 7.314 0.000 2.654 0.790
## y7 1.326 0.174 7.618 0.000 2.672 0.817
## y8 1.391 0.171 8.118 0.000 2.803 0.870
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## dem60 ~
## ind60 1.435 0.385 3.728 0.000 0.448 0.448
## dem65 ~
## ind60 0.507 0.209 2.425 0.015 0.168 0.168
## dem60 0.816 0.100 8.156 0.000 0.869 0.869
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .y1 ~~
## .y5 0.892 0.366 2.433 0.015 0.892 0.370
## .y2 ~~
## .y6 1.893 0.762 2.486 0.013 1.893 0.361
## .y3 ~~
## .y7 1.268 0.623 2.035 0.042 1.268 0.287
## .y4 ~~
## .y8 0.141 0.464 0.303 0.762 0.141 0.056
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .x1 0.082 0.020 4.177 0.000 0.082 0.154
## .x2 0.120 0.070 1.708 0.088 0.120 0.053
## .x3 0.467 0.090 5.172 0.000 0.467 0.239
## .y1 2.181 0.456 4.779 0.000 2.181 0.322
## .y2 6.490 1.231 5.271 0.000 6.490 0.423
## .y3 5.490 0.991 5.538 0.000 5.490 0.518
## .y4 2.470 0.660 3.741 0.000 2.470 0.223
## .y5 2.662 0.506 5.260 0.000 2.662 0.396
## .y6 4.249 0.817 5.201 0.000 4.249 0.376
## .y7 3.560 0.712 4.999 0.000 3.560 0.333
## .y8 2.531 0.609 4.159 0.000 2.531 0.244
## ind60 0.448 0.087 5.171 0.000 1.000 1.000
## .dem60 3.678 0.885 4.154 0.000 0.799 0.799
## .dem65 0.350 0.187 1.865 0.062 0.086 0.086
Industrialización → Democracia 1960 = 0.448 Relación positiva moderada. Más industrialización se asocia con mayor democracia.
Industrialización → Democracia 1965 = 0.168 Relación positiva débil pero significativa.
Democracia 1960 → Democracia 1965 = 0.869 Relación muy fuerte. La democracia previa explica en gran medida la democracia futura.
Libertad de prensa (y1 con y5) → 0.370, significativa. Esto indica que la libertad de prensa en 1960 y en 1965 se mantuvo relativamente similar. Aunque no es exactamente igual, sí existe continuidad. Es decir, los países que tenían mayor libertad de prensa en 1960 tendieron a mantener niveles parecidos en 1965.
Libertad de oposición política (y2 con y6) → 0.361, significativa. La libertad de oposición política también se mantiene bastante parecida entre ambos años. Esto significa que si un país tenía mayor apertura política en 1960, generalmente siguió teniendo una situación similar en 1965.
Imparcialidad de las elecciones (y3 con y7) → 0.287, significativa. Aquí también hay cierta relación, pero más débil. Esto indica que la imparcialidad electoral se mantuvo solo parcialmente, es decir, algunos países conservaron condiciones similares, pero hubo más cambios que en los casos anteriores.
Eficacia de la legislatura elegida (y4 con y8) → 0.056, NO significativa. En este caso casi no hay relación. Esto significa que la eficacia de la legislatura en 1960 no se mantuvo igual en 1965. Hubo más variación entre países y en el tiempo.
Aspectos de la democracia, como la imparcialidad electoral y la oposición política, varían más entre países y son más difíciles de explicar, mientras que la industrialización y la democracia en 1965 están mejor representadas por el modelo.
lavaanPlot(model = fit2, coefs = TRUE, covs = TRUE)
El modelo incluye efectos directos de ind60 sobre dem60 (1.43) y dem65 (0.51), además de la influencia de dem60 sobre dem65 (0.82), lo que sugiere tanto efectos contemporáneos como estabilidad temporal de la democracia. Las cargas factoriales de los indicadores son generalmente altas, indicando buena validez de medición, aunque la complejidad del modelo aumenta por la presencia de múltiples relaciones directas entre variables observadas. Esto puede indicar intentos de mejorar el ajuste, pero también podría generar problemas de sobreajuste. Teóricamente, el modelo respalda que la industrialización influye en la democracia y que esta se mantiene en el tiempo, aunque la coexistencia de efectos directos e indirectos requiere una justificación conceptual clara. En conjunto, es un modelo más completo, pero también más exigente en términos de interpretación y coherencia teórica.