NPB y consumo

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)
Tabla 1. Estadísticos descriptivos y cargas factoriales estandarizadas
Item M (DE) Asimetría Kurtosis Carga Factorial
  1. Pude decidir los ejercicios que estuve practicando / entrenando
2.83 (1.13) -0.05 -0.66 0.60
  1. Creo que vengo siendo bastante bueno/a en este deporte
3.52 (0.89) -0.50 0.30 0.72
  1. Sentí que mis compañeros/as me apoyan
4.18 (0.85) -1.23 2.13 0.77
  1. Se tuvo en cuenta mi opinión a la hora de decidir las habilidades / técnicas / ejercicios que vengo entrenando
1.86 (0.95) 1.14 1.16 0.59
  1. Estoy satisfecho/a con lo que vengo haciendo
3.83 (0.95) -0.68 0.14 0.67
  1. Sentí que mis compañeros/as me comprenden
3.99 (0.89) -0.93 1.11 0.69
  1. Jugué mi deporte porque yo lo decido
4.66 (0.66) -2.45 7.76 0.09
  1. Me sentí habilidoso/a
3.54 (0.94) -0.41 -0.05 0.62
  1. Sentí que mis compañeros/as escuchan mi opinión
3.88 (0.9) -0.73 0.56 0.78
  1. Me sentí bastante libre para hacer las cosas a mi manera
3.23 (1) -0.25 -0.34 0.49
  1. Me sentí bastante competente (“creo que puedo hacerlo”
3.86 (0.85) -0.71 0.70 0.60
  1. Sentí que mis compañeros/as me valoran
4.08 (0.8) -1.13 2.36 0.80
  1. Sentí que hice las cosas muy bien
3.2 (0.86) -0.05 0.04 0.76
  1. Pude elegir algunas cosas de las que hacemos en los entrenamientos
1.99 (1.01) 0.98 0.62 0.58
  1. Creo que vengo haciendo las cosas en los entrenamientos y partidos bastante bien
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)
Tabla 2. Índices de confiabilidad
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)
Tabla 3. Índices de confiabilidad sin ítem 7
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