Estudio 1: Características psicométricas de NPB
Se realizarán estudios de validez (AFC, invarianzas y correlación con constructos asociados) y confiabilidad (Alfa de Cronbach, Omega Jerárquico de McDonald, Coeficiente de confiabilidad compuesta -CR-, Varianza media extraída -AVE- y test-retest).
Para todos los análisis se usó la base T1 (T2 en el proyecto original) a excepción de la invarianza por tiempo y test-retest que se usaron las bases T1 y T2 (T2 y T3 en el proyecto original).
Validez: Análisis Factorial Confirmatorio
Para el AFC se utilizó el estimador de mínimos cuadrados no ponderados (ULS), ya que este estimador produce cargas factoriales más exactas y precisas que mínimos cuadrados ponderados con media y varianza ajustada (Forero et al., 2009), y se testeó la siguiente estructura factorial:
- Necesidad de Autonomía: npb01, npb04, npb07, npb10, npb14.
- Necesidad de Competencia: npb02, npb05, npb08, npb11, npb13, npb15.
- Necesidad de Relaciones: npb03, npb06, npb09, npb12.
Se considerará un buen ajuste si los valores de CFI y TLI son mayores que .90, RMSEA y SRMR < .08 y \(\chi^2\)/gl < 5 (Hu y Bentler, 1999)
mod <- ' autonomia =~ npb1 + npb4 + npb7 + npb10 + npb14
competencia =~ npb2 + npb5 + npb8 + npb11 + npb13 + npb15
relacion =~ npb3 + npb6 + npb9 + npb12
'
fit_uls <- cfa(mod, estimator="ULS", data=datos)
summary(fit_uls, fit.measures = T, standardized=T)
## lavaan 0.6.16 ended normally after 40 iterations
##
## Estimator ULS
## Optimization method NLMINB
## Number of model parameters 33
##
## Used Total
## Number of observations 389 411
##
## Model Test User Model:
##
## Test statistic 160.147
## Degrees of freedom 87
## P-value (Unknown) NA
##
## Model Test Baseline Model:
##
## Test statistic 1999.593
## Degrees of freedom 105
## P-value NA
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.961
## Tucker-Lewis Index (TLI) 0.953
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.047
## 90 Percent confidence interval - lower 0.035
## 90 Percent confidence interval - upper 0.058
## P-value H_0: RMSEA <= 0.050 0.680
## P-value H_0: RMSEA >= 0.080 0.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.073
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia =~
## npb1 1.000 0.673 0.603
## npb4 0.848 0.094 8.997 0.000 0.571 0.593
## npb7 0.086 0.056 1.547 0.122 0.058 0.089
## npb10 0.717 0.084 8.551 0.000 0.483 0.488
## npb14 0.883 0.097 9.075 0.000 0.595 0.582
## competencia =~
## npb2 1.000 0.626 0.721
## npb5 1.016 0.087 11.737 0.000 0.636 0.667
## npb8 0.919 0.081 11.385 0.000 0.576 0.622
## npb11 0.771 0.073 10.610 0.000 0.483 0.597
## npb13 1.044 0.088 11.820 0.000 0.653 0.761
## npb15 1.002 0.086 11.695 0.000 0.628 0.714
## relacion =~
## npb3 1.000 0.630 0.768
## npb6 0.951 0.099 9.585 0.000 0.599 0.693
## npb9 1.094 0.112 9.790 0.000 0.689 0.776
## npb12 1.000 0.103 9.682 0.000 0.630 0.801
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia ~~
## competencia 0.166 0.018 9.062 0.000 0.394 0.394
## relacion 0.134 0.019 7.191 0.000 0.316 0.316
## competencia ~~
## relacion 0.133 0.015 8.628 0.000 0.338 0.338
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 0.794 0.081 9.769 0.000 0.794 0.637
## .npb4 0.601 0.071 8.447 0.000 0.601 0.649
## .npb7 0.423 0.051 8.307 0.000 0.423 0.992
## .npb10 0.744 0.065 11.501 0.000 0.744 0.761
## .npb14 0.690 0.073 9.421 0.000 0.690 0.661
## .npb2 0.363 0.068 5.339 0.000 0.363 0.481
## .npb5 0.505 0.069 7.355 0.000 0.505 0.555
## .npb8 0.525 0.065 8.073 0.000 0.525 0.613
## .npb11 0.422 0.061 6.969 0.000 0.422 0.644
## .npb13 0.311 0.070 4.451 0.000 0.311 0.421
## .npb15 0.379 0.068 5.566 0.000 0.379 0.490
## .npb3 0.277 0.074 3.720 0.000 0.277 0.411
## .npb6 0.389 0.072 5.424 0.000 0.389 0.520
## .npb9 0.314 0.080 3.920 0.000 0.314 0.398
## .npb12 0.221 0.074 2.973 0.003 0.221 0.358
## autonomia 0.453 0.063 7.138 0.000 1.000 1.000
## competencia 0.392 0.045 8.664 0.000 1.000 1.000
## relacion 0.397 0.054 7.303 0.000 1.000 1.000
tabla_descr <- data.frame(Item=c("1. Pude decidir los ejercicios que estuve practicando / entrenando",
"2. Creo que vengo siendo bastante bueno/a en este deporte",
"3. Sentí que mis compañeros/as me apoyan",
"4. Se tuvo en cuenta mi opinión a la hora de decidir las habilidades / técnicas / ejercicios que vengo entrenando",
"5. Estoy satisfecho/a con lo que vengo haciendo",
"6. Sentí que mis compañeros/as me comprenden",
"7. Jugué mi deporte porque yo lo decido",
"8. Me sentí habilidoso/a",
"9. Sentí que mis compañeros/as escuchan mi opinión",
"10. Me sentí bastante libre para hacer las cosas a mi manera",
'11. Me sentí bastante competente ("creo que puedo hacerlo"',
"12. Sentí que mis compañeros/as me valoran",
"13. Sentí que hice las cosas muy bien",
"14. Pude elegir algunas cosas de las que hacemos en los entrenamientos",
"15. Creo que vengo haciendo las cosas en los entrenamientos y partidos bastante bien"),
"M (DE)"=c(paste0(round(mean(datos$npb1, na.rm=T),2)," (",round(sd(datos$npb1, na.rm=T),2),")"),
paste0(round(mean(datos$npb2, na.rm=T),2)," (",round(sd(datos$npb2, na.rm=T),2),")"),
paste0(round(mean(datos$npb3, na.rm=T),2)," (",round(sd(datos$npb3, na.rm=T),2),")"),
paste0(round(mean(datos$npb4, na.rm=T),2)," (",round(sd(datos$npb4, na.rm=T),2),")"),
paste0(round(mean(datos$npb5, na.rm=T),2)," (",round(sd(datos$npb5, na.rm=T),2),")"),
paste0(round(mean(datos$npb6, na.rm=T),2)," (",round(sd(datos$npb6, na.rm=T),2),")"),
paste0(round(mean(datos$npb7, na.rm=T),2)," (",round(sd(datos$npb7, na.rm=T),2),")"),
paste0(round(mean(datos$npb8, na.rm=T),2)," (",round(sd(datos$npb8, na.rm=T),2),")"),
paste0(round(mean(datos$npb9, na.rm=T),2)," (",round(sd(datos$npb9, na.rm=T),2),")"),
paste0(round(mean(datos$npb10, na.rm=T),2)," (",round(sd(datos$npb10, na.rm=T),2),")"),
paste0(round(mean(datos$npb11, na.rm=T),2)," (",round(sd(datos$npb11, na.rm=T),2),")"),
paste0(round(mean(datos$npb12, na.rm=T),2)," (",round(sd(datos$npb12, na.rm=T),2),")"),
paste0(round(mean(datos$npb13, na.rm=T),2)," (",round(sd(datos$npb13, na.rm=T),2),")"),
paste0(round(mean(datos$npb14, na.rm=T),2)," (",round(sd(datos$npb14, na.rm=T),2),")"),
paste0(round(mean(datos$npb15, na.rm=T),2)," (",round(sd(datos$npb15, na.rm=T),2),")")),
"Asimetría"=c(round(skewness(datos$npb1,na.rm = T),2),
round(skewness(datos$npb2,na.rm = T),2),
round(skewness(datos$npb3,na.rm = T),2),
round(skewness(datos$npb4,na.rm = T),2),
round(skewness(datos$npb5,na.rm = T),2),
round(skewness(datos$npb6,na.rm = T),2),
round(skewness(datos$npb7,na.rm = T),2),
round(skewness(datos$npb8,na.rm = T),2),
round(skewness(datos$npb9,na.rm = T),2),
round(skewness(datos$npb10,na.rm = T),2),
round(skewness(datos$npb11,na.rm = T),2),
round(skewness(datos$npb12,na.rm = T),2),
round(skewness(datos$npb13,na.rm = T),2),
round(skewness(datos$npb14,na.rm = T),2),
round(skewness(datos$npb15,na.rm = T),2)),
"Kurtosis"=c(round(kurtosis(datos$npb1)[1],2),
round(kurtosis(datos$npb2)[1],2),
round(kurtosis(datos$npb3)[1],2),
round(kurtosis(datos$npb4)[1],2),
round(kurtosis(datos$npb5)[1],2),
round(kurtosis(datos$npb6)[1],2),
round(kurtosis(datos$npb7)[1],2),
round(kurtosis(datos$npb8)[1],2),
round(kurtosis(datos$npb9)[1],2),
round(kurtosis(datos$npb10)[1],2),
round(kurtosis(datos$npb11)[1],2),
round(kurtosis(datos$npb12)[1],2),
round(kurtosis(datos$npb13)[1],2),
round(kurtosis(datos$npb14)[1],2),
round(kurtosis(datos$npb15)[1],2)),
"Carga Factorial"=round(summary(fit_uls, fit.measures = T, standardized=T)$pe$std.all[c(1,6,12,2,7,13,3,8,14,4,9,15,10,5,11)],2),
check.names = F)
kable(tabla_descr,
"html",
booktabs = T,
align = c("lcccc"),
caption = "Tabla 1. Estadísticos descriptivos y cargas factoriales estandarizadas") %>%
kable_styling(full_width = F,
position = "center", font_size = 12)
| Item | M (DE) | Asimetría | Kurtosis | Carga Factorial |
|---|---|---|---|---|
|
2.83 (1.13) | -0.05 | -0.66 | 0.60 |
|
3.52 (0.89) | -0.50 | 0.30 | 0.72 |
|
4.18 (0.85) | -1.23 | 2.13 | 0.77 |
|
1.86 (0.95) | 1.14 | 1.16 | 0.59 |
|
3.83 (0.95) | -0.68 | 0.14 | 0.67 |
|
3.99 (0.89) | -0.93 | 1.11 | 0.69 |
|
4.66 (0.66) | -2.45 | 7.76 | 0.09 |
|
3.54 (0.94) | -0.41 | -0.05 | 0.62 |
|
3.88 (0.9) | -0.73 | 0.56 | 0.78 |
|
3.23 (1) | -0.25 | -0.34 | 0.49 |
|
3.86 (0.85) | -0.71 | 0.70 | 0.60 |
|
4.08 (0.8) | -1.13 | 2.36 | 0.80 |
|
3.2 (0.86) | -0.05 | 0.04 | 0.76 |
|
1.99 (1.01) | 0.98 | 0.62 | 0.58 |
|
3.62 (0.88) | -0.49 | 0.34 | 0.71 |
Todas las cargas factoriales fueron significativas (p < .01), a excepción del ítem 7. Su carga factorial es muy baja y su asimetría y kurtosis, un poco extremas.
El modelo de AFC presentó un ajuste aceptable: \(\chi^2\)(87) = 160.15, \(\chi^2\)/gl = 1.84, CFI = 0.961, TLI = 0.953, RMSEA = 0.047, SRMR = 0.073.
Ajuste sin el ítem 7
Se probó ajustar el modelo sin el ítem 7 y el ajuste mejora.
mod2 <- ' autonomia =~ npb1 + npb4 + npb10 + npb14
competencia =~ npb2 + npb5 + npb8 + npb11 + npb13 + npb15
relacion =~ npb3 + npb6 + npb9 + npb12
'
fit_uls2 <- cfa(mod2, estimator="ULS", data=datos)
summary(fit_uls2, fit.measures = T, standardized=T)
## lavaan 0.6.16 ended normally after 36 iterations
##
## Estimator ULS
## Optimization method NLMINB
## Number of model parameters 31
##
## Used Total
## Number of observations 389 411
##
## Model Test User Model:
##
## Test statistic 136.360
## Degrees of freedom 74
## P-value (Unknown) NA
##
## Model Test Baseline Model:
##
## Test statistic 1973.472
## Degrees of freedom 91
## P-value NA
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.967
## Tucker-Lewis Index (TLI) 0.959
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.047
## 90 Percent confidence interval - lower 0.034
## 90 Percent confidence interval - upper 0.059
## P-value H_0: RMSEA <= 0.050 0.662
## P-value H_0: RMSEA >= 0.080 0.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.066
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia =~
## npb1 1.000 0.676 0.605
## npb4 0.856 0.095 9.007 0.000 0.579 0.601
## npb10 0.712 0.084 8.522 0.000 0.481 0.486
## npb14 0.891 0.098 9.076 0.000 0.602 0.589
## competencia =~
## npb2 1.000 0.626 0.721
## npb5 1.014 0.087 11.713 0.000 0.635 0.666
## npb8 0.920 0.081 11.372 0.000 0.576 0.623
## npb11 0.770 0.073 10.590 0.000 0.482 0.596
## npb13 1.044 0.088 11.803 0.000 0.654 0.762
## npb15 1.002 0.086 11.675 0.000 0.627 0.714
## relacion =~
## npb3 1.000 0.630 0.768
## npb6 0.951 0.099 9.566 0.000 0.599 0.693
## npb9 1.094 0.112 9.770 0.000 0.689 0.776
## npb12 1.000 0.104 9.663 0.000 0.630 0.801
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia ~~
## competencia 0.163 0.018 8.985 0.000 0.386 0.386
## relacion 0.131 0.018 7.108 0.000 0.308 0.308
## competencia ~~
## relacion 0.133 0.015 8.620 0.000 0.338 0.338
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 0.791 0.082 9.685 0.000 0.791 0.634
## .npb4 0.592 0.072 8.228 0.000 0.592 0.639
## .npb10 0.746 0.065 11.547 0.000 0.746 0.763
## .npb14 0.682 0.074 9.210 0.000 0.682 0.653
## .npb2 0.363 0.068 5.331 0.000 0.363 0.481
## .npb5 0.506 0.069 7.373 0.000 0.506 0.556
## .npb8 0.524 0.065 8.050 0.000 0.524 0.612
## .npb11 0.422 0.061 6.975 0.000 0.422 0.645
## .npb13 0.310 0.070 4.434 0.000 0.310 0.420
## .npb15 0.379 0.068 5.565 0.000 0.379 0.491
## .npb3 0.277 0.074 3.717 0.000 0.277 0.411
## .npb6 0.389 0.072 5.421 0.000 0.389 0.520
## .npb9 0.314 0.080 3.913 0.000 0.314 0.398
## .npb12 0.221 0.074 2.971 0.003 0.221 0.358
## autonomia 0.457 0.064 7.139 0.000 1.000 1.000
## competencia 0.392 0.045 8.652 0.000 1.000 1.000
## relacion 0.397 0.054 7.290 0.000 1.000 1.000
Validez: Invarianzas
Para estimar la invarianza en torno al tiempo (mitad de temporada / final de temporada), el sexo (masculino / femenino) y la edad (early: 12-15; late: 16-19) primero se ajustaron AFC por separado y luego los AFC multigrupo.
Por tiempo
fit_uls_t1 <- cfa(mod, estimator="ULS", data=base_total[base_total$tiempo==1,])
fit_uls_t2 <- cfa(mod, estimator="ULS", data=base_total[base_total$tiempo==2,])
El modelo de AFC presentó un buen ajuste en el tiempo 1 (\(\chi^2\)(87) = 160.15, \(\chi^2\)/gl = 1.84, CFI = 0.961, TLI = 0.953, RMSEA = 0.047, SRMR = 0.073) y en el tiempo 2 (\(\chi^2\)(87) = 191.58, \(\chi^2\)/gl = 2.2, CFI = 0.965, TLI = 0.958, RMSEA = 0.058, SRMR = 0.088).
cfa_config <- cfa(mod, data=base_total, estimator="ULS", group = "tiempo")
summary(cfa_config, fit.measures = T, standardized=T)
## lavaan 0.6.16 ended normally after 49 iterations
##
## Estimator ULS
## Optimization method NLMINB
## Number of model parameters 96
##
## Number of observations per group: Used Total
## 1 389 411
## 2 363 390
##
## Model Test User Model:
##
## Test statistic 351.725
## Degrees of freedom 174
## P-value (Unknown) NA
## Test statistic for each group:
## 1 160.147
## 2 191.577
##
## Model Test Baseline Model:
##
## Test statistic 5118.341
## Degrees of freedom 210
## P-value NA
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.964
## Tucker-Lewis Index (TLI) 0.956
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.052
## 90 Percent confidence interval - lower 0.044
## 90 Percent confidence interval - upper 0.060
## P-value H_0: RMSEA <= 0.050 0.314
## P-value H_0: RMSEA >= 0.080 0.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.075
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Unstructured
##
##
## Group 1 [1]:
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia =~
## npb1 1.000 0.673 0.603
## npb4 0.847 0.094 8.996 0.000 0.571 0.593
## npb7 0.086 0.056 1.547 0.122 0.058 0.089
## npb10 0.717 0.084 8.550 0.000 0.483 0.488
## npb14 0.883 0.097 9.075 0.000 0.595 0.582
## competencia =~
## npb2 1.000 0.626 0.721
## npb5 1.016 0.087 11.736 0.000 0.636 0.667
## npb8 0.919 0.081 11.384 0.000 0.576 0.622
## npb11 0.771 0.073 10.609 0.000 0.483 0.597
## npb13 1.044 0.088 11.820 0.000 0.653 0.761
## npb15 1.002 0.086 11.694 0.000 0.628 0.714
## relacion =~
## npb3 1.000 0.630 0.768
## npb6 0.951 0.099 9.584 0.000 0.599 0.693
## npb9 1.094 0.112 9.790 0.000 0.689 0.776
## npb12 1.000 0.103 9.681 0.000 0.630 0.801
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia ~~
## competencia 0.166 0.018 9.061 0.000 0.394 0.394
## relacion 0.134 0.019 7.191 0.000 0.316 0.316
## competencia ~~
## relacion 0.133 0.015 8.628 0.000 0.338 0.338
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 2.856 0.051 56.255 0.000 2.856 2.557
## .npb4 1.871 0.051 36.862 0.000 1.871 1.944
## .npb7 4.658 0.051 91.750 0.000 4.658 7.132
## .npb10 3.252 0.051 64.053 0.000 3.252 3.289
## .npb14 2.008 0.051 39.546 0.000 2.008 1.965
## .npb2 3.527 0.051 69.471 0.000 3.527 4.059
## .npb5 3.815 0.051 75.142 0.000 3.815 4.001
## .npb8 3.548 0.051 69.876 0.000 3.548 3.833
## .npb11 3.877 0.051 76.357 0.000 3.877 4.791
## .npb13 3.208 0.051 63.192 0.000 3.208 3.736
## .npb15 3.638 0.051 71.648 0.000 3.638 4.138
## .npb3 4.195 0.051 82.636 0.000 4.195 5.114
## .npb6 4.005 0.051 78.889 0.000 4.005 4.633
## .npb9 3.897 0.051 76.762 0.000 3.897 4.389
## .npb12 4.077 0.051 80.306 0.000 4.077 5.187
## autonomia 0.000 0.000 0.000
## competencia 0.000 0.000 0.000
## relacion 0.000 0.000 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 0.794 0.081 9.768 0.000 0.794 0.637
## .npb4 0.601 0.071 8.446 0.000 0.601 0.649
## .npb7 0.423 0.051 8.307 0.000 0.423 0.992
## .npb10 0.744 0.065 11.501 0.000 0.744 0.761
## .npb14 0.690 0.073 9.420 0.000 0.690 0.661
## .npb2 0.363 0.068 5.339 0.000 0.363 0.481
## .npb5 0.505 0.069 7.355 0.000 0.505 0.555
## .npb8 0.525 0.065 8.073 0.000 0.525 0.613
## .npb11 0.422 0.061 6.969 0.000 0.422 0.644
## .npb13 0.311 0.070 4.451 0.000 0.311 0.421
## .npb15 0.379 0.068 5.566 0.000 0.379 0.490
## .npb3 0.277 0.074 3.720 0.000 0.277 0.411
## .npb6 0.389 0.072 5.424 0.000 0.389 0.520
## .npb9 0.314 0.080 3.920 0.000 0.314 0.398
## .npb12 0.221 0.074 2.973 0.003 0.221 0.358
## autonomia 0.453 0.063 7.138 0.000 1.000 1.000
## competencia 0.392 0.045 8.664 0.000 1.000 1.000
## relacion 0.397 0.054 7.302 0.000 1.000 1.000
##
##
## Group 2 [2]:
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia =~
## npb1 1.000 0.746 0.655
## npb4 0.499 0.063 7.914 0.000 0.372 0.440
## npb7 0.220 0.052 4.251 0.000 0.164 0.254
## npb10 0.860 0.088 9.812 0.000 0.642 0.639
## npb14 0.560 0.066 8.431 0.000 0.418 0.465
## competencia =~
## npb2 1.000 0.688 0.756
## npb5 1.239 0.077 16.035 0.000 0.852 0.784
## npb8 1.009 0.066 15.247 0.000 0.694 0.679
## npb11 0.832 0.059 14.170 0.000 0.572 0.626
## npb13 1.056 0.068 15.459 0.000 0.726 0.795
## npb15 1.122 0.071 15.709 0.000 0.771 0.806
## relacion =~
## npb3 1.000 0.688 0.795
## npb6 1.059 0.087 12.160 0.000 0.729 0.786
## npb9 1.095 0.090 12.219 0.000 0.754 0.814
## npb12 0.966 0.081 11.931 0.000 0.665 0.773
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia ~~
## competencia 0.211 0.019 10.963 0.000 0.412 0.412
## relacion 0.179 0.021 8.505 0.000 0.348 0.348
## competencia ~~
## relacion 0.181 0.016 11.527 0.000 0.383 0.383
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 2.711 0.053 51.578 0.000 2.711 2.377
## .npb4 1.793 0.053 34.123 0.000 1.793 2.118
## .npb7 4.623 0.053 87.955 0.000 4.623 7.150
## .npb10 3.179 0.053 60.489 0.000 3.179 3.164
## .npb14 1.942 0.053 36.954 0.000 1.942 2.163
## .npb2 3.435 0.053 65.363 0.000 3.435 3.778
## .npb5 3.567 0.053 67.879 0.000 3.567 3.284
## .npb8 3.444 0.053 65.521 0.000 3.444 3.372
## .npb11 3.780 0.053 71.916 0.000 3.780 4.136
## .npb13 3.182 0.053 60.541 0.000 3.182 3.484
## .npb15 3.444 0.053 65.521 0.000 3.444 3.598
## .npb3 4.044 0.053 76.947 0.000 4.044 4.671
## .npb6 3.763 0.053 71.601 0.000 3.763 4.056
## .npb9 3.736 0.053 71.077 0.000 3.736 4.033
## .npb12 3.915 0.053 74.484 0.000 3.915 4.547
## autonomia 0.000 0.000 0.000
## competencia 0.000 0.000 0.000
## relacion 0.000 0.000 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 0.743 0.090 8.265 0.000 0.743 0.571
## .npb4 0.578 0.060 9.651 0.000 0.578 0.807
## .npb7 0.391 0.054 7.250 0.000 0.391 0.935
## .npb10 0.597 0.078 7.683 0.000 0.597 0.592
## .npb14 0.631 0.062 10.187 0.000 0.631 0.783
## .npb2 0.354 0.068 5.243 0.000 0.354 0.428
## .npb5 0.455 0.077 5.910 0.000 0.455 0.385
## .npb8 0.562 0.068 8.286 0.000 0.562 0.539
## .npb11 0.508 0.063 8.111 0.000 0.508 0.608
## .npb13 0.307 0.069 4.422 0.000 0.307 0.368
## .npb15 0.321 0.072 4.469 0.000 0.321 0.351
## .npb3 0.275 0.074 3.699 0.000 0.275 0.368
## .npb6 0.329 0.078 4.233 0.000 0.329 0.382
## .npb9 0.290 0.080 3.637 0.000 0.290 0.338
## .npb12 0.299 0.073 4.104 0.000 0.299 0.403
## autonomia 0.557 0.073 7.641 0.000 1.000 1.000
## competencia 0.473 0.042 11.158 0.000 1.000 1.000
## relacion 0.474 0.053 8.986 0.000 1.000 1.000
El modelo que incluye al tiempo como variable de agrupamiento posee buenos indicadores de ajuste, lo cual da cuenta de una adecuada invarianza configural. Es importante destacar que la carga factorial del ítem 7 no resultó significativa en el tiempo 1.
cfa_metric <- cfa(mod, data=base_total, estimator="ULS", group = "tiempo", group.equal="loadings")
cfa_scalar <- cfa(mod, data=base_total, estimator="ULS", group = "tiempo", group.equal=c("loadings","intercepts"))
cfa_strict <- cfa(mod, data=base_total, estimator="ULS", group = "tiempo", group.equal=c("loadings","intercepts", "residuals"))
summary(compareFit(cfa_config, cfa_metric, cfa_scalar, cfa_strict))
## ################### Nested Model Comparison #########################
##
## Chi-Squared Difference Test
##
## Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
## cfa_config 174 351.72
## cfa_metric 186 378.86 27.1332 0.057914 12 0.007393 **
## cfa_scalar 198 385.13 6.2678 0.000000 12 0.901985
## cfa_strict 213 410.52 25.3924 0.042926 15 0.044916 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ####################### Model Fit Indices ###########################
## chisq df pvalue rmsea cfi tli srmr
## cfa_config 351.725† 174 NA .052 .964† .956 .075†
## cfa_metric 378.858 186 NA .053 .961 .956 .077
## cfa_scalar 385.126 198 NA .050 .962 .960 .078
## cfa_strict 410.518 213 NA .050† .960 .960† .080
##
## ################## Differences in Fit Indices #######################
## df rmsea cfi tli srmr
## cfa_metric - cfa_config 12 0.000 -0.003 -0.001 0.002
## cfa_scalar - cfa_metric 12 -0.002 0.001 0.004 0.000
## cfa_strict - cfa_scalar 15 0.000 -0.002 0.001 0.002
Ya entre el modelo métrico y el configural hay diferencias significativas, por lo que no es posible pensar en que el instrumento presenta invarianza a través del tiempo en lo que respecta a las cargas factoriales. La situación mejora levemente cuando no se considera al ítem 7, pero no lo suficiente como para dejar de ser significativa la diferencia.
Por sexo
fit_uls_m <- cfa(mod, estimator="ULS", data=datos[datos$sexo=="masculino",])
fit_uls_f <- cfa(mod, estimator="ULS", data=datos[datos$sexo=="femenino",])
El modelo de AFC presentó un buen ajuste en varones (\(\chi^2\)(87) = 127.66, \(\chi^2\)/gl = 1.47, CFI = 0.972, TLI = 0.966, RMSEA = 0.045, SRMR = 0.077) y un excelente ajuste en mujeres (\(\chi^2\)(87) = 47.89, \(\chi^2\)/gl = 0.55, CFI = 1, TLI = 1.111, RMSEA = 0, SRMR = 0.073).
cfa_config <- cfa(mod, data=datos, estimator="ULS", group = "sexo")
summary(cfa_config, fit.measures = T, standardized=T)
## lavaan 0.6.16 ended normally after 65 iterations
##
## Estimator ULS
## Optimization method NLMINB
## Number of model parameters 96
##
## Number of observations per group: Used Total
## femenino 156 168
## masculino 233 243
##
## Model Test User Model:
##
## Test statistic 175.554
## Degrees of freedom 174
## P-value (Unknown) NA
## Test statistic for each group:
## femenino 47.891
## masculino 127.664
##
## Model Test Baseline Model:
##
## Test statistic 2074.248
## Degrees of freedom 210
## P-value NA
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.999
## Tucker-Lewis Index (TLI) 0.999
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.007
## 90 Percent confidence interval - lower 0.000
## 90 Percent confidence interval - upper 0.033
## 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.071
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Unstructured
##
##
## Group 1 [femenino]:
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia =~
## npb1 1.000 0.786 0.715
## npb4 0.613 0.168 3.650 0.000 0.482 0.620
## npb7 -0.084 0.091 -0.923 0.356 -0.066 -0.110
## npb10 0.376 0.120 3.127 0.002 0.296 0.305
## npb14 0.554 0.154 3.601 0.000 0.436 0.489
## competencia =~
## npb2 1.000 0.655 0.774
## npb5 0.811 0.130 6.217 0.000 0.531 0.578
## npb8 0.891 0.139 6.405 0.000 0.584 0.678
## npb11 0.661 0.116 5.703 0.000 0.433 0.571
## npb13 0.962 0.147 6.525 0.000 0.630 0.778
## npb15 0.912 0.141 6.445 0.000 0.597 0.673
## relacion =~
## npb3 1.000 0.518 0.684
## npb6 1.058 0.227 4.659 0.000 0.548 0.709
## npb9 1.447 0.313 4.626 0.000 0.750 0.875
## npb12 1.011 0.219 4.616 0.000 0.524 0.744
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia ~~
## competencia 0.140 0.034 4.123 0.000 0.272 0.272
## relacion 0.070 0.029 2.415 0.016 0.171 0.171
## competencia ~~
## relacion 0.081 0.022 3.783 0.000 0.240 0.240
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 2.833 0.080 35.297 0.000 2.833 2.575
## .npb4 1.647 0.080 20.524 0.000 1.647 2.120
## .npb7 4.692 0.080 58.456 0.000 4.692 7.861
## .npb10 3.135 0.080 39.051 0.000 3.135 3.228
## .npb14 1.776 0.080 22.121 0.000 1.776 1.992
## .npb2 3.481 0.080 43.363 0.000 3.481 4.114
## .npb5 3.782 0.080 47.116 0.000 3.782 4.120
## .npb8 3.455 0.080 43.043 0.000 3.455 4.017
## .npb11 3.724 0.080 46.397 0.000 3.724 4.911
## .npb13 3.051 0.080 38.012 0.000 3.051 3.769
## .npb15 3.583 0.080 44.641 0.000 3.583 4.040
## .npb3 4.276 0.080 53.265 0.000 4.276 5.638
## .npb6 4.090 0.080 50.949 0.000 4.090 5.287
## .npb9 3.917 0.080 48.793 0.000 3.917 4.569
## .npb12 4.160 0.080 51.828 0.000 4.160 5.903
## autonomia 0.000 0.000 0.000
## competencia 0.000 0.000 0.000
## relacion 0.000 0.000 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 0.592 0.207 2.857 0.004 0.592 0.489
## .npb4 0.372 0.115 3.234 0.001 0.372 0.616
## .npb7 0.352 0.081 4.357 0.000 0.352 0.988
## .npb10 0.855 0.092 9.333 0.000 0.855 0.907
## .npb14 0.605 0.107 5.631 0.000 0.605 0.761
## .npb2 0.287 0.118 2.440 0.015 0.287 0.401
## .npb5 0.561 0.103 5.426 0.000 0.561 0.666
## .npb8 0.399 0.109 3.671 0.000 0.399 0.540
## .npb11 0.388 0.095 4.077 0.000 0.388 0.674
## .npb13 0.259 0.114 2.265 0.024 0.259 0.395
## .npb15 0.430 0.110 3.897 0.000 0.430 0.547
## .npb3 0.306 0.113 2.718 0.007 0.306 0.533
## .npb6 0.298 0.117 2.533 0.011 0.298 0.497
## .npb9 0.172 0.163 1.055 0.291 0.172 0.235
## .npb12 0.222 0.114 1.954 0.051 0.222 0.447
## autonomia 0.618 0.191 3.235 0.001 1.000 1.000
## competencia 0.429 0.086 4.994 0.000 1.000 1.000
## relacion 0.269 0.079 3.395 0.001 1.000 1.000
##
##
## Group 2 [masculino]:
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia =~
## npb1 1.000 0.662 0.586
## npb4 0.822 0.102 8.099 0.000 0.544 0.521
## npb7 0.217 0.068 3.180 0.001 0.143 0.208
## npb10 0.869 0.105 8.253 0.000 0.575 0.578
## npb14 0.936 0.111 8.431 0.000 0.620 0.577
## competencia =~
## npb2 1.000 0.611 0.691
## npb5 1.160 0.115 10.049 0.000 0.709 0.725
## npb8 0.914 0.098 9.342 0.000 0.559 0.580
## npb11 0.818 0.092 8.920 0.000 0.500 0.604
## npb13 1.063 0.108 9.827 0.000 0.650 0.741
## npb15 1.053 0.107 9.802 0.000 0.644 0.737
## relacion =~
## npb3 1.000 0.691 0.806
## npb6 0.925 0.102 9.031 0.000 0.639 0.696
## npb9 0.961 0.105 9.115 0.000 0.664 0.730
## npb12 0.987 0.108 9.167 0.000 0.682 0.818
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia ~~
## competencia 0.187 0.023 8.112 0.000 0.461 0.461
## relacion 0.206 0.027 7.680 0.000 0.451 0.451
## competencia ~~
## relacion 0.175 0.021 8.181 0.000 0.415 0.415
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 2.871 0.066 43.715 0.000 2.871 2.541
## .npb4 2.021 0.066 30.777 0.000 2.021 1.936
## .npb7 4.635 0.066 70.571 0.000 4.635 6.732
## .npb10 3.330 0.066 50.707 0.000 3.330 3.348
## .npb14 2.163 0.066 32.933 0.000 2.163 2.013
## .npb2 3.558 0.066 54.170 0.000 3.558 4.023
## .npb5 3.837 0.066 58.417 0.000 3.837 3.924
## .npb8 3.609 0.066 54.954 0.000 3.609 3.745
## .npb11 3.979 0.066 60.573 0.000 3.979 4.807
## .npb13 3.313 0.066 50.445 0.000 3.313 3.781
## .npb15 3.674 0.066 55.934 0.000 3.674 4.204
## .npb3 4.142 0.066 63.057 0.000 4.142 4.834
## .npb6 3.948 0.066 60.116 0.000 3.948 4.303
## .npb9 3.884 0.066 59.136 0.000 3.884 4.271
## .npb12 4.021 0.066 61.227 0.000 4.021 4.829
## autonomia 0.000 0.000 0.000
## competencia 0.000 0.000 0.000
## relacion 0.000 0.000 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 0.838 0.095 8.795 0.000 0.838 0.656
## .npb4 0.794 0.084 9.402 0.000 0.794 0.728
## .npb7 0.454 0.067 6.784 0.000 0.454 0.957
## .npb10 0.658 0.087 7.574 0.000 0.658 0.665
## .npb14 0.770 0.091 8.469 0.000 0.770 0.667
## .npb2 0.409 0.084 4.849 0.000 0.409 0.522
## .npb5 0.453 0.092 4.940 0.000 0.453 0.474
## .npb8 0.617 0.081 7.620 0.000 0.617 0.664
## .npb11 0.435 0.078 5.595 0.000 0.435 0.635
## .npb13 0.346 0.087 3.976 0.000 0.346 0.450
## .npb15 0.350 0.087 4.038 0.000 0.350 0.458
## .npb3 0.257 0.095 2.699 0.007 0.257 0.350
## .npb6 0.434 0.090 4.801 0.000 0.434 0.515
## .npb9 0.387 0.093 4.171 0.000 0.387 0.467
## .npb12 0.229 0.094 2.425 0.015 0.229 0.330
## autonomia 0.438 0.069 6.352 0.000 1.000 1.000
## competencia 0.374 0.053 7.075 0.000 1.000 1.000
## relacion 0.477 0.069 6.900 0.000 1.000 1.000
El modelo que incluye al sexo como variable de agrupamiento posee buenos indicadores de ajuste, lo cual da cuenta de una adecuada invarianza configural. Es importante destacar que la carga factorial del ítem 7 y la varianza del ítem 9 no resultaron significativas entre las mujeres.
cfa_metric <- cfa(mod, data=datos, estimator="ULS", group = "sexo", group.equal="loadings")
cfa_scalar <- cfa(mod, data=datos, estimator="ULS", group = "sexo", group.equal=c("loadings","intercepts"))
cfa_strict <- cfa(mod, data=datos, estimator="ULS", group = "sexo", group.equal=c("loadings","intercepts", "residuals"))
summary(compareFit(cfa_config, cfa_metric, cfa_scalar, cfa_strict))
## ################### Nested Model Comparison #########################
##
## Chi-Squared Difference Test
##
## Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
## cfa_config 174 175.55
## cfa_metric 186 195.65 20.094 0.058888 12 0.06533 .
## cfa_scalar 198 211.01 15.364 0.037962 12 0.22215
## cfa_strict 213 232.98 21.966 0.048862 15 0.10871
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ####################### Model Fit Indices ###########################
## chisq df pvalue rmsea cfi tli srmr
## cfa_config 175.554† 174 NA .007† 0.999† 0.999† .071†
## cfa_metric 195.648 186 NA .016 .995 .994 .077
## cfa_scalar 211.012 198 NA .018 .993 .993 .080
## cfa_strict 232.978 213 NA .022 .989 .989 .085
##
## ################## Differences in Fit Indices #######################
## df rmsea cfi tli srmr
## cfa_metric - cfa_config 12 0.010 -0.004 -0.005 0.006
## cfa_scalar - cfa_metric 12 0.002 -0.002 -0.002 0.002
## cfa_strict - cfa_scalar 15 0.004 -0.004 -0.003 0.005
En este caso hay invarianza métrica, escalar y estricta entre los sexos.
Por edad
fit_uls_early <- cfa(mod, estimator="ULS", data=datos[datos$edad_recod=="early",])
fit_uls_late <- cfa(mod, estimator="ULS", data=datos[datos$edad_recod=="late",])
El modelo de AFC presentó un buen ajuste en early (\(\chi^2\)(87) = 127.59, \(\chi^2\)/gl = 1.47, CFI = 0.961, TLI = 0.953, RMSEA = 0.049, SRMR = 0.089), pero el ítem 7 presentó carga factoral no significativa y la varianza del ítem 12 tampoco fue significativamente distinta de cero (no hay diferencia entre el ítem y el factor).
En late el modelo también tuvo un buen ajuste (\(\chi^2\)(87) = 68.68, \(\chi^2\)/gl = 0.79, CFI = 1, TLI = 1.034, RMSEA = 0, SRMR = 0.078), pero el p-valor asociado al ítem 7 fue todavía mayor y la varianza del ítem 3 tampoco fue significativa.
cfa_config <- cfa(mod, data=datos, estimator="ULS", group = "edad_recod")
summary(cfa_config, fit.measures = T, standardized=T)
## lavaan 0.6.16 ended normally after 52 iterations
##
## Estimator ULS
## Optimization method NLMINB
## Number of model parameters 96
##
## Number of observations per group: Used Total
## late 168 174
## early 199 215
##
## Model Test User Model:
##
## Test statistic 196.271
## Degrees of freedom 174
## P-value (Unknown) NA
## Test statistic for each group:
## late 68.678
## early 127.593
##
## Model Test Baseline Model:
##
## Test statistic 1902.352
## Degrees of freedom 210
## P-value NA
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.987
## Tucker-Lewis Index (TLI) 0.984
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.026
## 90 Percent confidence interval - lower 0.000
## 90 Percent confidence interval - upper 0.044
## P-value H_0: RMSEA <= 0.050 0.991
## P-value H_0: RMSEA >= 0.080 0.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.079
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Unstructured
##
##
## Group 1 [late]:
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia =~
## npb1 1.000 0.727 0.732
## npb4 0.792 0.128 6.184 0.000 0.576 0.628
## npb7 -0.045 0.076 -0.588 0.557 -0.033 -0.050
## npb10 0.791 0.128 6.181 0.000 0.575 0.575
## npb14 0.547 0.102 5.349 0.000 0.398 0.441
## competencia =~
## npb2 1.000 0.604 0.688
## npb5 1.112 0.156 7.115 0.000 0.671 0.687
## npb8 0.780 0.123 6.354 0.000 0.471 0.558
## npb11 0.664 0.113 5.868 0.000 0.401 0.506
## npb13 0.997 0.144 6.939 0.000 0.601 0.764
## npb15 0.946 0.138 6.834 0.000 0.571 0.698
## relacion =~
## npb3 1.000 0.700 0.834
## npb6 0.839 0.140 5.996 0.000 0.588 0.704
## npb9 0.946 0.155 6.089 0.000 0.663 0.726
## npb12 0.767 0.131 5.865 0.000 0.537 0.706
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia ~~
## competencia 0.207 0.033 6.270 0.000 0.471 0.471
## relacion 0.179 0.035 5.129 0.000 0.352 0.352
## competencia ~~
## relacion 0.121 0.025 4.899 0.000 0.287 0.287
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 2.780 0.077 35.932 0.000 2.780 2.798
## .npb4 1.821 0.077 23.544 0.000 1.821 1.985
## .npb7 4.637 0.077 59.937 0.000 4.637 7.119
## .npb10 3.226 0.077 41.702 0.000 3.226 3.222
## .npb14 1.923 0.077 24.852 0.000 1.923 2.131
## .npb2 3.411 0.077 44.087 0.000 3.411 3.886
## .npb5 3.619 0.077 46.780 0.000 3.619 3.702
## .npb8 3.577 0.077 46.242 0.000 3.577 4.238
## .npb11 3.839 0.077 49.627 0.000 3.839 4.850
## .npb13 3.119 0.077 40.317 0.000 3.119 3.960
## .npb15 3.548 0.077 45.857 0.000 3.548 4.339
## .npb3 4.024 0.077 52.012 0.000 4.024 4.789
## .npb6 3.905 0.077 50.473 0.000 3.905 4.676
## .npb9 3.774 0.077 48.781 0.000 3.774 4.130
## .npb12 3.958 0.077 51.166 0.000 3.958 5.202
## autonomia 0.000 0.000 0.000
## competencia 0.000 0.000 0.000
## relacion 0.000 0.000 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 0.458 0.131 3.489 0.000 0.458 0.464
## .npb4 0.510 0.108 4.739 0.000 0.510 0.606
## .npb7 0.423 0.077 5.464 0.000 0.423 0.998
## .npb10 0.672 0.108 6.246 0.000 0.672 0.670
## .npb14 0.656 0.091 7.236 0.000 0.656 0.805
## .npb2 0.406 0.105 3.877 0.000 0.406 0.527
## .npb5 0.505 0.112 4.493 0.000 0.505 0.528
## .npb8 0.491 0.093 5.263 0.000 0.491 0.689
## .npb11 0.466 0.089 5.262 0.000 0.466 0.744
## .npb13 0.259 0.105 2.474 0.013 0.259 0.417
## .npb15 0.342 0.102 3.372 0.001 0.342 0.512
## .npb3 0.215 0.128 1.682 0.093 0.215 0.305
## .npb6 0.352 0.110 3.188 0.001 0.352 0.504
## .npb9 0.395 0.122 3.252 0.001 0.395 0.474
## .npb12 0.291 0.104 2.793 0.005 0.291 0.502
## autonomia 0.529 0.106 4.980 0.000 1.000 1.000
## competencia 0.364 0.071 5.157 0.000 1.000 1.000
## relacion 0.491 0.102 4.807 0.000 1.000 1.000
##
##
## Group 2 [early]:
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia =~
## npb1 1.000 0.670 0.556
## npb4 0.810 0.130 6.249 0.000 0.543 0.553
## npb7 0.130 0.080 1.633 0.102 0.087 0.132
## npb10 0.629 0.111 5.688 0.000 0.422 0.429
## npb14 1.080 0.168 6.436 0.000 0.724 0.660
## competencia =~
## npb2 1.000 0.708 0.811
## npb5 0.781 0.090 8.661 0.000 0.554 0.618
## npb8 0.977 0.105 9.313 0.000 0.692 0.696
## npb11 0.746 0.088 8.492 0.000 0.528 0.641
## npb13 0.973 0.105 9.305 0.000 0.689 0.759
## npb15 0.920 0.100 9.170 0.000 0.652 0.724
## relacion =~
## npb3 1.000 0.562 0.718
## npb6 1.094 0.165 6.618 0.000 0.615 0.688
## npb9 1.231 0.183 6.720 0.000 0.691 0.795
## npb12 1.166 0.174 6.685 0.000 0.655 0.843
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## autonomia ~~
## competencia 0.148 0.024 6.073 0.000 0.312 0.312
## relacion 0.113 0.023 4.857 0.000 0.299 0.299
## competencia ~~
## relacion 0.126 0.021 6.070 0.000 0.317 0.317
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 2.910 0.071 40.932 0.000 2.910 2.411
## .npb4 1.894 0.071 26.652 0.000 1.894 1.930
## .npb7 4.683 0.071 65.887 0.000 4.683 7.063
## .npb10 3.251 0.071 45.739 0.000 3.251 3.307
## .npb14 2.055 0.071 28.914 0.000 2.055 1.873
## .npb2 3.618 0.071 50.900 0.000 3.618 4.143
## .npb5 3.975 0.071 55.920 0.000 3.975 4.437
## .npb8 3.533 0.071 49.698 0.000 3.533 3.555
## .npb11 3.884 0.071 54.647 0.000 3.884 4.716
## .npb13 3.271 0.071 46.022 0.000 3.271 3.602
## .npb15 3.688 0.071 51.890 0.000 3.688 4.094
## .npb3 4.317 0.071 60.727 0.000 4.317 5.521
## .npb6 4.065 0.071 57.192 0.000 4.065 4.549
## .npb9 3.970 0.071 55.849 0.000 3.970 4.564
## .npb12 4.166 0.071 58.606 0.000 4.166 5.362
## autonomia 0.000 0.000 0.000
## competencia 0.000 0.000 0.000
## relacion 0.000 0.000 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .npb1 1.007 0.115 8.791 0.000 1.007 0.691
## .npb4 0.669 0.097 6.887 0.000 0.669 0.694
## .npb7 0.432 0.072 6.028 0.000 0.432 0.983
## .npb10 0.789 0.086 9.189 0.000 0.789 0.816
## .npb14 0.680 0.124 5.483 0.000 0.680 0.565
## .npb2 0.261 0.101 2.589 0.010 0.261 0.342
## .npb5 0.496 0.088 5.631 0.000 0.496 0.618
## .npb8 0.509 0.099 5.135 0.000 0.509 0.515
## .npb11 0.399 0.086 4.620 0.000 0.399 0.589
## .npb13 0.350 0.099 3.537 0.000 0.350 0.424
## .npb15 0.386 0.096 4.044 0.000 0.386 0.476
## .npb3 0.296 0.097 3.057 0.002 0.296 0.484
## .npb6 0.421 0.103 4.093 0.000 0.421 0.527
## .npb9 0.279 0.113 2.457 0.014 0.279 0.368
## .npb12 0.175 0.108 1.617 0.106 0.175 0.290
## autonomia 0.450 0.090 5.005 0.000 1.000 1.000
## competencia 0.502 0.071 7.044 0.000 1.000 1.000
## relacion 0.315 0.066 4.797 0.000 1.000 1.000
El modelo que incluye a la edad como variable de agrupamiento posee buenos indicadores de ajuste, lo cual da cuenta de una adecuada invarianza configural. Sin embargo, la carga factorial del ítem 7 no fue significativa en ninguno de los grupos y algunas varianzas poseen significación marginal.
cfa_metric <- cfa(mod, data=datos, estimator="ULS", group = "edad_recod", group.equal="loadings")
cfa_scalar <- cfa(mod, data=datos, estimator="ULS", group = "edad_recod", group.equal=c("loadings","intercepts"))
cfa_strict <- cfa(mod, data=datos, estimator="ULS", group = "edad_recod", group.equal=c("loadings","intercepts", "residuals"))
summary(compareFit(cfa_config, cfa_metric, cfa_scalar, cfa_strict))
## ################### Nested Model Comparison #########################
##
## Chi-Squared Difference Test
##
## Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
## cfa_config 174 196.27
## cfa_metric 186 227.11 30.839 0.092495 12 0.002085 **
## cfa_scalar 198 236.64 9.530 0.000000 12 0.657127
## cfa_strict 213 272.23 35.591 0.086492 15 0.002024 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ####################### Model Fit Indices ###########################
## chisq df pvalue rmsea cfi tli srmr
## cfa_config 196.271† 174 NA .026† .987† .984† .079†
## cfa_metric 227.110 186 NA .035 .976 .973 .085
## cfa_scalar 236.640 198 NA .033 .977 .976 .086
## cfa_strict 272.231 213 NA .039 .965 .965 .091
##
## ################## Differences in Fit Indices #######################
## df rmsea cfi tli srmr
## cfa_metric - cfa_config 12 0.008 -0.011 -0.012 0.006
## cfa_scalar - cfa_metric 12 -0.002 0.001 0.003 0.001
## cfa_strict - cfa_scalar 15 0.006 -0.012 -0.010 0.005
No hay invarianza métrica de acuerdo a la edad (y por lo tanto, ninguna de las otras).
Validez: Correlación con constructos asociados (Validez Convergente)
base_cor <- data.frame(N_autonomia=datos$nautonomia,
N_competencia=datos$ncompetencia,
N_relacion=datos$nrelacion,
Reg_autonoma=datos$regautonoma,
Reg_control=datos$regcontrolada,
Compromiso=datos$compromiso)
#GGally::ggpairs(base_cor)
Plot_Corr <- base_cor %>% ggcorr(size=2.75,
hjust=.5,
nbreaks=7,
label = T,
label_alpha = F,
label_round = 3,
label_size = 3,
low="#b32323",
high = "#146f76")+
geom_segment(aes(x=3.5,xend=3.5,y=3.5,yend=0.5), color="#61626b", size=1)+
geom_segment(aes(x=3.5,xend=6.5,y=3.5,yend=3.5), color="#61626b", size=1)+
ggtitle("Correlaciones entre NPB y constructos asociados")
Plot_Corr
Todas las correlaciones fueron estadísticamente significativas (p < .001), a excepción de la correlación entre la satisfacción de la necesidad de autonomía y la regulación controlada.
Confiabilidad: Alfa, Omega, CR y AVE
Se considerará un buen ajuste si los valores de CR son mayores que .70 (Bagozzi y Yi, 1988; Hair et al., 2010) y los de AVE, mayores que .50 (Fornell y Larcker, 1981).
tabla_conf <- data.frame(Factor=c("Autonomía","Competencia","Relación"),
alfa=c(round(psych::alpha(datos[20+c(1,4,7,10,14)])$total$std.alpha,3),
round(psych::alpha(datos[20+c(2,5,8,11,13,15)])$total$std.alpha,3),
round(psych::alpha(datos[20+c(3,6,9,12)])$total$std.alpha,3)),
omega=c(round(psych::omega(datos[20+c(1,4,7,10,14)], plot = F)$omega_h,3),
round(psych::omega(datos[20+c(2,5,8,11,13,15)], plot = F)$omega_h,3),
round(psych::omega(datos[20+c(3,6,9,12)], plot = F)$omega_h,3)),
CR=round(semTools::compRelSEM(fit_uls),3),
AVE=round(semTools::AVE(fit_uls),3))
Some items ( npb7 ) were negatively correlated with the total scale
and probably should be reversed.
To do this, run the function again with the ‘check.keys=TRUE’ option
rownames(tabla_conf) <- NULL
kable(tabla_conf,
"html",
booktabs = T,
align = c("c"),
caption = "Tabla 2. Índices de confiabilidad") %>%
kable_styling(full_width = F,
position = "center", font_size = 12)
| Factor | alfa | omega | CR | AVE |
|---|---|---|---|---|
| Autonomía | 0.523 | 0.600 | 0.669 | 0.296 |
| Competencia | 0.838 | 0.737 | 0.838 | 0.466 |
| Relación | 0.850 | 0.844 | 0.842 | 0.575 |
La confiabilidad asociada al factor necesidad de autonomía resultó baja (alfa=0.52, omega=0.60, CR=0.67 y AVE=0.30), mientras que en necesidad de competencia (alfa=0.84, omega=0.74, CR=0.84 y AVE=0.47) y de relación (alfa=0.85, omega=0.84, CR=0.84 y AVE=0.58) fue adecuada. El ítem 7 pareciera estar relacionado negativamente con el resto de la escala.
tabla_conf <- data.frame(Factor=c("Autonomía","Competencia","Relación"),
alfa=c(round(psych::alpha(datos[20+c(1,4,10,14)])$total$std.alpha,3),
round(psych::alpha(datos[20+c(2,5,8,11,13,15)])$total$std.alpha,3),
round(psych::alpha(datos[20+c(3,6,9,12)])$total$std.alpha,3)),
omega=c(round(psych::omega(datos[20+c(1,4,10,14)], plot = F)$omega_h,3),
round(psych::omega(datos[20+c(2,5,8,11,13,15)], plot = F)$omega_h,3),
round(psych::omega(datos[20+c(3,6,9,12)], plot = F)$omega_h,3)),
CR=round(semTools::compRelSEM(fit_uls2),3),
AVE=round(semTools::AVE(fit_uls2),3))
rownames(tabla_conf) <- NULL
kable(tabla_conf,
"html",
booktabs = T,
align = c("c"),
caption = "Tabla 3. Índices de confiabilidad sin ítem 7") %>%
kable_styling(full_width = F,
position = "center", font_size = 12)
| Factor | alfa | omega | CR | AVE |
|---|---|---|---|---|
| Autonomía | 0.661 | 0.658 | 0.664 | 0.330 |
| Competencia | 0.838 | 0.737 | 0.838 | 0.466 |
| Relación | 0.850 | 0.844 | 0.842 | 0.575 |
Los indicadores de confiabilidad de la necesidad de autonomía mejoran, pero tampoco una locura.
Confiabilidad: estabilidad en las mediciones
Se realizaron pruebas t de Student para medidas apareadas para evaluar la estabilidad de las mediciones. También se evaluaron correlaciones entre las medidas.
t1 <- base_total[base_total$tiempo==1,c(1,5:7)]
t2 <- base_total[base_total$tiempo==2,c(1,5:7)]
colnames(t1) <- c("id","nautonomia_t1","ncompetencia_t1","nrelacion_t1")
base_estab <- merge(t2,t1, by="id")
base_estab <- base_estab[complete.cases(base_estab),]
Autonomía
t.test(base_estab$nautonomia_t1, base_estab$nautonomia, paired = T)
##
## Paired t-test
##
## data: base_estab$nautonomia_t1 and base_estab$nautonomia
## t = NaN, df = 334, p-value = NA
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## NaN NaN
## sample estimates:
## mean of the differences
## 0
Existen diferencias significativas entre T1 y T2 en la satisfacción de la necesidad de autonomía (p = .033), pero con un tamaño de efecto bajo (\(\Delta\) = 0.07; \(IC_{95}\) = [0.01; 0.13]).
cor.test(base_estab$nautonomia_t1, base_estab$nautonomia)
##
## Pearson's product-moment correlation
##
## data: base_estab$nautonomia_t1 and base_estab$nautonomia
## t = Inf, df = 333, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 1 1
## sample estimates:
## cor
## 1
El coeficiente de correlación de Pearson fue de 0.53, bastante bajo para ser mediciones con un par de meses de diferencia (aunque sabemos que cambia mucho el clima motivacional a mitad de la temporada y al final).
Competencia
t.test(base_estab$ncompetencia_t1, base_estab$ncompetencia, paired = T)
##
## Paired t-test
##
## data: base_estab$ncompetencia_t1 and base_estab$ncompetencia
## t = 10.856, df = 334, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 0.4412022 0.6364663
## sample estimates:
## mean of the differences
## 0.5388343
Existen diferencias significativas entre T1 y T2 en la satisfacción de la necesidad de competencia (p = .029), pero con un tamaño de efecto bajo (\(\Delta\) = 0.07; \(IC_{95}\) = [0.01; 0.14]).
cor.test(base_estab$ncompetencia_t1, base_estab$ncompetencia)
##
## Pearson's product-moment correlation
##
## data: base_estab$ncompetencia_t1 and base_estab$ncompetencia
## t = 4.4403, df = 333, p-value = 1.224e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.1326342 0.3350928
## sample estimates:
## cor
## 0.2364281
Un poco mejor que autonomía (r = 0.62).
Relación
t.test(base_estab$nrelacion_t1, base_estab$nrelacion, paired = T)
##
## Paired t-test
##
## data: base_estab$nrelacion_t1 and base_estab$nrelacion
## t = 15.361, df = 334, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 0.6217816 0.8044179
## sample estimates:
## mean of the differences
## 0.7130997
Existen diferencias significativas entre T1 y T2 en la satisfacción de la necesidad de autonomía (p < .001), pero con un tamaño de efecto bajo-moderado (\(\Delta\) = 0.18; \(IC_{95}\) = [0.11; 0.25]).
cor.test(base_estab$nrelacion_t1, base_estab$nrelacion)
##
## Pearson's product-moment correlation
##
## data: base_estab$nrelacion_t1 and base_estab$nrelacion
## t = 3.1259, df = 333, p-value = 0.001929
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.06282265 0.27108962
## sample estimates:
## cor
## 0.1688401
De nuevo, un poco baja para ser medidas repetidas (r = 0.56).
Referencias
Bagozzi, R. P., & Yi, Y. (1988). On the evaluation of structural equation models. Journal of the Academy of Marketing Science, 16(1), 74–94. https://doi.org/10.1007/BF02723327
Forero, C. G., Maydeu-Olivares, A., & Gallardo-Pujol, D. (2009). Factor analysis with ordinal indicator: A Monte Carlo Study Comparing DWLS and ULS Estimation. Structural Equation Modeling, 16, 625–641.
Fornell, C., & Larcker, D. F. (1981). Evaluating structural equation models with unobservable variables and measurement error. Journal of Marketing Research, 18, 39–50. https://doi.org/10.2307/3151312
Hair, J. F., Black, W. C., Babin, B. J., & Anderson, R. E. (2010). Multivariate Data Analysis. Pearson.
Hu, L. T., & Bentler, P. M. (1999). Cutoff criteria for fit indexes in covariance structure analysis: Conventional criteria versus new alternatives. Structural Equation Modeling, 6(1), 1–55. https://doi.org/10.1080/10705519909540118