library(lavaan)
library(lavaanPlot)
library(readxl)

Ejercicio 1. Estudio de Holzinger y Swineford (1939)

Contexto

La base de datos recoge los resultados de 301 estudiantes de séptimo y octavo grado de dos escuelas, Pasteur y Grant-White, a los que se les aplicaron nueve pruebas de aptitud mental. La idea del estudio era comprobar si esas nueve pruebas medían en realidad tres habilidades distintas y no nueve cosas separadas.

La tabla incluye los siguientes datos:

  • x1: Percepción visual
  • x2: Cubos
  • x3: Figuras romboidales
  • x4: Comprensión de párrafos
  • x5: Completar oraciones
  • x6: Significado de palabras
  • x7: Sumas con tiempo límite
  • x8: Conteo de puntos con tiempo límite
  • x9: Discriminación de letras rectas y curvas con tiempo límite

Importar la base de datos

df1 <- HolzingerSwineford1939

Entender la base de datos

summary(df1)
##        id             sex            ageyr        agemo       
##  Min.   :  1.0   Min.   :1.000   Min.   :11   Min.   : 0.000  
##  1st Qu.: 82.0   1st Qu.:1.000   1st Qu.:12   1st Qu.: 2.000  
##  Median :163.0   Median :2.000   Median :13   Median : 5.000  
##  Mean   :176.6   Mean   :1.515   Mean   :13   Mean   : 5.375  
##  3rd Qu.:272.0   3rd Qu.:2.000   3rd Qu.:14   3rd Qu.: 8.000  
##  Max.   :351.0   Max.   :2.000   Max.   :16   Max.   :11.000  
##                                                               
##          school        grade             x1               x2       
##  Grant-White:145   Min.   :7.000   Min.   :0.6667   Min.   :2.250  
##  Pasteur    :156   1st Qu.:7.000   1st Qu.:4.1667   1st Qu.:5.250  
##                    Median :7.000   Median :5.0000   Median :6.000  
##                    Mean   :7.477   Mean   :4.9358   Mean   :6.088  
##                    3rd Qu.:8.000   3rd Qu.:5.6667   3rd Qu.:6.750  
##                    Max.   :8.000   Max.   :8.5000   Max.   :9.250  
##                    NAs    :1                                       
##        x3              x4              x5              x6        
##  Min.   :0.250   Min.   :0.000   Min.   :1.000   Min.   :0.1429  
##  1st Qu.:1.375   1st Qu.:2.333   1st Qu.:3.500   1st Qu.:1.4286  
##  Median :2.125   Median :3.000   Median :4.500   Median :2.0000  
##  Mean   :2.250   Mean   :3.061   Mean   :4.341   Mean   :2.1856  
##  3rd Qu.:3.125   3rd Qu.:3.667   3rd Qu.:5.250   3rd Qu.:2.7143  
##  Max.   :4.500   Max.   :6.333   Max.   :7.000   Max.   :6.1429  
##                                                                  
##        x7              x8               x9       
##  Min.   :1.304   Min.   : 3.050   Min.   :2.778  
##  1st Qu.:3.478   1st Qu.: 4.850   1st Qu.:4.750  
##  Median :4.087   Median : 5.500   Median :5.417  
##  Mean   :4.186   Mean   : 5.527   Mean   :5.374  
##  3rd Qu.:4.913   3rd Qu.: 6.100   3rd Qu.:6.083  
##  Max.   :7.435   Max.   :10.000   Max.   :9.250  
## 
str(df1)
## 'data.frame':    301 obs. of  15 variables:
##  $ id    : int  1 2 3 4 5 6 7 8 9 11 ...
##  $ sex   : int  1 2 2 1 2 2 1 2 2 2 ...
##  $ ageyr : int  13 13 13 13 12 14 12 12 13 12 ...
##  $ agemo : int  1 7 1 2 2 1 1 2 0 5 ...
##  $ school: Factor w/ 2 levels "Grant-White",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ grade : int  7 7 7 7 7 7 7 7 7 7 ...
##  $ x1    : num  3.33 5.33 4.5 5.33 4.83 ...
##  $ x2    : num  7.75 5.25 5.25 7.75 4.75 5 6 6.25 5.75 5.25 ...
##  $ x3    : num  0.375 2.125 1.875 3 0.875 ...
##  $ x4    : num  2.33 1.67 1 2.67 2.67 ...
##  $ x5    : num  5.75 3 1.75 4.5 4 3 6 4.25 5.75 5 ...
##  $ x6    : num  1.286 1.286 0.429 2.429 2.571 ...
##  $ x7    : num  3.39 3.78 3.26 3 3.7 ...
##  $ x8    : num  5.75 6.25 3.9 5.3 6.3 6.65 6.2 5.15 4.65 4.55 ...
##  $ x9    : num  6.36 7.92 4.42 4.86 5.92 ...

Estructurar el modelo

Las tres primeras pruebas se agrupan en una habilidad visual, las tres siguientes en una habilidad verbal y las tres últimas en una habilidad de velocidad. Ninguna de las tres se observa de forma directa, por eso se declaran como variables latentes con =~.

modelo1 <- '
# Variables latentes
visual   =~ x1 + x2 + x3
textual  =~ x4 + x5 + x6
velocidad =~ x7 + x8 + x9
'

Generar el Modelo de Análisis Factorial Confirmatorio (AFC)

fit1 <- cfa(modelo1, data = df1)
summary(fit1, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.7-2 ended normally after 35 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        21
## 
##   Number of observations                           301
## 
## Model Test User Model:
##                                                       
##   Test statistic                                85.306
##   Degrees of freedom                                24
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                               918.852
##   Degrees of freedom                                36
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.931
##   Tucker-Lewis Index (TLI)                       0.896
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -3737.745
##   Loglikelihood unrestricted model (H1)      -3695.092
##                                                       
##   Akaike (AIC)                                7517.490
##   Bayesian (BIC)                              7595.339
##   Sample-size adjusted Bayesian (SABIC)       7528.739
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.092
##   90 Percent confidence interval - lower         0.071
##   90 Percent confidence interval - upper         0.114
##   P-value H_0: RMSEA <= 0.050                    0.001
##   P-value H_0: RMSEA >= 0.080                    0.840
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.065
## 
## Goodness of Fit Index:
## 
##   Goodness of Fit Index (GFI)                    0.959
##   90 Percent confidence interval - lower         0.939
##   90 Percent confidence interval - upper         0.976
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   visual =~                                                             
##     x1                1.000                               0.900    0.772
##     x2                0.554    0.100    5.554    0.000    0.498    0.424
##     x3                0.729    0.109    6.685    0.000    0.656    0.581
##   textual =~                                                            
##     x4                1.000                               0.990    0.852
##     x5                1.113    0.065   17.014    0.000    1.102    0.855
##     x6                0.926    0.055   16.703    0.000    0.917    0.838
##   velocidad =~                                                          
##     x7                1.000                               0.619    0.570
##     x8                1.180    0.165    7.152    0.000    0.731    0.723
##     x9                1.082    0.151    7.155    0.000    0.670    0.665
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   visual ~~                                                             
##     textual           0.408    0.074    5.552    0.000    0.459    0.459
##     velocidad         0.262    0.056    4.660    0.000    0.471    0.471
##   textual ~~                                                            
##     velocidad         0.173    0.049    3.518    0.000    0.283    0.283
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .x1                0.549    0.114    4.833    0.000    0.549    0.404
##    .x2                1.134    0.102   11.146    0.000    1.134    0.821
##    .x3                0.844    0.091    9.317    0.000    0.844    0.662
##    .x4                0.371    0.048    7.779    0.000    0.371    0.275
##    .x5                0.446    0.058    7.642    0.000    0.446    0.269
##    .x6                0.356    0.043    8.277    0.000    0.356    0.298
##    .x7                0.799    0.081    9.823    0.000    0.799    0.676
##    .x8                0.488    0.074    6.573    0.000    0.488    0.477
##    .x9                0.566    0.071    8.003    0.000    0.566    0.558
##     visual            0.809    0.145    5.564    0.000    1.000    1.000
##     textual           0.979    0.112    8.737    0.000    1.000    1.000
##     velocidad         0.384    0.086    4.451    0.000    1.000    1.000
lavaanPlot(fit1, coefs = TRUE, cov = TRUE)

Conclusión

Las nueve pruebas sí se acomodan en tres habilidades. Todas las cargas resultan significativas y en la versión estandarizada casi todas quedan por arriba de 0.4, así que cada prueba aporta a la habilidad que le corresponde. Las cargas más flojas son las de x2 y x9, que son las pruebas que menos se parecen al resto de su grupo.

El ajuste todavía no es fino. La chi cuadrada sale significativa y el RMSEA queda por arriba de lo aceptable, así que hay relaciones entre pruebas que el modelo de tres factores no está recogiendo. La estructura de fondo se sostiene, pero el modelo admite depuración.

Las tres habilidades correlacionan entre sí, la visual con la de velocidad más que con la verbal. Un alumno bueno en una tiende a ser bueno en las otras, pero no lo suficiente como para decir que se trata de una sola inteligencia general.

Ejercicio 2. Democracia Política e Industrialización

Contexto

La base de datos contiene distintas mediciones sobre la democracia política e industrialización en países de desarrollo durante 1960 y 1965.

La tabla incluye los siguientes datos:

  • y1: Calificaciones sobre libertad de prensa en 1960
  • y2: Libertad de la oposición política en 1960
  • y3: Imparcialidad de elecciones en 1960
  • y4: Eficacia de la legislatura electa en 1960
  • y5: Calificaciones sobre libertad de prensa en 1965
  • y6: Libertad de la oposición política en 1965
  • y7: Imparcialidad de elecciones en 1965
  • y8: Eficacia de la legislatura electa en 1965
  • x1: PIB per cápita en 1960
  • x2: Consumo de energía inanimada per cápita en 1960
  • x3: Porcentaje de la fuerza laboral en la industria en 1960

Importar la base de datos

df2 <- PoliticalDemocracy

Entender la base de datos

summary(df2)
##        y1               y2               y3               y4        
##  Min.   : 1.250   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.: 2.900   1st Qu.: 0.000   1st Qu.: 3.767   1st Qu.: 1.581  
##  Median : 5.400   Median : 3.333   Median : 6.667   Median : 3.333  
##  Mean   : 5.465   Mean   : 4.256   Mean   : 6.563   Mean   : 4.453  
##  3rd Qu.: 7.500   3rd Qu.: 8.283   3rd Qu.:10.000   3rd Qu.: 6.667  
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.000  
##        y5               y6               y7               y8        
##  Min.   : 0.000   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.: 3.692   1st Qu.: 0.000   1st Qu.: 3.478   1st Qu.: 1.301  
##  Median : 5.000   Median : 2.233   Median : 6.667   Median : 3.333  
##  Mean   : 5.136   Mean   : 2.978   Mean   : 6.196   Mean   : 4.043  
##  3rd Qu.: 7.500   3rd Qu.: 4.207   3rd Qu.:10.000   3rd Qu.: 6.667  
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.000  
##        x1              x2              x3       
##  Min.   :3.784   Min.   :1.386   Min.   :1.002  
##  1st Qu.:4.477   1st Qu.:3.663   1st Qu.:2.300  
##  Median :5.075   Median :4.963   Median :3.568  
##  Mean   :5.054   Mean   :4.792   Mean   :3.558  
##  3rd Qu.:5.515   3rd Qu.:5.830   3rd Qu.:4.523  
##  Max.   :6.737   Max.   :7.872   Max.   :6.425
str(df2)
## 'data.frame':    75 obs. of  11 variables:
##  $ y1: num  2.5 1.25 7.5 8.9 10 7.5 7.5 7.5 2.5 10 ...
##  $ y2: num  0 0 8.8 8.8 3.33 ...
##  $ y3: num  3.33 3.33 10 10 10 ...
##  $ y4: num  0 0 9.2 9.2 6.67 ...
##  $ y5: num  1.25 6.25 8.75 8.91 7.5 ...
##  $ y6: num  0 1.1 8.09 8.13 3.33 ...
##  $ y7: num  3.73 6.67 10 10 10 ...
##  $ y8: num  3.333 0.737 8.212 4.615 6.667 ...
##  $ x1: num  4.44 5.38 5.96 6.29 5.86 ...
##  $ x2: num  3.64 5.06 6.26 7.57 6.82 ...
##  $ x3: num  2.56 3.57 5.22 6.27 4.57 ...

Estructurar el modelo

modelo2 <- '
# Variables latentes
democracia1960 =~ y1 + y2 + y3 + y4
democracia1965 =~ y5 + y6 + y7 + y8
industria1960  =~ x1 + x2 + x3

# Regresiones
democracia1960 ~ industria1960
democracia1965 ~ industria1960 + democracia1960

# Varianzas y covarianzas

# Intercepto
'

Generar el Modelo de Ecuaciones Estructurales (SEM)

fit2 <- sem(modelo2, data = df2)
summary(fit2, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.7-2 ended normally after 42 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        25
## 
##   Number of observations                            75
## 
## Model Test User Model:
##                                                       
##   Test statistic                                72.462
##   Degrees of freedom                                41
##   P-value (Chi-square)                           0.002
## 
## Model Test Baseline Model:
## 
##   Test statistic                               730.654
##   Degrees of freedom                                55
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.953
##   Tucker-Lewis Index (TLI)                       0.938
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -1564.959
##   Loglikelihood unrestricted model (H1)      -1528.728
##                                                       
##   Akaike (AIC)                                3179.918
##   Bayesian (BIC)                              3237.855
##   Sample-size adjusted Bayesian (SABIC)       3159.062
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.101
##   90 Percent confidence interval - lower         0.061
##   90 Percent confidence interval - upper         0.139
##   P-value H_0: RMSEA <= 0.050                    0.021
##   P-value H_0: RMSEA >= 0.080                    0.827
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.055
## 
## Goodness of Fit Index:
## 
##   Goodness of Fit Index (GFI)                    0.933
##   90 Percent confidence interval - lower         0.879
##   90 Percent confidence interval - upper         0.976
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                     Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   democracia1960 =~                                                      
##     y1                 1.000                               2.201    0.845
##     y2                 1.354    0.175    7.755    0.000    2.980    0.760
##     y3                 1.044    0.150    6.961    0.000    2.298    0.705
##     y4                 1.300    0.138    9.412    0.000    2.860    0.860
##   democracia1965 =~                                                      
##     y5                 1.000                               2.084    0.803
##     y6                 1.258    0.164    7.651    0.000    2.623    0.783
##     y7                 1.282    0.158    8.137    0.000    2.673    0.819
##     y8                 1.310    0.154    8.529    0.000    2.730    0.847
##   industria1960 =~                                                       
##     x1                 1.000                               0.669    0.920
##     x2                 2.182    0.139   15.714    0.000    1.461    0.973
##     x3                 1.819    0.152   11.956    0.000    1.218    0.872
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   democracia1960 ~                                                      
##     industria1960     1.474    0.392    3.763    0.000    0.448    0.448
##   democracia1965 ~                                                      
##     industria1960     0.453    0.220    2.064    0.039    0.146    0.146
##     democracia1960    0.864    0.113    7.671    0.000    0.913    0.913
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .y1                1.942    0.395    4.910    0.000    1.942    0.286
##    .y2                6.490    1.185    5.479    0.000    6.490    0.422
##    .y3                5.340    0.943    5.662    0.000    5.340    0.503
##    .y4                2.887    0.610    4.731    0.000    2.887    0.261
##    .y5                2.390    0.447    5.351    0.000    2.390    0.355
##    .y6                4.343    0.796    5.456    0.000    4.343    0.387
##    .y7                3.510    0.668    5.252    0.000    3.510    0.329
##    .y8                2.940    0.586    5.019    0.000    2.940    0.283
##    .x1                0.082    0.020    4.180    0.000    0.082    0.154
##    .x2                0.118    0.070    1.689    0.091    0.118    0.053
##    .x3                0.467    0.090    5.174    0.000    0.467    0.240
##    .democracia1960    3.872    0.893    4.338    0.000    0.799    0.799
##    .democracia1965    0.115    0.200    0.575    0.565    0.026    0.026
##     industria1960     0.448    0.087    5.169    0.000    1.000    1.000
lavaanPlot(fit2, coefs = TRUE, cov = TRUE)

Conclusión

La democracia cuenta con 8 derechos y libertades políticas:

  1. Libertad de formar organizaciones y unirse a ellas.
  2. Libertad de expresión.
  3. Derecho al voto.
  4. Derecho de elegir cargos públicos.
  5. Derecho de los líderes a competir por votos.
  6. Libertad de tener fuentes alternativas de información.
  7. Derecho de elecciones libres y justas.
  8. Derecho de instituciones para hacer que las políticas gubernamentales dependan de los votos y otras expresiones de preferencia.

En el libro “Why nations fail?” los autores concluyen que son las instituciones del país las que determinan el éxito o el fracaso.

El modelo apunta en esa misma dirección. La industrialización de 1960 empuja el nivel de democracia de ese mismo año y también el de 1965, pero el efecto directo sobre 1965 es chico. Lo que más pesa para explicar la democracia de 1965 es la democracia que el país ya tenía en 1960. En otras palabras, el ingreso y la industria abren la puerta, lo que mantiene el nivel son las instituciones que ya estaban puestas.

Las cargas de los tres constructos son altas y significativas, así que las cuatro preguntas de cada año sí miden lo mismo y las tres variables económicas sí miden industrialización. El ajuste se queda a medias. El CFI de 0.95 está bien, pero la chi cuadrada sale significativa y el RMSEA de 0.10 queda arriba de lo aceptable, así que hay algo que el modelo no está recogiendo. La explicación más razonable es que son las mismas cuatro preguntas aplicadas en 1960 y en 1965, así que los errores de una misma pregunta en los dos años se parecen entre sí y el modelo no tiene cómo representarlo.

Ejercicio 3. Bienestar de los Colaboradores

Contexto

La base de datos reúne las respuestas de colaboradores a tres instrumentos distintos, medidos todos en escala tipo Likert.

El primero mide las experiencias de recuperación, es decir, qué tanto percibe una persona que lo que hace fuera del horario laboral le devuelve la energía para aguantar el estrés y las presiones del trabajo. Se divide en cuatro dominios:

  • RPD: Desapego psicológico, sentirse despejado del contexto laboral y no estar contestando correos, llamadas o mensajes de trabajo.
  • RRE: Relajación, actividades que bajan la activación del sistema nervioso y suben el afecto positivo, como meditar o caminar.
  • RMA: Dominio, actividades retadoras fuera del trabajo que dan la oportunidad de aprender algo nuevo.
  • RCO: Control sobre el tiempo libre, qué tanto decide la persona qué, cómo y cuándo hacer sus actividades.

El segundo mide la energía recuperada:

  • EN: Percepción de energía recuperada por parte del colaborador.

El tercero mide el engagement laboral, entendido como un estado mental positivo y satisfactorio frente al trabajo:

  • EVI: Vigor, altos niveles de energía y resistencia mental mientras se trabaja.
  • EDE: Dedicación, significado, entusiasmo y orgullo por el trabajo que se hace.
  • EAB: Absorción, sentirse concentrado y feliz en el trabajo, con la sensación de que el tiempo pasa volando.

Además de los ítems, la base trae tres variables de control: GEN, EXPER y EDAD.

Importar la base de datos

# file.choose()
df3 <- read_excel("C:/Users/focus/Downloads/Datos_SEM_Eng.xlsx")

# Los nombres de las columnas traen un espacio al final y lavaan no los reconoce así
names(df3) <- trimws(names(df3))

Entender la base de datos

summary(df3)
##        ID             GEN             EXPER            EDAD      
##  Min.   :  1.0   Min.   :0.0000   Min.   : 0.00   Min.   :22.00  
##  1st Qu.: 56.5   1st Qu.:0.0000   1st Qu.:15.00   1st Qu.:37.50  
##  Median :112.0   Median :1.0000   Median :20.00   Median :44.00  
##  Mean   :112.0   Mean   :0.5919   Mean   :21.05   Mean   :43.95  
##  3rd Qu.:167.5   3rd Qu.:1.0000   3rd Qu.:27.50   3rd Qu.:51.00  
##  Max.   :223.0   Max.   :1.0000   Max.   :50.00   Max.   :72.00  
##      RPD01           RPD02          RPD03           RPD05           RPD06      
##  Min.   :1.000   Min.   :1.00   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:3.000   1st Qu.:3.00   1st Qu.:3.000   1st Qu.:3.000   1st Qu.:3.000  
##  Median :5.000   Median :4.00   Median :5.000   Median :5.000   Median :5.000  
##  Mean   :4.596   Mean   :4.09   Mean   :4.789   Mean   :4.327   Mean   :4.798  
##  3rd Qu.:6.000   3rd Qu.:6.00   3rd Qu.:7.000   3rd Qu.:6.000   3rd Qu.:7.000  
##  Max.   :7.000   Max.   :7.00   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##      RPD07           RPD08           RPD09           RPD10      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:2.000   1st Qu.:3.000   1st Qu.:3.000   1st Qu.:2.500  
##  Median :4.000   Median :5.000   Median :5.000   Median :5.000  
##  Mean   :3.794   Mean   :4.735   Mean   :4.466   Mean   :4.435  
##  3rd Qu.:5.500   3rd Qu.:7.000   3rd Qu.:6.000   3rd Qu.:6.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##      RRE02           RRE03           RRE04           RRE05           RRE06    
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.0  
##  1st Qu.:5.000   1st Qu.:5.000   1st Qu.:5.000   1st Qu.:5.000   1st Qu.:4.0  
##  Median :6.000   Median :6.000   Median :6.000   Median :6.000   Median :6.0  
##  Mean   :5.691   Mean   :5.534   Mean   :5.668   Mean   :5.623   Mean   :5.3  
##  3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.:7.0  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.0  
##      RRE07           RRE10           RMA02           RMA03      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:4.000   1st Qu.:5.000   1st Qu.:3.000   1st Qu.:3.000  
##  Median :6.000   Median :6.000   Median :4.000   Median :5.000  
##  Mean   :5.305   Mean   :5.664   Mean   :4.215   Mean   :4.377  
##  3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.:6.000   3rd Qu.:6.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##      RMA04           RMA05           RMA06           RMA07      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:3.000   1st Qu.:3.000   1st Qu.:5.000   1st Qu.:4.000  
##  Median :5.000   Median :5.000   Median :6.000   Median :5.000  
##  Mean   :4.686   Mean   :4.637   Mean   :5.511   Mean   :4.767  
##  3rd Qu.:6.000   3rd Qu.:6.000   3rd Qu.:7.000   3rd Qu.:6.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##      RMA08           RMA09           RMA10          RCO02           RCO03      
##  Min.   :1.000   Min.   :1.000   Min.   :1.00   Min.   :1.000   Min.   :1.000  
##  1st Qu.:4.000   1st Qu.:3.000   1st Qu.:3.00   1st Qu.:5.000   1st Qu.:5.000  
##  Median :5.000   Median :5.000   Median :5.00   Median :6.000   Median :6.000  
##  Mean   :4.942   Mean   :4.614   Mean   :4.43   Mean   :5.336   Mean   :5.574  
##  3rd Qu.:6.500   3rd Qu.:6.000   3rd Qu.:6.00   3rd Qu.:7.000   3rd Qu.:7.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.00   Max.   :7.000   Max.   :7.000  
##      RCO04           RCO05           RCO06           RCO07      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:5.000   1st Qu.:5.000   1st Qu.:5.000   1st Qu.:5.000  
##  Median :6.000   Median :6.000   Median :6.000   Median :6.000  
##  Mean   :5.704   Mean   :5.668   Mean   :5.619   Mean   :5.632  
##  3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.:7.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##       EN01            EN02            EN04            EN05      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:3.000   1st Qu.:4.000   1st Qu.:4.000   1st Qu.:4.000  
##  Median :5.000   Median :6.000   Median :5.000   Median :5.000  
##  Mean   :4.717   Mean   :5.004   Mean   :4.883   Mean   :4.928  
##  3rd Qu.:6.000   3rd Qu.:7.000   3rd Qu.:6.000   3rd Qu.:6.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##       EN06            EN07            EN08           EVI01      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :0.000  
##  1st Qu.:3.000   1st Qu.:3.000   1st Qu.:4.000   1st Qu.:4.000  
##  Median :5.000   Median :5.000   Median :5.000   Median :5.000  
##  Mean   :4.767   Mean   :4.578   Mean   :4.776   Mean   :5.013  
##  3rd Qu.:6.000   3rd Qu.:6.000   3rd Qu.:6.000   3rd Qu.:6.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##      EVI02           EVI03           EDE01           EDE02      
##  Min.   :0.000   Min.   :0.000   Min.   :0.000   Min.   :0.000  
##  1st Qu.:4.000   1st Qu.:4.000   1st Qu.:5.000   1st Qu.:5.000  
##  Median :6.000   Median :6.000   Median :6.000   Median :6.000  
##  Mean   :5.076   Mean   :4.973   Mean   :5.305   Mean   :5.543  
##  3rd Qu.:6.000   3rd Qu.:6.000   3rd Qu.:7.000   3rd Qu.:7.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##      EDE03           EAB01           EAB02           EAB03      
##  Min.   :0.000   Min.   :0.000   Min.   :0.000   Min.   :0.000  
##  1st Qu.:6.000   1st Qu.:5.000   1st Qu.:5.000   1st Qu.:5.000  
##  Median :7.000   Median :6.000   Median :6.000   Median :6.000  
##  Mean   :6.135   Mean   :5.605   Mean   :5.821   Mean   :5.363  
##  3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.:7.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000
str(df3)
## tibble [223 × 51] (S3: tbl_df/tbl/data.frame)
##  $ ID   : num [1:223] 1 2 3 4 5 6 7 8 9 10 ...
##  $ GEN  : num [1:223] 1 1 1 1 1 0 0 1 1 1 ...
##  $ EXPER: num [1:223] 22 22 30 17 23 31 26 30 15 15 ...
##  $ EDAD : num [1:223] 45 44 52 41 51 52 53 48 40 38 ...
##  $ RPD01: num [1:223] 5 4 7 5 7 3 5 6 4 2 ...
##  $ RPD02: num [1:223] 1 4 7 5 6 4 5 7 4 3 ...
##  $ RPD03: num [1:223] 3 6 7 1 7 5 4 6 4 2 ...
##  $ RPD05: num [1:223] 2 5 7 1 6 4 4 7 4 3 ...
##  $ RPD06: num [1:223] 3 3 7 3 7 3 5 2 6 7 ...
##  $ RPD07: num [1:223] 1 2 6 5 6 5 6 5 4 1 ...
##  $ RPD08: num [1:223] 3 3 7 3 7 4 6 2 5 3 ...
##  $ RPD09: num [1:223] 2 4 7 2 6 4 7 4 4 2 ...
##  $ RPD10: num [1:223] 4 4 7 2 6 4 7 1 6 2 ...
##  $ RRE02: num [1:223] 6 6 7 6 7 5 7 5 6 7 ...
##  $ RRE03: num [1:223] 6 6 7 6 7 4 7 4 4 7 ...
##  $ RRE04: num [1:223] 6 6 7 6 7 4 7 4 6 7 ...
##  $ RRE05: num [1:223] 6 6 7 6 7 5 7 4 6 7 ...
##  $ RRE06: num [1:223] 6 6 7 6 7 4 7 4 6 7 ...
##  $ RRE07: num [1:223] 6 6 7 6 7 4 7 4 6 7 ...
##  $ RRE10: num [1:223] 6 6 7 6 7 4 7 4 6 7 ...
##  $ RMA02: num [1:223] 4 6 4 3 4 7 5 2 6 7 ...
##  $ RMA03: num [1:223] 5 6 5 4 4 7 5 1 2 7 ...
##  $ RMA04: num [1:223] 5 5 6 4 4 5 5 1 4 7 ...
##  $ RMA05: num [1:223] 5 5 6 4 4 6 5 3 4 7 ...
##  $ RMA06: num [1:223] 6 6 7 6 5 4 5 7 6 7 ...
##  $ RMA07: num [1:223] 4 6 6 5 4 5 7 4 6 7 ...
##  $ RMA08: num [1:223] 5 6 4 4 4 6 6 4 2 7 ...
##  $ RMA09: num [1:223] 3 5 4 3 5 4 5 2 4 7 ...
##  $ RMA10: num [1:223] 7 5 5 4 5 5 6 4 3 7 ...
##  $ RCO02: num [1:223] 7 7 7 5 7 6 7 7 3 7 ...
##  $ RCO03: num [1:223] 7 7 7 5 7 5 7 7 3 7 ...
##  $ RCO04: num [1:223] 7 7 7 6 7 4 7 7 3 7 ...
##  $ RCO05: num [1:223] 7 7 7 6 7 4 7 7 3 7 ...
##  $ RCO06: num [1:223] 7 7 7 6 7 4 7 7 4 7 ...
##  $ RCO07: num [1:223] 5 7 7 6 7 4 7 7 7 7 ...
##  $ EN01 : num [1:223] 6 6 7 4 6 4 7 7 4 7 ...
##  $ EN02 : num [1:223] 7 6 7 4 6 4 7 7 4 7 ...
##  $ EN04 : num [1:223] 6 6 7 4 6 4 7 6 4 7 ...
##  $ EN05 : num [1:223] 5 5 7 5 6 5 7 6 4 7 ...
##  $ EN06 : num [1:223] 5 5 7 5 6 3 7 5 5 7 ...
##  $ EN07 : num [1:223] 5 5 7 2 6 4 7 4 4 7 ...
##  $ EN08 : num [1:223] 6 5 7 5 6 4 7 4 4 7 ...
##  $ EVI01: num [1:223] 6 5 7 5 6 4 7 6 6 0 ...
##  $ EVI02: num [1:223] 6 5 7 6 6 4 6 5 5 1 ...
##  $ EVI03: num [1:223] 6 6 6 7 6 4 6 6 7 0 ...
##  $ EDE01: num [1:223] 6 6 6 5 7 6 7 7 7 1 ...
##  $ EDE02: num [1:223] 7 6 7 6 7 5 7 7 7 5 ...
##  $ EDE03: num [1:223] 7 7 7 7 7 5 7 7 7 6 ...
##  $ EAB01: num [1:223] 7 7 7 6 7 5 7 7 7 0 ...
##  $ EAB02: num [1:223] 7 7 7 6 7 5 7 2 5 1 ...
##  $ EAB03: num [1:223] 6 5 6 5 6 5 7 3 5 0 ...

Parte 1. Experiencias de Recuperación

modelo3 <- ' # Regresiones

    # Variables latentes
    desapego =~ RPD01 + RPD02 + RPD03 + RPD05 + RPD06 + RPD07 + RPD08 + RPD09 + RPD10
    relajacion =~ RRE02 + RRE03 + RRE04 + RRE05 + RRE06 + RRE07 + RRE10
    control =~ RCO02 + RCO03 + RCO04 + RCO05 + RCO06 + RCO07
    dominio =~ RMA02 + RMA03 + RMA04 + RMA05 + RMA06 + RMA07 + RMA08 + RMA09 + RMA10
'

Generar el Modelo de Análisis Factorial Confirmatorio (AFC)

fit3 <- cfa(modelo3, data = df3)
summary(fit3, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.7-2 ended normally after 56 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        68
## 
##   Number of observations                           223
## 
## Model Test User Model:
##                                                       
##   Test statistic                              1215.404
##   Degrees of freedom                               428
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                              7522.157
##   Degrees of freedom                               465
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.888
##   Tucker-Lewis Index (TLI)                       0.879
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -10613.334
##   Loglikelihood unrestricted model (H1)     -10005.632
##                                                       
##   Akaike (AIC)                               21362.669
##   Bayesian (BIC)                             21594.356
##   Sample-size adjusted Bayesian (SABIC)      21378.856
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.091
##   90 Percent confidence interval - lower         0.085
##   90 Percent confidence interval - upper         0.097
##   P-value H_0: RMSEA <= 0.050                    0.000
##   P-value H_0: RMSEA >= 0.080                    0.998
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.071
## 
## Goodness of Fit Index:
## 
##   Goodness of Fit Index (GFI)                    0.811
##   90 Percent confidence interval - lower         0.791
##   90 Percent confidence interval - upper         0.831
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   desapego =~                                                           
##     RPD01             1.000                               1.388    0.789
##     RPD02             1.204    0.081   14.786    0.000    1.670    0.857
##     RPD03             1.143    0.085   13.420    0.000    1.586    0.798
##     RPD05             1.310    0.086   15.269    0.000    1.818    0.877
##     RPD06             1.086    0.088   12.282    0.000    1.507    0.745
##     RPD07             1.227    0.085   14.451    0.000    1.702    0.843
##     RPD08             1.163    0.086   13.487    0.000    1.614    0.801
##     RPD09             1.315    0.087   15.175    0.000    1.825    0.873
##     RPD10             1.345    0.088   15.290    0.000    1.866    0.878
##   relajacion =~                                                         
##     RRE02             1.000                               1.275    0.850
##     RRE03             1.120    0.065   17.268    0.000    1.427    0.871
##     RRE04             1.024    0.058   17.732    0.000    1.306    0.883
##     RRE05             1.055    0.056   18.798    0.000    1.345    0.910
##     RRE06             1.243    0.074   16.857    0.000    1.585    0.859
##     RRE07             1.115    0.071   15.687    0.000    1.422    0.824
##     RRE10             0.815    0.067   12.135    0.000    1.038    0.698
##   control =~                                                            
##     RCO02             1.000                               1.631    0.855
##     RCO03             0.948    0.049   19.230    0.000    1.546    0.912
##     RCO04             0.795    0.044   18.125    0.000    1.297    0.886
##     RCO05             0.817    0.043   18.981    0.000    1.332    0.906
##     RCO06             0.834    0.046   18.247    0.000    1.360    0.889
##     RCO07             0.834    0.046   18.078    0.000    1.361    0.884
##   dominio =~                                                            
##     RMA02             1.000                               1.406    0.729
##     RMA03             1.155    0.096   12.060    0.000    1.624    0.799
##     RMA04             1.179    0.089   13.267    0.000    1.659    0.874
##     RMA05             1.141    0.087   13.049    0.000    1.604    0.860
##     RMA06             0.647    0.075    8.618    0.000    0.911    0.581
##     RMA07             1.104    0.085   13.050    0.000    1.552    0.860
##     RMA08             1.109    0.085   12.985    0.000    1.560    0.856
##     RMA09             1.030    0.084   12.251    0.000    1.448    0.811
##     RMA10             1.056    0.088   12.039    0.000    1.486    0.798
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   desapego ~~                                                           
##     relajacion        1.155    0.164    7.023    0.000    0.653    0.653
##     control           1.319    0.200    6.584    0.000    0.583    0.583
##     dominio           0.696    0.155    4.477    0.000    0.357    0.357
##   relajacion ~~                                                         
##     control           1.483    0.195    7.610    0.000    0.713    0.713
##     dominio           0.969    0.159    6.085    0.000    0.540    0.540
##   control ~~                                                            
##     dominio           1.221    0.202    6.047    0.000    0.532    0.532
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .RPD01             1.168    0.119    9.778    0.000    1.168    0.378
##    .RPD02             1.005    0.109    9.240    0.000    1.005    0.265
##    .RPD03             1.434    0.147    9.728    0.000    1.434    0.363
##    .RPD05             0.989    0.110    8.969    0.000    0.989    0.230
##    .RPD06             1.817    0.182    9.968    0.000    1.817    0.444
##    .RPD07             1.177    0.125    9.391    0.000    1.177    0.289
##    .RPD08             1.454    0.150    9.710    0.000    1.454    0.358
##    .RPD09             1.035    0.115    9.028    0.000    1.035    0.237
##    .RPD10             1.033    0.115    8.956    0.000    1.033    0.229
##    .RRE02             0.624    0.067    9.269    0.000    0.624    0.277
##    .RRE03             0.651    0.072    9.005    0.000    0.651    0.242
##    .RRE04             0.481    0.055    8.798    0.000    0.481    0.220
##    .RRE05             0.373    0.046    8.147    0.000    0.373    0.171
##    .RRE06             0.891    0.097    9.162    0.000    0.891    0.262
##    .RRE07             0.953    0.100    9.511    0.000    0.953    0.320
##    .RRE10             1.136    0.113   10.092    0.000    1.136    0.513
##    .RCO02             0.980    0.105    9.375    0.000    0.980    0.269
##    .RCO03             0.482    0.057    8.379    0.000    0.482    0.168
##    .RCO04             0.463    0.052    8.967    0.000    0.463    0.216
##    .RCO05             0.385    0.045    8.536    0.000    0.385    0.178
##    .RCO06             0.493    0.055    8.915    0.000    0.493    0.210
##    .RCO07             0.516    0.057    8.987    0.000    0.516    0.218
##    .RMA02             1.742    0.175    9.934    0.000    1.742    0.468
##    .RMA03             1.489    0.155    9.581    0.000    1.489    0.361
##    .RMA04             0.854    0.097    8.772    0.000    0.854    0.237
##    .RMA05             0.904    0.101    8.981    0.000    0.904    0.260
##    .RMA06             1.627    0.158   10.279    0.000    1.627    0.662
##    .RMA07             0.846    0.094    8.980    0.000    0.846    0.260
##    .RMA08             0.885    0.098    9.035    0.000    0.885    0.267
##    .RMA09             1.090    0.115    9.496    0.000    1.090    0.342
##    .RMA10             1.258    0.131    9.590    0.000    1.258    0.363
##     desapego          1.925    0.275    7.002    0.000    1.000    1.000
##     relajacion        1.625    0.207    7.845    0.000    1.000    1.000
##     control           2.660    0.335    7.930    0.000    1.000    1.000
##     dominio           1.978    0.317    6.241    0.000    1.000    1.000
lavaanPlot(fit3, coefs = TRUE, cov = TRUE)

Parte 2. Energía Recuperada

modelo4 <- ' # Regresiones

    # Variables latentes
    energia =~ EN01 + EN02 + EN04 + EN05 + EN06 + EN07 + EN08

    # Varianzas y covarianzas

    # Intercepto
'

Generar el Análisis Factorial Confirmatorio (CFA)

fit4 <- cfa(modelo4, data = df3)
summary(fit4, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.7-2 ended normally after 32 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        14
## 
##   Number of observations                           223
## 
## Model Test User Model:
##                                                       
##   Test statistic                                47.222
##   Degrees of freedom                                14
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                              2324.436
##   Degrees of freedom                                21
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.986
##   Tucker-Lewis Index (TLI)                       0.978
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -2017.154
##   Loglikelihood unrestricted model (H1)      -1993.543
##                                                       
##   Akaike (AIC)                                4062.308
##   Bayesian (BIC)                              4110.008
##   Sample-size adjusted Bayesian (SABIC)       4065.641
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.103
##   90 Percent confidence interval - lower         0.072
##   90 Percent confidence interval - upper         0.136
##   P-value H_0: RMSEA <= 0.050                    0.004
##   P-value H_0: RMSEA >= 0.080                    0.892
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.012
## 
## Goodness of Fit Index:
## 
##   Goodness of Fit Index (GFI)                    0.959
##   90 Percent confidence interval - lower         0.931
##   90 Percent confidence interval - upper         0.980
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   energia =~                                                            
##     EN01              1.000                               1.674    0.893
##     EN02              1.029    0.044   23.192    0.000    1.723    0.933
##     EN04              0.999    0.044   22.583    0.000    1.672    0.924
##     EN05              0.999    0.042   23.649    0.000    1.672    0.939
##     EN06              0.986    0.042   23.722    0.000    1.651    0.940
##     EN07              1.049    0.046   22.856    0.000    1.755    0.928
##     EN08              1.036    0.043   24.173    0.000    1.734    0.946
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .EN01              0.711    0.074    9.651    0.000    0.711    0.202
##    .EN02              0.444    0.049    9.012    0.000    0.444    0.130
##    .EN04              0.481    0.052    9.214    0.000    0.481    0.147
##    .EN05              0.375    0.042    8.830    0.000    0.375    0.118
##    .EN06              0.359    0.041    8.798    0.000    0.359    0.116
##    .EN07              0.499    0.055    9.129    0.000    0.499    0.139
##    .EN08              0.353    0.041    8.580    0.000    0.353    0.105
##     energia           2.801    0.327    8.565    0.000    1.000    1.000
lavaanPlot(fit4, coefs = TRUE, cov = TRUE)

Parte 3. Engagement Laboral

modelo5 <- ' # Regresiones

    # Variables latentes
    vigor =~ EVI01 + EVI02 + EVI03
    dedicacion =~ EDE01 + EDE02 + EDE03
    absorcion =~ EAB01 + EAB02 + EAB03

    # Varianzas y covarianzas

    # Intercepto
'

Generar el Análisis Factorial Confirmatorio (CFA)

fit5 <- cfa(modelo5, data = df3)
summary(fit5, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.7-2 ended normally after 44 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        21
## 
##   Number of observations                           223
## 
## Model Test User Model:
##                                                       
##   Test statistic                               271.168
##   Degrees of freedom                                24
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                              2254.214
##   Degrees of freedom                                36
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.889
##   Tucker-Lewis Index (TLI)                       0.833
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -2965.082
##   Loglikelihood unrestricted model (H1)      -2829.498
##                                                       
##   Akaike (AIC)                                5972.164
##   Bayesian (BIC)                              6043.715
##   Sample-size adjusted Bayesian (SABIC)       5977.163
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.215
##   90 Percent confidence interval - lower         0.192
##   90 Percent confidence interval - upper         0.238
##   P-value H_0: RMSEA <= 0.050                    0.000
##   P-value H_0: RMSEA >= 0.080                    1.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.070
## 
## Goodness of Fit Index:
## 
##   Goodness of Fit Index (GFI)                    0.810
##   90 Percent confidence interval - lower         0.775
##   90 Percent confidence interval - upper         0.843
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   vigor =~                                                              
##     EVI01             1.000                               1.684    0.967
##     EVI02             0.986    0.028   35.166    0.000    1.660    0.962
##     EVI03             0.995    0.049   20.456    0.000    1.675    0.835
##   dedicacion =~                                                         
##     EDE01             1.000                               1.857    0.946
##     EDE02             0.914    0.035   26.126    0.000    1.698    0.924
##     EDE03             0.583    0.037   15.913    0.000    1.082    0.765
##   absorcion =~                                                          
##     EAB01             1.000                               1.610    0.918
##     EAB02             0.708    0.051   13.891    0.000    1.140    0.750
##     EAB03             0.732    0.063   11.644    0.000    1.179    0.669
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   vigor ~~                                                              
##     dedicacion        2.754    0.293    9.404    0.000    0.881    0.881
##     absorcion         2.125    0.247    8.600    0.000    0.784    0.784
##   dedicacion ~~                                                         
##     absorcion         2.728    0.293    9.311    0.000    0.913    0.913
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .EVI01             0.200    0.040    4.947    0.000    0.200    0.066
##    .EVI02             0.220    0.041    5.437    0.000    0.220    0.074
##    .EVI03             1.220    0.125    9.772    0.000    1.220    0.303
##    .EDE01             0.405    0.066    6.130    0.000    0.405    0.105
##    .EDE02             0.495    0.066    7.521    0.000    0.495    0.146
##    .EDE03             0.829    0.084    9.869    0.000    0.829    0.415
##    .EAB01             0.481    0.100    4.816    0.000    0.481    0.157
##    .EAB02             1.010    0.109    9.271    0.000    1.010    0.437
##    .EAB03             1.711    0.175    9.764    0.000    1.711    0.552
##     vigor             2.836    0.289    9.811    0.000    1.000    1.000
##     dedicacion        3.448    0.367    9.399    0.000    1.000    1.000
##     absorcion         2.592    0.301    8.615    0.000    1.000    1.000
lavaanPlot(fit5, coefs = TRUE, cov = TRUE)

Parte 3 (continuación). Análisis de senderos: efecto mediador de la energía recuperada

El análisis de senderos trabaja con variables observadas, así que primero se construyen los puntajes de cada escala promediando sus ítems. Las cuatro dimensiones de recuperación se promedian entre sí para formar el puntaje general de experiencias de recuperación, y vigor, dedicación y absorción se promedian para formar engagement.

puntaje <- function(prefijo) rowMeans(df3[, grep(paste0("^", prefijo), names(df3))], na.rm = TRUE)

df3$desapego_p   <- puntaje("RPD")
df3$relajacion_p <- puntaje("RRE")
df3$dominio_p    <- puntaje("RMA")
df3$control_p    <- puntaje("RCO")
df3$energia_p    <- puntaje("EN0")

df3$recuperacion <- rowMeans(df3[, c("desapego_p", "relajacion_p", "dominio_p", "control_p")])
df3$engagement   <- rowMeans(df3[, grep("^EVI|^EDE|^EAB", names(df3))], na.rm = TRUE)

Se plantea la mediación parcial: la recuperación llega al engagement por dos caminos, uno indirecto a través de la energía recuperada y otro directo.

modelo6 <- ' # Regresiones
    energia_p  ~ a*recuperacion
    engagement ~ b*energia_p + c*recuperacion

    # Efectos
    indirecto := a*b
    directo   := c
    total     := c + a*b
'

fit6 <- sem(modelo6, data = df3)
summary(fit6, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.7-2 ended normally after 1 iteration
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                         5
## 
##   Number of observations                           223
## 
## Model Test User Model:
##                                                       
##   Test statistic                                 0.000
##   Degrees of freedom                                 0
## 
## Model Test Baseline Model:
## 
##   Test statistic                               296.008
##   Degrees of freedom                                 3
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    1.000
##   Tucker-Lewis Index (TLI)                       1.000
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -692.401
##   Loglikelihood unrestricted model (H1)       -692.401
##                                                       
##   Akaike (AIC)                                1394.803
##   Bayesian (BIC)                              1411.839
##   Sample-size adjusted Bayesian (SABIC)       1395.993
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.000
##   90 Percent confidence interval - lower         0.000
##   90 Percent confidence interval - upper         0.000
##   P-value H_0: RMSEA <= 0.050                       NA
##   P-value H_0: RMSEA >= 0.080                       NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.000
## 
## Goodness of Fit Index:
## 
##   Goodness of Fit Index (GFI)                    1.000
##   90 Percent confidence interval - lower         1.000
##   90 Percent confidence interval - upper         1.000
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   energia_p ~                                                           
##     recuperacn (a)    1.062    0.061   17.408    0.000    1.062    0.759
##   engagement ~                                                          
##     energia_p  (b)    0.418    0.070    5.966    0.000    0.418    0.485
##     recuperacn (c)    0.187    0.098    1.914    0.056    0.187    0.156
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .energia_p         1.249    0.118   10.559    0.000    1.249    0.424
##    .engagement        1.366    0.129   10.559    0.000    1.366    0.626
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     indirecto         0.444    0.079    5.644    0.000    0.444    0.368
##     directo           0.187    0.098    1.914    0.056    0.187    0.156
##     total             0.631    0.069    9.189    0.000    0.631    0.524
lavaanPlot(fit6, coefs = TRUE, cov = TRUE)

Este modelo está saturado, tiene cero grados de libertad, así que sus índices de ajuste no informan nada. Para poder evaluarlos se estima también la versión de mediación total, quitando el camino directo.

modelo7 <- ' # Regresiones
    energia_p  ~ a*recuperacion
    engagement ~ b*energia_p

    # Efectos
    indirecto := a*b
'

fit7 <- sem(modelo7, data = df3)
summary(fit7, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.7-2 ended normally after 1 iteration
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                         4
## 
##   Number of observations                           223
## 
## Model Test User Model:
##                                                       
##   Test statistic                                 3.633
##   Degrees of freedom                                 1
##   P-value (Chi-square)                           0.057
## 
## Model Test Baseline Model:
## 
##   Test statistic                               296.008
##   Degrees of freedom                                 3
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.991
##   Tucker-Lewis Index (TLI)                       0.973
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -694.218
##   Loglikelihood unrestricted model (H1)       -692.401
##                                                       
##   Akaike (AIC)                                1396.436
##   Bayesian (BIC)                              1410.065
##   Sample-size adjusted Bayesian (SABIC)       1397.388
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.109
##   90 Percent confidence interval - lower         0.000
##   90 Percent confidence interval - upper         0.238
##   P-value H_0: RMSEA <= 0.050                    0.127
##   P-value H_0: RMSEA >= 0.080                    0.761
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.027
## 
## Goodness of Fit Index:
## 
##   Goodness of Fit Index (GFI)                    1.000
##   90 Percent confidence interval - lower         1.000
##   90 Percent confidence interval - upper         1.000
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   energia_p ~                                                           
##     recuperacn (a)    1.062    0.061   17.408    0.000    1.062    0.759
##   engagement ~                                                          
##     energia_p  (b)    0.519    0.046   11.302    0.000    0.519    0.603
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .energia_p         1.249    0.118   10.559    0.000    1.249    0.424
##    .engagement        1.388    0.131   10.559    0.000    1.388    0.636
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     indirecto         0.551    0.058    9.480    0.000    0.551    0.458
lavaanPlot(fit7, coefs = TRUE, cov = TRUE)
anova(fit7, fit6)
## 
## Chi-Squared Difference Test
## 
##      Df    AIC    BIC  Chisq Chisq diff   RMSEA Df diff Pr(>Chisq)  
## fit6  0 1394.8 1411.8 0.0000                                        
## fit7  1 1396.4 1410.1 3.6334     3.6334 0.10867       1    0.05663 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Parte 4. Modelo de medición

El modelo de senderos usa promedios y da por hecho que cada escala mide bien lo que dice medir. El modelo de medición pone eso a prueba: cada constructo vuelve a ser latente, se estima a partir de sus ítems y se deja correlacionar libremente con los demás, sin imponer todavía ninguna dirección entre ellos.

modelo8 <- ' # Regresiones

    # Variables latentes
    desapego =~ RPD01 + RPD02 + RPD03 + RPD05 + RPD06 + RPD07 + RPD08 + RPD09 + RPD10
    relajacion =~ RRE02 + RRE03 + RRE04 + RRE05 + RRE06 + RRE07 + RRE10
    control =~ RCO02 + RCO03 + RCO04 + RCO05 + RCO06 + RCO07
    dominio =~ RMA02 + RMA03 + RMA04 + RMA05 + RMA06 + RMA07 + RMA08 + RMA09 + RMA10
    energia =~ EN01 + EN02 + EN04 + EN05 + EN06 + EN07 + EN08
    vigor =~ EVI01 + EVI02 + EVI03
    dedicacion =~ EDE01 + EDE02 + EDE03
    absorcion =~ EAB01 + EAB02 + EAB03

    # Varianzas y covarianzas

    # Intercepto
'

fit8 <- cfa(modelo8, data = df3)
summary(fit8, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.7-2 ended normally after 99 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                       122
## 
##   Number of observations                           223
## 
## Model Test User Model:
##                                                       
##   Test statistic                              2420.954
##   Degrees of freedom                              1006
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                             13350.303
##   Degrees of freedom                              1081
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.885
##   Tucker-Lewis Index (TLI)                       0.876
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -15414.402
##   Loglikelihood unrestricted model (H1)     -14203.926
##                                                       
##   Akaike (AIC)                               31072.805
##   Bayesian (BIC)                             31488.480
##   Sample-size adjusted Bayesian (SABIC)      31101.846
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.079
##   90 Percent confidence interval - lower         0.075
##   90 Percent confidence interval - upper         0.083
##   P-value H_0: RMSEA <= 0.050                    0.000
##   P-value H_0: RMSEA >= 0.080                    0.410
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.065
## 
## Goodness of Fit Index:
## 
##   Goodness of Fit Index (GFI)                    0.796
##   90 Percent confidence interval - lower         0.779
##   90 Percent confidence interval - upper         0.813
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   desapego =~                                                           
##     RPD01             1.000                               1.389    0.790
##     RPD02             1.204    0.081   14.852    0.000    1.672    0.859
##     RPD03             1.144    0.085   13.491    0.000    1.590    0.800
##     RPD05             1.310    0.085   15.350    0.000    1.821    0.879
##     RPD06             1.081    0.088   12.243    0.000    1.501    0.742
##     RPD07             1.226    0.085   14.503    0.000    1.703    0.844
##     RPD08             1.157    0.086   13.448    0.000    1.608    0.798
##     RPD09             1.313    0.086   15.206    0.000    1.824    0.873
##     RPD10             1.341    0.088   15.303    0.000    1.863    0.877
##   relajacion =~                                                         
##     RRE02             1.000                               1.274    0.850
##     RRE03             1.121    0.065   17.283    0.000    1.429    0.871
##     RRE04             1.022    0.058   17.636    0.000    1.302    0.881
##     RRE05             1.054    0.056   18.741    0.000    1.343    0.910
##     RRE06             1.244    0.074   16.861    0.000    1.586    0.860
##     RRE07             1.119    0.071   15.753    0.000    1.426    0.827
##     RRE10             0.817    0.067   12.166    0.000    1.041    0.699
##   control =~                                                            
##     RCO02             1.000                               1.631    0.855
##     RCO03             0.945    0.049   19.122    0.000    1.541    0.909
##     RCO04             0.794    0.044   18.063    0.000    1.294    0.884
##     RCO05             0.815    0.043   18.912    0.000    1.329    0.905
##     RCO06             0.838    0.045   18.428    0.000    1.367    0.893
##     RCO07             0.837    0.046   18.209    0.000    1.365    0.887
##   dominio =~                                                            
##     RMA02             1.000                               1.407    0.729
##     RMA03             1.152    0.096   12.041    0.000    1.621    0.798
##     RMA04             1.179    0.089   13.271    0.000    1.658    0.873
##     RMA05             1.140    0.087   13.048    0.000    1.604    0.860
##     RMA06             0.649    0.075    8.638    0.000    0.912    0.582
##     RMA07             1.103    0.085   13.057    0.000    1.552    0.860
##     RMA08             1.110    0.085   12.997    0.000    1.561    0.857
##     RMA09             1.030    0.084   12.267    0.000    1.450    0.812
##     RMA10             1.057    0.088   12.052    0.000    1.487    0.799
##   energia =~                                                            
##     EN01              1.000                               1.680    0.897
##     EN02              1.026    0.044   23.552    0.000    1.724    0.933
##     EN04              0.996    0.043   22.926    0.000    1.674    0.925
##     EN05              0.994    0.042   23.900    0.000    1.670    0.938
##     EN06              0.981    0.041   23.928    0.000    1.648    0.938
##     EN07              1.044    0.045   23.111    0.000    1.755    0.927
##     EN08              1.031    0.042   24.446    0.000    1.732    0.945
##   vigor =~                                                              
##     EVI01             1.000                               1.691    0.971
##     EVI02             0.978    0.027   35.884    0.000    1.653    0.958
##     EVI03             0.990    0.048   20.672    0.000    1.675    0.835
##   dedicacion =~                                                         
##     EDE01             1.000                               1.858    0.946
##     EDE02             0.915    0.035   26.256    0.000    1.699    0.924
##     EDE03             0.581    0.037   15.860    0.000    1.080    0.763
##   absorcion =~                                                          
##     EAB01             1.000                               1.614    0.921
##     EAB02             0.704    0.051   13.896    0.000    1.136    0.748
##     EAB03             0.728    0.063   11.641    0.000    1.175    0.667
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   desapego ~~                                                           
##     relajacion        1.155    0.164    7.022    0.000    0.652    0.652
##     control           1.321    0.201    6.588    0.000    0.583    0.583
##     dominio           0.697    0.156    4.477    0.000    0.357    0.357
##     energia           1.386    0.204    6.785    0.000    0.594    0.594
##     vigor             1.051    0.186    5.635    0.000    0.447    0.447
##     dedicacion        1.091    0.205    5.324    0.000    0.423    0.423
##     absorcion         0.846    0.179    4.732    0.000    0.377    0.377
##   relajacion ~~                                                         
##     control           1.482    0.195    7.609    0.000    0.713    0.713
##     dominio           0.970    0.159    6.092    0.000    0.541    0.541
##     energia           1.372    0.188    7.290    0.000    0.641    0.641
##     vigor             0.957    0.168    5.690    0.000    0.444    0.444
##     dedicacion        1.036    0.187    5.548    0.000    0.438    0.438
##     absorcion         0.752    0.162    4.655    0.000    0.366    0.366
##   control ~~                                                            
##     dominio           1.222    0.202    6.051    0.000    0.533    0.533
##     energia           1.988    0.252    7.876    0.000    0.725    0.725
##     vigor             1.493    0.225    6.642    0.000    0.541    0.541
##     dedicacion        1.534    0.246    6.239    0.000    0.506    0.506
##     absorcion         1.154    0.212    5.437    0.000    0.438    0.438
##   dominio ~~                                                            
##     energia           1.326    0.209    6.355    0.000    0.561    0.561
##     vigor             1.008    0.191    5.290    0.000    0.424    0.424
##     dedicacion        0.987    0.207    4.774    0.000    0.378    0.378
##     absorcion         0.865    0.184    4.691    0.000    0.381    0.381
##   energia ~~                                                            
##     vigor             2.046    0.249    8.225    0.000    0.720    0.720
##     dedicacion        1.849    0.259    7.134    0.000    0.593    0.593
##     absorcion         1.343    0.220    6.097    0.000    0.495    0.495
##   vigor ~~                                                              
##     dedicacion        2.762    0.293    9.420    0.000    0.879    0.879
##     absorcion         2.136    0.248    8.621    0.000    0.783    0.783
##   dedicacion ~~                                                         
##     absorcion         2.734    0.293    9.323    0.000    0.912    0.912
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .RPD01             1.162    0.119    9.778    0.000    1.162    0.376
##    .RPD02             0.998    0.108    9.236    0.000    0.998    0.263
##    .RPD03             1.422    0.146    9.723    0.000    1.422    0.360
##    .RPD05             0.977    0.109    8.955    0.000    0.977    0.228
##    .RPD06             1.835    0.184    9.982    0.000    1.835    0.449
##    .RPD07             1.173    0.125    9.393    0.000    1.173    0.288
##    .RPD08             1.474    0.151    9.734    0.000    1.474    0.363
##    .RPD09             1.038    0.115    9.045    0.000    1.038    0.238
##    .RPD10             1.042    0.116    8.985    0.000    1.042    0.231
##    .RRE02             0.626    0.067    9.274    0.000    0.626    0.278
##    .RRE03             0.647    0.072    8.994    0.000    0.647    0.241
##    .RRE04             0.489    0.055    8.838    0.000    0.489    0.224
##    .RRE05             0.377    0.046    8.177    0.000    0.377    0.173
##    .RRE06             0.889    0.097    9.157    0.000    0.889    0.261
##    .RRE07             0.941    0.099    9.492    0.000    0.941    0.316
##    .RRE10             1.131    0.112   10.089    0.000    1.131    0.511
##    .RCO02             0.980    0.104    9.397    0.000    0.980    0.269
##    .RCO03             0.497    0.058    8.497    0.000    0.497    0.173
##    .RCO04             0.470    0.052    9.027    0.000    0.470    0.219
##    .RCO05             0.393    0.046    8.621    0.000    0.393    0.182
##    .RCO06             0.475    0.054    8.869    0.000    0.475    0.203
##    .RCO07             0.503    0.056    8.967    0.000    0.503    0.213
##    .RMA02             1.742    0.175    9.938    0.000    1.742    0.468
##    .RMA03             1.499    0.156    9.599    0.000    1.499    0.363
##    .RMA04             0.855    0.097    8.788    0.000    0.855    0.237
##    .RMA05             0.907    0.101    9.000    0.000    0.907    0.261
##    .RMA06             1.624    0.158   10.280    0.000    1.624    0.661
##    .RMA07             0.846    0.094    8.992    0.000    0.846    0.260
##    .RMA08             0.883    0.098    9.042    0.000    0.883    0.266
##    .RMA09             1.086    0.114    9.499    0.000    1.086    0.341
##    .RMA10             1.255    0.131    9.594    0.000    1.255    0.362
##    .EN01              0.689    0.071    9.662    0.000    0.689    0.196
##    .EN02              0.439    0.048    9.070    0.000    0.439    0.129
##    .EN04              0.475    0.051    9.263    0.000    0.475    0.145
##    .EN05              0.380    0.043    8.944    0.000    0.380    0.120
##    .EN06              0.368    0.041    8.933    0.000    0.368    0.119
##    .EN07              0.502    0.054    9.210    0.000    0.502    0.140
##    .EN08              0.358    0.041    8.712    0.000    0.358    0.107
##    .EVI01             0.176    0.036    4.891    0.000    0.176    0.058
##    .EVI02             0.243    0.038    6.327    0.000    0.243    0.082
##    .EVI03             1.221    0.124    9.826    0.000    1.221    0.303
##    .EDE01             0.403    0.065    6.155    0.000    0.403    0.104
##    .EDE02             0.492    0.065    7.542    0.000    0.492    0.146
##    .EDE03             0.834    0.084    9.885    0.000    0.834    0.417
##    .EAB01             0.469    0.098    4.771    0.000    0.469    0.153
##    .EAB02             1.018    0.109    9.331    0.000    1.018    0.441
##    .EAB03             1.720    0.176    9.797    0.000    1.720    0.555
##     desapego          1.931    0.275    7.018    0.000    1.000    1.000
##     relajacion        1.624    0.207    7.839    0.000    1.000    1.000
##     control           2.660    0.335    7.931    0.000    1.000    1.000
##     dominio           1.979    0.317    6.244    0.000    1.000    1.000
##     energia           2.823    0.327    8.623    0.000    1.000    1.000
##     vigor             2.860    0.289    9.904    0.000    1.000    1.000
##     dedicacion        3.451    0.367    9.408    0.000    1.000    1.000
##     absorcion         2.604    0.301    8.660    0.000    1.000    1.000
round(cbind(
  Recuperacion = fitMeasures(fit3, c("chisq","df","cfi","tli","rmsea","srmr")),
  Energia      = fitMeasures(fit4, c("chisq","df","cfi","tli","rmsea","srmr")),
  Engagement   = fitMeasures(fit5, c("chisq","df","cfi","tli","rmsea","srmr")),
  Medicion     = fitMeasures(fit8, c("chisq","df","cfi","tli","rmsea","srmr"))
), 3)
##       Recuperacion Energia Engagement Medicion
## chisq     1215.404  47.222    271.168 2420.954
## df         428.000  14.000     24.000 1006.000
## cfi          0.888   0.986      0.889    0.885
## tli          0.879   0.978      0.833    0.876
## rmsea        0.091   0.103      0.215    0.079
## srmr         0.071   0.012      0.070    0.065

Conclusión

Las cuatro dimensiones de recuperación se sostienen. Los ítems de desapego, relajación, dominio y control cargan cada uno en su factor y todas las cargas salen significativas, así que la escala sí distingue cuatro maneras distintas de recuperarse y no una sola. El ajuste se queda corto, el CFI ronda 0.89 y el RMSEA anda arriba de 0.09, lo cual es esperable en una escala de 31 ítems donde hay preguntas que se parecen mucho entre sí dentro de cada dimensión. Ahí es donde conviene depurar, quitando los ítems con carga más baja o dejando correlacionar los errores de las preguntas casi idénticas.

Los siete ítems de energía recuperada se agrupan en una sola dimensión sin problema. Es el modelo con mejor ajuste de los tres, con CFI de 0.986 y SRMR de 0.012, así que tratar la energía recuperada como un único constructo está bien justificado.

El engagement es el que peor se porta. Vigor, dedicación y absorción salen tan correlacionadas entre sí que el modelo de tres factores queda forzado, con un RMSEA de 0.215. En la práctica los colaboradores de esta muestra no distinguen mucho entre sentirse con energía, sentirse orgullosos y sentirse absortos, es todo lo mismo para ellos. Por eso en el análisis de senderos usar un solo puntaje de engagement no traiciona los datos.

Sobre la mediación, el resultado es claro. La recuperación predice fuerte la energía recuperada, con un coeficiente estandarizado de 0.76. La energía recuperada a su vez predice el engagement con 0.49. El efecto indirecto es de 0.37 y es significativo, mientras que el efecto directo de la recuperación sobre el engagement se queda en 0.16 con un p valor de 0.056, es decir que no alcanza a ser significativo. Del efecto total de 0.52, la mayor parte viaja por la energía recuperada.

Eso significa que descansar no sube el engagement por sí solo. Lo que lo sube es la energía que ese descanso devuelve. Un colaborador puede desconectarse el fin de semana y seguir llegando el lunes sin ganas si esa desconexión no le regresó energía. Para una organización el punto práctico es que no basta con dar el tiempo libre, hay que revisar si la gente efectivamente está recuperando energía con él.

El modelo de medición completo, con los ocho constructos correlacionados, da un RMSEA de 0.079 y un SRMR de 0.065, mejor que el de la escala de recuperación por separado. La estructura de fondo se sostiene, pero el CFI de 0.885 confirma que hay que depurar antes de darlo por bueno.

Ejercicio 4. Modelo de Ecuaciones Estructurales (SEM)

Contexto

Behson, Eddy y Lorenzet publicaron en el 2000 el estudio “The Importance of the Critical Psychological States in the Job Characteristics Model: A Meta-Analytic and Structural Equations Modeling Examination”. El Modelo de Características del Puesto de Hackman y Oldham propone que cinco características del trabajo, variedad de habilidades, identidad de la tarea, significado de la tarea, autonomía y retroalimentación, no impactan directamente los resultados, sino que pasan primero por tres estados psicológicos críticos: significado experimentado del trabajo, responsabilidad experimentada por los resultados y conocimiento de los resultados.

Los autores comparan dos modelos sobre la misma matriz meta analítica:

  • Modelo 1: el modelo original de tres etapas. Las características del puesto llegan a los resultados únicamente a través de los estados psicológicos críticos, es decir, mediación completa.
  • Modelo 2: el modelo que se usa en la práctica en la mayoría de los estudios. Elimina los estados psicológicos y conecta las características del puesto directamente con los resultados.

Los índices de ajuste

Indicador Modelo 1 Modelo 2
Chi cuadrada 124.25 con 25 gl 12.09 con 3 gl
GFI 0.91 0.99
CFI 0.89 0.98
RMSEA 0.14 0.16
AIC 294.48 80.09
Senderos significativos 12 de 14 7 de 15
Varianza explicada en satisfacción 42% 37%
Varianza explicada en motivación 38% 32%

En GFI, CFI y AIC el Modelo 2 gana claramente. El RMSEA es el único indicador donde el Modelo 1 sale mejor, y por poco.

¿Por qué eligieron el Modelo 1?

Porque el ajuste no fue el único criterio. Los autores dicen que comparar modelos pide más que comparar razones de ajuste, y que la razonabilidad de los valores dentro del modelo y su correspondencia con la teoría pesan igual o más.

El argumento de fondo está en los senderos. En el Modelo 2, ocho de los nueve caminos que van de variedad de habilidades, identidad de la tarea y significado de la tarea hacia los resultados salieron no significativos. Leído solo, ese modelo diría que esas tres características del puesto no sirven para nada. El Modelo 1 muestra que sí sirven, pero de forma indirecta, mediadas por el significado experimentado del trabajo. La relación existe, lo que pasa es que el Modelo 2 no tiene por dónde verla.

El Modelo 1 también explica más varianza en satisfacción y en motivación, y tiene 12 de 14 senderos significativos contra 7 de 15. Es un modelo más grande, por eso el AIC lo castiga, pero es también un modelo donde casi todo lo estimado significa algo.

La consecuencia práctica es la que cierra el argumento. Si una organización rediseña puestos usando el Modelo 2 va a mover las características del trabajo esperando un resultado directo. El Modelo 1 advierte que ese rediseño no sirve de nada si el colaborador no llega a experimentar el significado, la responsabilidad y el conocimiento de los resultados. Medir solo las características del puesto lleva a intervenciones mal dirigidas.

Conclusión

La lección es que el ajuste mide qué tan bien reproduce el modelo la matriz de covarianzas, no qué tan bien explica el fenómeno. Un modelo más simple casi siempre va a ajustar mejor porque tiene menos que reproducir, y eso no lo vuelve más cierto.

Lo mismo aplica a lo que hice en el Ejercicio 3. La escala de engagement salió con un RMSEA de 0.215, que es malo, y la tentación es colapsar vigor, dedicación y absorción en un solo factor para que los números se vean bonitos. Antes de hacerlo hay que preguntarse si eso deja fuera algo que la teoría sí distingue. En ese caso los datos y la teoría iban en la misma dirección, así que fusionarlas fue defendible. En el caso de Behson no lo era, y por eso se quedaron con el modelo que ajustaba peor.

LS0tCnRpdGxlOiAiQWN0aXZpZGFkIDMgLSBNb2RlbG8gZGUgRWN1YWNpb25lcyBFc3RydWN0dXJhbGVzIgphdXRob3I6ICJEZXJlY2sgSWtlciBWaWxsYWZhw7FhIFJvbWVybyAtIEEwMDU3Mzc1NiIKZGF0ZTogIjIwMjYtMDgtMjQiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgIHRoZW1lOiBzcGFjZWxhYgotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFKQpgYGAKCmBgYHtyfQpsaWJyYXJ5KGxhdmFhbikKbGlicmFyeShsYXZhYW5QbG90KQpsaWJyYXJ5KHJlYWR4bCkKYGBgCgojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+RWplcmNpY2lvIDEuIEVzdHVkaW8gZGUgSG9semluZ2VyIHkgU3dpbmVmb3JkICgxOTM5KTwvc3Bhbj4KCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+Q29udGV4dG88L3NwYW4+CkxhIGJhc2UgZGUgZGF0b3MgcmVjb2dlIGxvcyByZXN1bHRhZG9zIGRlIDMwMSBlc3R1ZGlhbnRlcyBkZSBzw6lwdGltbyB5IG9jdGF2byBncmFkbyBkZSBkb3MgZXNjdWVsYXMsIFBhc3RldXIgeSBHcmFudC1XaGl0ZSwgYSBsb3MgcXVlIHNlIGxlcyBhcGxpY2Fyb24gbnVldmUgcHJ1ZWJhcyBkZSBhcHRpdHVkIG1lbnRhbC4gTGEgaWRlYSBkZWwgZXN0dWRpbyBlcmEgY29tcHJvYmFyIHNpIGVzYXMgbnVldmUgcHJ1ZWJhcyBtZWTDrWFuIGVuIHJlYWxpZGFkIHRyZXMgaGFiaWxpZGFkZXMgZGlzdGludGFzIHkgbm8gbnVldmUgY29zYXMgc2VwYXJhZGFzLgoKTGEgdGFibGEgaW5jbHV5ZSBsb3Mgc2lndWllbnRlcyBkYXRvczoKCiogeDE6IFBlcmNlcGNpw7NuIHZpc3VhbAoqIHgyOiBDdWJvcwoqIHgzOiBGaWd1cmFzIHJvbWJvaWRhbGVzCiogeDQ6IENvbXByZW5zacOzbiBkZSBww6FycmFmb3MKKiB4NTogQ29tcGxldGFyIG9yYWNpb25lcwoqIHg2OiBTaWduaWZpY2FkbyBkZSBwYWxhYnJhcwoqIHg3OiBTdW1hcyBjb24gdGllbXBvIGzDrW1pdGUKKiB4ODogQ29udGVvIGRlIHB1bnRvcyBjb24gdGllbXBvIGzDrW1pdGUKKiB4OTogRGlzY3JpbWluYWNpw7NuIGRlIGxldHJhcyByZWN0YXMgeSBjdXJ2YXMgY29uIHRpZW1wbyBsw61taXRlCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkltcG9ydGFyIGxhIGJhc2UgZGUgZGF0b3M8L3NwYW4+CgpgYGB7cn0KZGYxIDwtIEhvbHppbmdlclN3aW5lZm9yZDE5MzkKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkVudGVuZGVyIGxhIGJhc2UgZGUgZGF0b3M8L3NwYW4+CgpgYGB7cn0Kc3VtbWFyeShkZjEpCnN0cihkZjEpCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5Fc3RydWN0dXJhciBlbCBtb2RlbG88L3NwYW4+CgpMYXMgdHJlcyBwcmltZXJhcyBwcnVlYmFzIHNlIGFncnVwYW4gZW4gdW5hIGhhYmlsaWRhZCB2aXN1YWwsIGxhcyB0cmVzIHNpZ3VpZW50ZXMgZW4gdW5hIGhhYmlsaWRhZCB2ZXJiYWwgeSBsYXMgdHJlcyDDumx0aW1hcyBlbiB1bmEgaGFiaWxpZGFkIGRlIHZlbG9jaWRhZC4gTmluZ3VuYSBkZSBsYXMgdHJlcyBzZSBvYnNlcnZhIGRlIGZvcm1hIGRpcmVjdGEsIHBvciBlc28gc2UgZGVjbGFyYW4gY29tbyB2YXJpYWJsZXMgbGF0ZW50ZXMgY29uIGA9fmAuCgpgYGB7cn0KbW9kZWxvMSA8LSAnCiMgVmFyaWFibGVzIGxhdGVudGVzCnZpc3VhbCAgID1+IHgxICsgeDIgKyB4Mwp0ZXh0dWFsICA9fiB4NCArIHg1ICsgeDYKdmVsb2NpZGFkID1+IHg3ICsgeDggKyB4OQonCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5HZW5lcmFyIGVsIE1vZGVsbyBkZSBBbsOhbGlzaXMgRmFjdG9yaWFsIENvbmZpcm1hdG9yaW8gKEFGQyk8L3NwYW4+CgpgYGB7cn0KZml0MSA8LSBjZmEobW9kZWxvMSwgZGF0YSA9IGRmMSkKc3VtbWFyeShmaXQxLCBmaXQubWVhc3VyZXMgPSBUUlVFLCBzdGFuZGFyZGl6ZWQgPSBUUlVFKQpsYXZhYW5QbG90KGZpdDEsIGNvZWZzID0gVFJVRSwgY292ID0gVFJVRSkKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkNvbmNsdXNpw7NuPC9zcGFuPgoKTGFzIG51ZXZlIHBydWViYXMgc8OtIHNlIGFjb21vZGFuIGVuIHRyZXMgaGFiaWxpZGFkZXMuIFRvZGFzIGxhcyBjYXJnYXMgcmVzdWx0YW4gc2lnbmlmaWNhdGl2YXMgeSBlbiBsYSB2ZXJzacOzbiBlc3RhbmRhcml6YWRhIGNhc2kgdG9kYXMgcXVlZGFuIHBvciBhcnJpYmEgZGUgMC40LCBhc8OtIHF1ZSBjYWRhIHBydWViYSBhcG9ydGEgYSBsYSBoYWJpbGlkYWQgcXVlIGxlIGNvcnJlc3BvbmRlLiBMYXMgY2FyZ2FzIG3DoXMgZmxvamFzIHNvbiBsYXMgZGUgeDIgeSB4OSwgcXVlIHNvbiBsYXMgcHJ1ZWJhcyBxdWUgbWVub3Mgc2UgcGFyZWNlbiBhbCByZXN0byBkZSBzdSBncnVwby4KCkVsIGFqdXN0ZSB0b2RhdsOtYSBubyBlcyBmaW5vLiBMYSBjaGkgY3VhZHJhZGEgc2FsZSBzaWduaWZpY2F0aXZhIHkgZWwgUk1TRUEgcXVlZGEgcG9yIGFycmliYSBkZSBsbyBhY2VwdGFibGUsIGFzw60gcXVlIGhheSByZWxhY2lvbmVzIGVudHJlIHBydWViYXMgcXVlIGVsIG1vZGVsbyBkZSB0cmVzIGZhY3RvcmVzIG5vIGVzdMOhIHJlY29naWVuZG8uIExhIGVzdHJ1Y3R1cmEgZGUgZm9uZG8gc2Ugc29zdGllbmUsIHBlcm8gZWwgbW9kZWxvIGFkbWl0ZSBkZXB1cmFjacOzbi4KCkxhcyB0cmVzIGhhYmlsaWRhZGVzIGNvcnJlbGFjaW9uYW4gZW50cmUgc8OtLCBsYSB2aXN1YWwgY29uIGxhIGRlIHZlbG9jaWRhZCBtw6FzIHF1ZSBjb24gbGEgdmVyYmFsLiBVbiBhbHVtbm8gYnVlbm8gZW4gdW5hIHRpZW5kZSBhIHNlciBidWVubyBlbiBsYXMgb3RyYXMsIHBlcm8gbm8gbG8gc3VmaWNpZW50ZSBjb21vIHBhcmEgZGVjaXIgcXVlIHNlIHRyYXRhIGRlIHVuYSBzb2xhIGludGVsaWdlbmNpYSBnZW5lcmFsLgoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkVqZXJjaWNpbyAyLiBEZW1vY3JhY2lhIFBvbMOtdGljYSBlIEluZHVzdHJpYWxpemFjacOzbjwvc3Bhbj4KCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+Q29udGV4dG88L3NwYW4+CkxhIGJhc2UgZGUgZGF0b3MgY29udGllbmUgZGlzdGludGFzIG1lZGljaW9uZXMgc29icmUgbGEgZGVtb2NyYWNpYSBwb2zDrXRpY2EgZSBpbmR1c3RyaWFsaXphY2nDs24gZW4gcGHDrXNlcyBkZSBkZXNhcnJvbGxvIGR1cmFudGUgMTk2MCB5IDE5NjUuCgpMYSB0YWJsYSBpbmNsdXllIGxvcyBzaWd1aWVudGVzIGRhdG9zOgoKKiB5MTogQ2FsaWZpY2FjaW9uZXMgc29icmUgbGliZXJ0YWQgZGUgcHJlbnNhIGVuIDE5NjAKKiB5MjogTGliZXJ0YWQgZGUgbGEgb3Bvc2ljacOzbiBwb2zDrXRpY2EgZW4gMTk2MAoqIHkzOiBJbXBhcmNpYWxpZGFkIGRlIGVsZWNjaW9uZXMgZW4gMTk2MAoqIHk0OiBFZmljYWNpYSBkZSBsYSBsZWdpc2xhdHVyYSBlbGVjdGEgZW4gMTk2MAoqIHk1OiBDYWxpZmljYWNpb25lcyBzb2JyZSBsaWJlcnRhZCBkZSBwcmVuc2EgZW4gMTk2NQoqIHk2OiBMaWJlcnRhZCBkZSBsYSBvcG9zaWNpw7NuIHBvbMOtdGljYSBlbiAxOTY1CiogeTc6IEltcGFyY2lhbGlkYWQgZGUgZWxlY2Npb25lcyBlbiAxOTY1CiogeTg6IEVmaWNhY2lhIGRlIGxhIGxlZ2lzbGF0dXJhIGVsZWN0YSBlbiAxOTY1CiogeDE6IFBJQiBwZXIgY8OhcGl0YSBlbiAxOTYwCiogeDI6IENvbnN1bW8gZGUgZW5lcmfDrWEgaW5hbmltYWRhIHBlciBjw6FwaXRhIGVuIDE5NjAKKiB4MzogUG9yY2VudGFqZSBkZSBsYSBmdWVyemEgbGFib3JhbCBlbiBsYSBpbmR1c3RyaWEgZW4gMTk2MAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5JbXBvcnRhciBsYSBiYXNlIGRlIGRhdG9zPC9zcGFuPgoKYGBge3J9CmRmMiA8LSBQb2xpdGljYWxEZW1vY3JhY3kKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkVudGVuZGVyIGxhIGJhc2UgZGUgZGF0b3M8L3NwYW4+CgpgYGB7cn0Kc3VtbWFyeShkZjIpCnN0cihkZjIpCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5Fc3RydWN0dXJhciBlbCBtb2RlbG88L3NwYW4+CgpgYGB7cn0KbW9kZWxvMiA8LSAnCiMgVmFyaWFibGVzIGxhdGVudGVzCmRlbW9jcmFjaWExOTYwID1+IHkxICsgeTIgKyB5MyArIHk0CmRlbW9jcmFjaWExOTY1ID1+IHk1ICsgeTYgKyB5NyArIHk4CmluZHVzdHJpYTE5NjAgID1+IHgxICsgeDIgKyB4MwoKIyBSZWdyZXNpb25lcwpkZW1vY3JhY2lhMTk2MCB+IGluZHVzdHJpYTE5NjAKZGVtb2NyYWNpYTE5NjUgfiBpbmR1c3RyaWExOTYwICsgZGVtb2NyYWNpYTE5NjAKCiMgVmFyaWFuemFzIHkgY292YXJpYW56YXMKCiMgSW50ZXJjZXB0bwonCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5HZW5lcmFyIGVsIE1vZGVsbyBkZSBFY3VhY2lvbmVzIEVzdHJ1Y3R1cmFsZXMgKFNFTSk8L3NwYW4+CgpgYGB7cn0KZml0MiA8LSBzZW0obW9kZWxvMiwgZGF0YSA9IGRmMikKc3VtbWFyeShmaXQyLCBmaXQubWVhc3VyZXMgPSBUUlVFLCBzdGFuZGFyZGl6ZWQgPSBUUlVFKQpsYXZhYW5QbG90KGZpdDIsIGNvZWZzID0gVFJVRSwgY292ID0gVFJVRSkKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkNvbmNsdXNpw7NuPC9zcGFuPgpMYSBkZW1vY3JhY2lhIGN1ZW50YSBjb24gOCBkZXJlY2hvcyB5IGxpYmVydGFkZXMgcG9sw610aWNhczoKCjEuIExpYmVydGFkIGRlIGZvcm1hciBvcmdhbml6YWNpb25lcyB5IHVuaXJzZSBhIGVsbGFzLgoyLiBMaWJlcnRhZCBkZSBleHByZXNpw7NuLgozLiBEZXJlY2hvIGFsIHZvdG8uCjQuIERlcmVjaG8gZGUgZWxlZ2lyIGNhcmdvcyBww7pibGljb3MuCjUuIERlcmVjaG8gZGUgbG9zIGzDrWRlcmVzIGEgY29tcGV0aXIgcG9yIHZvdG9zLgo2LiBMaWJlcnRhZCBkZSB0ZW5lciBmdWVudGVzIGFsdGVybmF0aXZhcyBkZSBpbmZvcm1hY2nDs24uCjcuIERlcmVjaG8gZGUgZWxlY2Npb25lcyBsaWJyZXMgeSBqdXN0YXMuCjguIERlcmVjaG8gZGUgaW5zdGl0dWNpb25lcyBwYXJhIGhhY2VyIHF1ZSBsYXMgcG9sw610aWNhcyBndWJlcm5hbWVudGFsZXMgZGVwZW5kYW4gZGUgbG9zIHZvdG9zIHkgb3RyYXMgZXhwcmVzaW9uZXMgZGUgcHJlZmVyZW5jaWEuCgpFbiBlbCBsaWJybyAiV2h5IG5hdGlvbnMgZmFpbD8iIGxvcyBhdXRvcmVzIGNvbmNsdXllbiBxdWUgc29uIGxhcyBpbnN0aXR1Y2lvbmVzIGRlbCBwYcOtcyBsYXMgcXVlIGRldGVybWluYW4gZWwgw6l4aXRvIG8gZWwgZnJhY2Fzby4KCkVsIG1vZGVsbyBhcHVudGEgZW4gZXNhIG1pc21hIGRpcmVjY2nDs24uIExhIGluZHVzdHJpYWxpemFjacOzbiBkZSAxOTYwIGVtcHVqYSBlbCBuaXZlbCBkZSBkZW1vY3JhY2lhIGRlIGVzZSBtaXNtbyBhw7FvIHkgdGFtYmnDqW4gZWwgZGUgMTk2NSwgcGVybyBlbCBlZmVjdG8gZGlyZWN0byBzb2JyZSAxOTY1IGVzIGNoaWNvLiBMbyBxdWUgbcOhcyBwZXNhIHBhcmEgZXhwbGljYXIgbGEgZGVtb2NyYWNpYSBkZSAxOTY1IGVzIGxhIGRlbW9jcmFjaWEgcXVlIGVsIHBhw61zIHlhIHRlbsOtYSBlbiAxOTYwLiBFbiBvdHJhcyBwYWxhYnJhcywgZWwgaW5ncmVzbyB5IGxhIGluZHVzdHJpYSBhYnJlbiBsYSBwdWVydGEsIGxvIHF1ZSBtYW50aWVuZSBlbCBuaXZlbCBzb24gbGFzIGluc3RpdHVjaW9uZXMgcXVlIHlhIGVzdGFiYW4gcHVlc3Rhcy4KCkxhcyBjYXJnYXMgZGUgbG9zIHRyZXMgY29uc3RydWN0b3Mgc29uIGFsdGFzIHkgc2lnbmlmaWNhdGl2YXMsIGFzw60gcXVlIGxhcyBjdWF0cm8gcHJlZ3VudGFzIGRlIGNhZGEgYcOxbyBzw60gbWlkZW4gbG8gbWlzbW8geSBsYXMgdHJlcyB2YXJpYWJsZXMgZWNvbsOzbWljYXMgc8OtIG1pZGVuIGluZHVzdHJpYWxpemFjacOzbi4gRWwgYWp1c3RlIHNlIHF1ZWRhIGEgbWVkaWFzLiBFbCBDRkkgZGUgMC45NSBlc3TDoSBiaWVuLCBwZXJvIGxhIGNoaSBjdWFkcmFkYSBzYWxlIHNpZ25pZmljYXRpdmEgeSBlbCBSTVNFQSBkZSAwLjEwIHF1ZWRhIGFycmliYSBkZSBsbyBhY2VwdGFibGUsIGFzw60gcXVlIGhheSBhbGdvIHF1ZSBlbCBtb2RlbG8gbm8gZXN0w6EgcmVjb2dpZW5kby4gTGEgZXhwbGljYWNpw7NuIG3DoXMgcmF6b25hYmxlIGVzIHF1ZSBzb24gbGFzIG1pc21hcyBjdWF0cm8gcHJlZ3VudGFzIGFwbGljYWRhcyBlbiAxOTYwIHkgZW4gMTk2NSwgYXPDrSBxdWUgbG9zIGVycm9yZXMgZGUgdW5hIG1pc21hIHByZWd1bnRhIGVuIGxvcyBkb3MgYcOxb3Mgc2UgcGFyZWNlbiBlbnRyZSBzw60geSBlbCBtb2RlbG8gbm8gdGllbmUgY8OzbW8gcmVwcmVzZW50YXJsby4KCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5FamVyY2ljaW8gMy4gQmllbmVzdGFyIGRlIGxvcyBDb2xhYm9yYWRvcmVzPC9zcGFuPgoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5Db250ZXh0bzwvc3Bhbj4KTGEgYmFzZSBkZSBkYXRvcyByZcO6bmUgbGFzIHJlc3B1ZXN0YXMgZGUgY29sYWJvcmFkb3JlcyBhIHRyZXMgaW5zdHJ1bWVudG9zIGRpc3RpbnRvcywgbWVkaWRvcyB0b2RvcyBlbiBlc2NhbGEgdGlwbyBMaWtlcnQuCgpFbCBwcmltZXJvIG1pZGUgbGFzIGV4cGVyaWVuY2lhcyBkZSByZWN1cGVyYWNpw7NuLCBlcyBkZWNpciwgcXXDqSB0YW50byBwZXJjaWJlIHVuYSBwZXJzb25hIHF1ZSBsbyBxdWUgaGFjZSBmdWVyYSBkZWwgaG9yYXJpbyBsYWJvcmFsIGxlIGRldnVlbHZlIGxhIGVuZXJnw61hIHBhcmEgYWd1YW50YXIgZWwgZXN0csOpcyB5IGxhcyBwcmVzaW9uZXMgZGVsIHRyYWJham8uIFNlIGRpdmlkZSBlbiBjdWF0cm8gZG9taW5pb3M6CgoqIFJQRDogRGVzYXBlZ28gcHNpY29sw7NnaWNvLCBzZW50aXJzZSBkZXNwZWphZG8gZGVsIGNvbnRleHRvIGxhYm9yYWwgeSBubyBlc3RhciBjb250ZXN0YW5kbyBjb3JyZW9zLCBsbGFtYWRhcyBvIG1lbnNhamVzIGRlIHRyYWJham8uCiogUlJFOiBSZWxhamFjacOzbiwgYWN0aXZpZGFkZXMgcXVlIGJhamFuIGxhIGFjdGl2YWNpw7NuIGRlbCBzaXN0ZW1hIG5lcnZpb3NvIHkgc3ViZW4gZWwgYWZlY3RvIHBvc2l0aXZvLCBjb21vIG1lZGl0YXIgbyBjYW1pbmFyLgoqIFJNQTogRG9taW5pbywgYWN0aXZpZGFkZXMgcmV0YWRvcmFzIGZ1ZXJhIGRlbCB0cmFiYWpvIHF1ZSBkYW4gbGEgb3BvcnR1bmlkYWQgZGUgYXByZW5kZXIgYWxnbyBudWV2by4KKiBSQ086IENvbnRyb2wgc29icmUgZWwgdGllbXBvIGxpYnJlLCBxdcOpIHRhbnRvIGRlY2lkZSBsYSBwZXJzb25hIHF1w6ksIGPDs21vIHkgY3XDoW5kbyBoYWNlciBzdXMgYWN0aXZpZGFkZXMuCgpFbCBzZWd1bmRvIG1pZGUgbGEgZW5lcmfDrWEgcmVjdXBlcmFkYToKCiogRU46IFBlcmNlcGNpw7NuIGRlIGVuZXJnw61hIHJlY3VwZXJhZGEgcG9yIHBhcnRlIGRlbCBjb2xhYm9yYWRvci4KCkVsIHRlcmNlcm8gbWlkZSBlbCBlbmdhZ2VtZW50IGxhYm9yYWwsIGVudGVuZGlkbyBjb21vIHVuIGVzdGFkbyBtZW50YWwgcG9zaXRpdm8geSBzYXRpc2ZhY3RvcmlvIGZyZW50ZSBhbCB0cmFiYWpvOgoKKiBFVkk6IFZpZ29yLCBhbHRvcyBuaXZlbGVzIGRlIGVuZXJnw61hIHkgcmVzaXN0ZW5jaWEgbWVudGFsIG1pZW50cmFzIHNlIHRyYWJhamEuCiogRURFOiBEZWRpY2FjacOzbiwgc2lnbmlmaWNhZG8sIGVudHVzaWFzbW8geSBvcmd1bGxvIHBvciBlbCB0cmFiYWpvIHF1ZSBzZSBoYWNlLgoqIEVBQjogQWJzb3JjacOzbiwgc2VudGlyc2UgY29uY2VudHJhZG8geSBmZWxpeiBlbiBlbCB0cmFiYWpvLCBjb24gbGEgc2Vuc2FjacOzbiBkZSBxdWUgZWwgdGllbXBvIHBhc2Egdm9sYW5kby4KCkFkZW3DoXMgZGUgbG9zIMOtdGVtcywgbGEgYmFzZSB0cmFlIHRyZXMgdmFyaWFibGVzIGRlIGNvbnRyb2w6IEdFTiwgRVhQRVIgeSBFREFELgoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5JbXBvcnRhciBsYSBiYXNlIGRlIGRhdG9zPC9zcGFuPgoKYGBge3J9CiMgZmlsZS5jaG9vc2UoKQpkZjMgPC0gcmVhZF9leGNlbCgiQzovVXNlcnMvZm9jdXMvRG93bmxvYWRzL0RhdG9zX1NFTV9FbmcueGxzeCIpCgojIExvcyBub21icmVzIGRlIGxhcyBjb2x1bW5hcyB0cmFlbiB1biBlc3BhY2lvIGFsIGZpbmFsIHkgbGF2YWFuIG5vIGxvcyByZWNvbm9jZSBhc8OtCm5hbWVzKGRmMykgPC0gdHJpbXdzKG5hbWVzKGRmMykpCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5FbnRlbmRlciBsYSBiYXNlIGRlIGRhdG9zPC9zcGFuPgoKYGBge3J9CnN1bW1hcnkoZGYzKQpzdHIoZGYzKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+UGFydGUgMS4gRXhwZXJpZW5jaWFzIGRlIFJlY3VwZXJhY2nDs248L3NwYW4+CgpgYGB7cn0KbW9kZWxvMyA8LSAnICMgUmVncmVzaW9uZXMKCiAgICAjIFZhcmlhYmxlcyBsYXRlbnRlcwogICAgZGVzYXBlZ28gPX4gUlBEMDEgKyBSUEQwMiArIFJQRDAzICsgUlBEMDUgKyBSUEQwNiArIFJQRDA3ICsgUlBEMDggKyBSUEQwOSArIFJQRDEwCiAgICByZWxhamFjaW9uID1+IFJSRTAyICsgUlJFMDMgKyBSUkUwNCArIFJSRTA1ICsgUlJFMDYgKyBSUkUwNyArIFJSRTEwCiAgICBjb250cm9sID1+IFJDTzAyICsgUkNPMDMgKyBSQ08wNCArIFJDTzA1ICsgUkNPMDYgKyBSQ08wNwogICAgZG9taW5pbyA9fiBSTUEwMiArIFJNQTAzICsgUk1BMDQgKyBSTUEwNSArIFJNQTA2ICsgUk1BMDcgKyBSTUEwOCArIFJNQTA5ICsgUk1BMTAKJwpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+R2VuZXJhciBlbCBNb2RlbG8gZGUgQW7DoWxpc2lzIEZhY3RvcmlhbCBDb25maXJtYXRvcmlvIChBRkMpPC9zcGFuPgoKYGBge3J9CmZpdDMgPC0gY2ZhKG1vZGVsbzMsIGRhdGEgPSBkZjMpCnN1bW1hcnkoZml0MywgZml0Lm1lYXN1cmVzID0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSkKbGF2YWFuUGxvdChmaXQzLCBjb2VmcyA9IFRSVUUsIGNvdiA9IFRSVUUpCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5QYXJ0ZSAyLiBFbmVyZ8OtYSBSZWN1cGVyYWRhPC9zcGFuPgoKYGBge3J9Cm1vZGVsbzQgPC0gJyAjIFJlZ3Jlc2lvbmVzCgogICAgIyBWYXJpYWJsZXMgbGF0ZW50ZXMKICAgIGVuZXJnaWEgPX4gRU4wMSArIEVOMDIgKyBFTjA0ICsgRU4wNSArIEVOMDYgKyBFTjA3ICsgRU4wOAoKICAgICMgVmFyaWFuemFzIHkgY292YXJpYW56YXMKCiAgICAjIEludGVyY2VwdG8KJwpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+R2VuZXJhciBlbCBBbsOhbGlzaXMgRmFjdG9yaWFsIENvbmZpcm1hdG9yaW8gKENGQSk8L3NwYW4+CgpgYGB7cn0KZml0NCA8LSBjZmEobW9kZWxvNCwgZGF0YSA9IGRmMykKc3VtbWFyeShmaXQ0LCBmaXQubWVhc3VyZXMgPSBUUlVFLCBzdGFuZGFyZGl6ZWQgPSBUUlVFKQpsYXZhYW5QbG90KGZpdDQsIGNvZWZzID0gVFJVRSwgY292ID0gVFJVRSkKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPlBhcnRlIDMuIEVuZ2FnZW1lbnQgTGFib3JhbDwvc3Bhbj4KCmBgYHtyfQptb2RlbG81IDwtICcgIyBSZWdyZXNpb25lcwoKICAgICMgVmFyaWFibGVzIGxhdGVudGVzCiAgICB2aWdvciA9fiBFVkkwMSArIEVWSTAyICsgRVZJMDMKICAgIGRlZGljYWNpb24gPX4gRURFMDEgKyBFREUwMiArIEVERTAzCiAgICBhYnNvcmNpb24gPX4gRUFCMDEgKyBFQUIwMiArIEVBQjAzCgogICAgIyBWYXJpYW56YXMgeSBjb3ZhcmlhbnphcwoKICAgICMgSW50ZXJjZXB0bwonCmBgYAoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlIj5HZW5lcmFyIGVsIEFuw6FsaXNpcyBGYWN0b3JpYWwgQ29uZmlybWF0b3JpbyAoQ0ZBKTwvc3Bhbj4KCmBgYHtyfQpmaXQ1IDwtIGNmYShtb2RlbG81LCBkYXRhID0gZGYzKQpzdW1tYXJ5KGZpdDUsIGZpdC5tZWFzdXJlcyA9IFRSVUUsIHN0YW5kYXJkaXplZCA9IFRSVUUpCmxhdmFhblBsb3QoZml0NSwgY29lZnMgPSBUUlVFLCBjb3YgPSBUUlVFKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+UGFydGUgMyAoY29udGludWFjacOzbikuIEFuw6FsaXNpcyBkZSBzZW5kZXJvczogZWZlY3RvIG1lZGlhZG9yIGRlIGxhIGVuZXJnw61hIHJlY3VwZXJhZGE8L3NwYW4+CgpFbCBhbsOhbGlzaXMgZGUgc2VuZGVyb3MgdHJhYmFqYSBjb24gdmFyaWFibGVzIG9ic2VydmFkYXMsIGFzw60gcXVlIHByaW1lcm8gc2UgY29uc3RydXllbiBsb3MgcHVudGFqZXMgZGUgY2FkYSBlc2NhbGEgcHJvbWVkaWFuZG8gc3VzIMOtdGVtcy4gTGFzIGN1YXRybyBkaW1lbnNpb25lcyBkZSByZWN1cGVyYWNpw7NuIHNlIHByb21lZGlhbiBlbnRyZSBzw60gcGFyYSBmb3JtYXIgZWwgcHVudGFqZSBnZW5lcmFsIGRlIGV4cGVyaWVuY2lhcyBkZSByZWN1cGVyYWNpw7NuLCB5IHZpZ29yLCBkZWRpY2FjacOzbiB5IGFic29yY2nDs24gc2UgcHJvbWVkaWFuIHBhcmEgZm9ybWFyIGVuZ2FnZW1lbnQuCgpgYGB7cn0KcHVudGFqZSA8LSBmdW5jdGlvbihwcmVmaWpvKSByb3dNZWFucyhkZjNbLCBncmVwKHBhc3RlMCgiXiIsIHByZWZpam8pLCBuYW1lcyhkZjMpKV0sIG5hLnJtID0gVFJVRSkKCmRmMyRkZXNhcGVnb19wICAgPC0gcHVudGFqZSgiUlBEIikKZGYzJHJlbGFqYWNpb25fcCA8LSBwdW50YWplKCJSUkUiKQpkZjMkZG9taW5pb19wICAgIDwtIHB1bnRhamUoIlJNQSIpCmRmMyRjb250cm9sX3AgICAgPC0gcHVudGFqZSgiUkNPIikKZGYzJGVuZXJnaWFfcCAgICA8LSBwdW50YWplKCJFTjAiKQoKZGYzJHJlY3VwZXJhY2lvbiA8LSByb3dNZWFucyhkZjNbLCBjKCJkZXNhcGVnb19wIiwgInJlbGFqYWNpb25fcCIsICJkb21pbmlvX3AiLCAiY29udHJvbF9wIildKQpkZjMkZW5nYWdlbWVudCAgIDwtIHJvd01lYW5zKGRmM1ssIGdyZXAoIl5FVkl8XkVERXxeRUFCIiwgbmFtZXMoZGYzKSldLCBuYS5ybSA9IFRSVUUpCmBgYAoKU2UgcGxhbnRlYSBsYSBtZWRpYWNpw7NuIHBhcmNpYWw6IGxhIHJlY3VwZXJhY2nDs24gbGxlZ2EgYWwgZW5nYWdlbWVudCBwb3IgZG9zIGNhbWlub3MsIHVubyBpbmRpcmVjdG8gYSB0cmF2w6lzIGRlIGxhIGVuZXJnw61hIHJlY3VwZXJhZGEgeSBvdHJvIGRpcmVjdG8uCgpgYGB7cn0KbW9kZWxvNiA8LSAnICMgUmVncmVzaW9uZXMKICAgIGVuZXJnaWFfcCAgfiBhKnJlY3VwZXJhY2lvbgogICAgZW5nYWdlbWVudCB+IGIqZW5lcmdpYV9wICsgYypyZWN1cGVyYWNpb24KCiAgICAjIEVmZWN0b3MKICAgIGluZGlyZWN0byA6PSBhKmIKICAgIGRpcmVjdG8gICA6PSBjCiAgICB0b3RhbCAgICAgOj0gYyArIGEqYgonCgpmaXQ2IDwtIHNlbShtb2RlbG82LCBkYXRhID0gZGYzKQpzdW1tYXJ5KGZpdDYsIGZpdC5tZWFzdXJlcyA9IFRSVUUsIHN0YW5kYXJkaXplZCA9IFRSVUUpCmxhdmFhblBsb3QoZml0NiwgY29lZnMgPSBUUlVFLCBjb3YgPSBUUlVFKQpgYGAKCkVzdGUgbW9kZWxvIGVzdMOhIHNhdHVyYWRvLCB0aWVuZSBjZXJvIGdyYWRvcyBkZSBsaWJlcnRhZCwgYXPDrSBxdWUgc3VzIMOtbmRpY2VzIGRlIGFqdXN0ZSBubyBpbmZvcm1hbiBuYWRhLiBQYXJhIHBvZGVyIGV2YWx1YXJsb3Mgc2UgZXN0aW1hIHRhbWJpw6luIGxhIHZlcnNpw7NuIGRlIG1lZGlhY2nDs24gdG90YWwsIHF1aXRhbmRvIGVsIGNhbWlubyBkaXJlY3RvLgoKYGBge3J9Cm1vZGVsbzcgPC0gJyAjIFJlZ3Jlc2lvbmVzCiAgICBlbmVyZ2lhX3AgIH4gYSpyZWN1cGVyYWNpb24KICAgIGVuZ2FnZW1lbnQgfiBiKmVuZXJnaWFfcAoKICAgICMgRWZlY3RvcwogICAgaW5kaXJlY3RvIDo9IGEqYgonCgpmaXQ3IDwtIHNlbShtb2RlbG83LCBkYXRhID0gZGYzKQpzdW1tYXJ5KGZpdDcsIGZpdC5tZWFzdXJlcyA9IFRSVUUsIHN0YW5kYXJkaXplZCA9IFRSVUUpCmxhdmFhblBsb3QoZml0NywgY29lZnMgPSBUUlVFLCBjb3YgPSBUUlVFKQpgYGAKCmBgYHtyfQphbm92YShmaXQ3LCBmaXQ2KQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+UGFydGUgNC4gTW9kZWxvIGRlIG1lZGljacOzbjwvc3Bhbj4KCkVsIG1vZGVsbyBkZSBzZW5kZXJvcyB1c2EgcHJvbWVkaW9zIHkgZGEgcG9yIGhlY2hvIHF1ZSBjYWRhIGVzY2FsYSBtaWRlIGJpZW4gbG8gcXVlIGRpY2UgbWVkaXIuIEVsIG1vZGVsbyBkZSBtZWRpY2nDs24gcG9uZSBlc28gYSBwcnVlYmE6IGNhZGEgY29uc3RydWN0byB2dWVsdmUgYSBzZXIgbGF0ZW50ZSwgc2UgZXN0aW1hIGEgcGFydGlyIGRlIHN1cyDDrXRlbXMgeSBzZSBkZWphIGNvcnJlbGFjaW9uYXIgbGlicmVtZW50ZSBjb24gbG9zIGRlbcOhcywgc2luIGltcG9uZXIgdG9kYXbDrWEgbmluZ3VuYSBkaXJlY2Npw7NuIGVudHJlIGVsbG9zLgoKYGBge3J9Cm1vZGVsbzggPC0gJyAjIFJlZ3Jlc2lvbmVzCgogICAgIyBWYXJpYWJsZXMgbGF0ZW50ZXMKICAgIGRlc2FwZWdvID1+IFJQRDAxICsgUlBEMDIgKyBSUEQwMyArIFJQRDA1ICsgUlBEMDYgKyBSUEQwNyArIFJQRDA4ICsgUlBEMDkgKyBSUEQxMAogICAgcmVsYWphY2lvbiA9fiBSUkUwMiArIFJSRTAzICsgUlJFMDQgKyBSUkUwNSArIFJSRTA2ICsgUlJFMDcgKyBSUkUxMAogICAgY29udHJvbCA9fiBSQ08wMiArIFJDTzAzICsgUkNPMDQgKyBSQ08wNSArIFJDTzA2ICsgUkNPMDcKICAgIGRvbWluaW8gPX4gUk1BMDIgKyBSTUEwMyArIFJNQTA0ICsgUk1BMDUgKyBSTUEwNiArIFJNQTA3ICsgUk1BMDggKyBSTUEwOSArIFJNQTEwCiAgICBlbmVyZ2lhID1+IEVOMDEgKyBFTjAyICsgRU4wNCArIEVOMDUgKyBFTjA2ICsgRU4wNyArIEVOMDgKICAgIHZpZ29yID1+IEVWSTAxICsgRVZJMDIgKyBFVkkwMwogICAgZGVkaWNhY2lvbiA9fiBFREUwMSArIEVERTAyICsgRURFMDMKICAgIGFic29yY2lvbiA9fiBFQUIwMSArIEVBQjAyICsgRUFCMDMKCiAgICAjIFZhcmlhbnphcyB5IGNvdmFyaWFuemFzCgogICAgIyBJbnRlcmNlcHRvCicKCmZpdDggPC0gY2ZhKG1vZGVsbzgsIGRhdGEgPSBkZjMpCnN1bW1hcnkoZml0OCwgZml0Lm1lYXN1cmVzID0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSkKYGBgCgpgYGB7cn0Kcm91bmQoY2JpbmQoCiAgUmVjdXBlcmFjaW9uID0gZml0TWVhc3VyZXMoZml0MywgYygiY2hpc3EiLCJkZiIsImNmaSIsInRsaSIsInJtc2VhIiwic3JtciIpKSwKICBFbmVyZ2lhICAgICAgPSBmaXRNZWFzdXJlcyhmaXQ0LCBjKCJjaGlzcSIsImRmIiwiY2ZpIiwidGxpIiwicm1zZWEiLCJzcm1yIikpLAogIEVuZ2FnZW1lbnQgICA9IGZpdE1lYXN1cmVzKGZpdDUsIGMoImNoaXNxIiwiZGYiLCJjZmkiLCJ0bGkiLCJybXNlYSIsInNybXIiKSksCiAgTWVkaWNpb24gICAgID0gZml0TWVhc3VyZXMoZml0OCwgYygiY2hpc3EiLCJkZiIsImNmaSIsInRsaSIsInJtc2VhIiwic3JtciIpKQopLCAzKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+Q29uY2x1c2nDs248L3NwYW4+CgpMYXMgY3VhdHJvIGRpbWVuc2lvbmVzIGRlIHJlY3VwZXJhY2nDs24gc2Ugc29zdGllbmVuLiBMb3Mgw610ZW1zIGRlIGRlc2FwZWdvLCByZWxhamFjacOzbiwgZG9taW5pbyB5IGNvbnRyb2wgY2FyZ2FuIGNhZGEgdW5vIGVuIHN1IGZhY3RvciB5IHRvZGFzIGxhcyBjYXJnYXMgc2FsZW4gc2lnbmlmaWNhdGl2YXMsIGFzw60gcXVlIGxhIGVzY2FsYSBzw60gZGlzdGluZ3VlIGN1YXRybyBtYW5lcmFzIGRpc3RpbnRhcyBkZSByZWN1cGVyYXJzZSB5IG5vIHVuYSBzb2xhLiBFbCBhanVzdGUgc2UgcXVlZGEgY29ydG8sIGVsIENGSSByb25kYSAwLjg5IHkgZWwgUk1TRUEgYW5kYSBhcnJpYmEgZGUgMC4wOSwgbG8gY3VhbCBlcyBlc3BlcmFibGUgZW4gdW5hIGVzY2FsYSBkZSAzMSDDrXRlbXMgZG9uZGUgaGF5IHByZWd1bnRhcyBxdWUgc2UgcGFyZWNlbiBtdWNobyBlbnRyZSBzw60gZGVudHJvIGRlIGNhZGEgZGltZW5zacOzbi4gQWjDrSBlcyBkb25kZSBjb252aWVuZSBkZXB1cmFyLCBxdWl0YW5kbyBsb3Mgw610ZW1zIGNvbiBjYXJnYSBtw6FzIGJhamEgbyBkZWphbmRvIGNvcnJlbGFjaW9uYXIgbG9zIGVycm9yZXMgZGUgbGFzIHByZWd1bnRhcyBjYXNpIGlkw6ludGljYXMuCgpMb3Mgc2lldGUgw610ZW1zIGRlIGVuZXJnw61hIHJlY3VwZXJhZGEgc2UgYWdydXBhbiBlbiB1bmEgc29sYSBkaW1lbnNpw7NuIHNpbiBwcm9ibGVtYS4gRXMgZWwgbW9kZWxvIGNvbiBtZWpvciBhanVzdGUgZGUgbG9zIHRyZXMsIGNvbiBDRkkgZGUgMC45ODYgeSBTUk1SIGRlIDAuMDEyLCBhc8OtIHF1ZSB0cmF0YXIgbGEgZW5lcmfDrWEgcmVjdXBlcmFkYSBjb21vIHVuIMO6bmljbyBjb25zdHJ1Y3RvIGVzdMOhIGJpZW4ganVzdGlmaWNhZG8uCgpFbCBlbmdhZ2VtZW50IGVzIGVsIHF1ZSBwZW9yIHNlIHBvcnRhLiBWaWdvciwgZGVkaWNhY2nDs24geSBhYnNvcmNpw7NuIHNhbGVuIHRhbiBjb3JyZWxhY2lvbmFkYXMgZW50cmUgc8OtIHF1ZSBlbCBtb2RlbG8gZGUgdHJlcyBmYWN0b3JlcyBxdWVkYSBmb3J6YWRvLCBjb24gdW4gUk1TRUEgZGUgMC4yMTUuIEVuIGxhIHByw6FjdGljYSBsb3MgY29sYWJvcmFkb3JlcyBkZSBlc3RhIG11ZXN0cmEgbm8gZGlzdGluZ3VlbiBtdWNobyBlbnRyZSBzZW50aXJzZSBjb24gZW5lcmfDrWEsIHNlbnRpcnNlIG9yZ3VsbG9zb3MgeSBzZW50aXJzZSBhYnNvcnRvcywgZXMgdG9kbyBsbyBtaXNtbyBwYXJhIGVsbG9zLiBQb3IgZXNvIGVuIGVsIGFuw6FsaXNpcyBkZSBzZW5kZXJvcyB1c2FyIHVuIHNvbG8gcHVudGFqZSBkZSBlbmdhZ2VtZW50IG5vIHRyYWljaW9uYSBsb3MgZGF0b3MuCgpTb2JyZSBsYSBtZWRpYWNpw7NuLCBlbCByZXN1bHRhZG8gZXMgY2xhcm8uIExhIHJlY3VwZXJhY2nDs24gcHJlZGljZSBmdWVydGUgbGEgZW5lcmfDrWEgcmVjdXBlcmFkYSwgY29uIHVuIGNvZWZpY2llbnRlIGVzdGFuZGFyaXphZG8gZGUgMC43Ni4gTGEgZW5lcmfDrWEgcmVjdXBlcmFkYSBhIHN1IHZleiBwcmVkaWNlIGVsIGVuZ2FnZW1lbnQgY29uIDAuNDkuIEVsIGVmZWN0byBpbmRpcmVjdG8gZXMgZGUgMC4zNyB5IGVzIHNpZ25pZmljYXRpdm8sIG1pZW50cmFzIHF1ZSBlbCBlZmVjdG8gZGlyZWN0byBkZSBsYSByZWN1cGVyYWNpw7NuIHNvYnJlIGVsIGVuZ2FnZW1lbnQgc2UgcXVlZGEgZW4gMC4xNiBjb24gdW4gcCB2YWxvciBkZSAwLjA1NiwgZXMgZGVjaXIgcXVlIG5vIGFsY2FuemEgYSBzZXIgc2lnbmlmaWNhdGl2by4gRGVsIGVmZWN0byB0b3RhbCBkZSAwLjUyLCBsYSBtYXlvciBwYXJ0ZSB2aWFqYSBwb3IgbGEgZW5lcmfDrWEgcmVjdXBlcmFkYS4KCkVzbyBzaWduaWZpY2EgcXVlIGRlc2NhbnNhciBubyBzdWJlIGVsIGVuZ2FnZW1lbnQgcG9yIHPDrSBzb2xvLiBMbyBxdWUgbG8gc3ViZSBlcyBsYSBlbmVyZ8OtYSBxdWUgZXNlIGRlc2NhbnNvIGRldnVlbHZlLiBVbiBjb2xhYm9yYWRvciBwdWVkZSBkZXNjb25lY3RhcnNlIGVsIGZpbiBkZSBzZW1hbmEgeSBzZWd1aXIgbGxlZ2FuZG8gZWwgbHVuZXMgc2luIGdhbmFzIHNpIGVzYSBkZXNjb25leGnDs24gbm8gbGUgcmVncmVzw7MgZW5lcmfDrWEuIFBhcmEgdW5hIG9yZ2FuaXphY2nDs24gZWwgcHVudG8gcHLDoWN0aWNvIGVzIHF1ZSBubyBiYXN0YSBjb24gZGFyIGVsIHRpZW1wbyBsaWJyZSwgaGF5IHF1ZSByZXZpc2FyIHNpIGxhIGdlbnRlIGVmZWN0aXZhbWVudGUgZXN0w6EgcmVjdXBlcmFuZG8gZW5lcmfDrWEgY29uIMOpbC4KCkVsIG1vZGVsbyBkZSBtZWRpY2nDs24gY29tcGxldG8sIGNvbiBsb3Mgb2NobyBjb25zdHJ1Y3RvcyBjb3JyZWxhY2lvbmFkb3MsIGRhIHVuIFJNU0VBIGRlIDAuMDc5IHkgdW4gU1JNUiBkZSAwLjA2NSwgbWVqb3IgcXVlIGVsIGRlIGxhIGVzY2FsYSBkZSByZWN1cGVyYWNpw7NuIHBvciBzZXBhcmFkby4gTGEgZXN0cnVjdHVyYSBkZSBmb25kbyBzZSBzb3N0aWVuZSwgcGVybyBlbCBDRkkgZGUgMC44ODUgY29uZmlybWEgcXVlIGhheSBxdWUgZGVwdXJhciBhbnRlcyBkZSBkYXJsbyBwb3IgYnVlbm8uCgojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+RWplcmNpY2lvIDQuIE1vZGVsbyBkZSBFY3VhY2lvbmVzIEVzdHJ1Y3R1cmFsZXMgKFNFTSk8L3NwYW4+CgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkNvbnRleHRvPC9zcGFuPgoKQmVoc29uLCBFZGR5IHkgTG9yZW56ZXQgcHVibGljYXJvbiBlbiBlbCAyMDAwIGVsIGVzdHVkaW8gIlRoZSBJbXBvcnRhbmNlIG9mIHRoZSBDcml0aWNhbCBQc3ljaG9sb2dpY2FsIFN0YXRlcyBpbiB0aGUgSm9iIENoYXJhY3RlcmlzdGljcyBNb2RlbDogQSBNZXRhLUFuYWx5dGljIGFuZCBTdHJ1Y3R1cmFsIEVxdWF0aW9ucyBNb2RlbGluZyBFeGFtaW5hdGlvbiIuIEVsIE1vZGVsbyBkZSBDYXJhY3RlcsOtc3RpY2FzIGRlbCBQdWVzdG8gZGUgSGFja21hbiB5IE9sZGhhbSBwcm9wb25lIHF1ZSBjaW5jbyBjYXJhY3RlcsOtc3RpY2FzIGRlbCB0cmFiYWpvLCB2YXJpZWRhZCBkZSBoYWJpbGlkYWRlcywgaWRlbnRpZGFkIGRlIGxhIHRhcmVhLCBzaWduaWZpY2FkbyBkZSBsYSB0YXJlYSwgYXV0b25vbcOtYSB5IHJldHJvYWxpbWVudGFjacOzbiwgbm8gaW1wYWN0YW4gZGlyZWN0YW1lbnRlIGxvcyByZXN1bHRhZG9zLCBzaW5vIHF1ZSBwYXNhbiBwcmltZXJvIHBvciB0cmVzIGVzdGFkb3MgcHNpY29sw7NnaWNvcyBjcsOtdGljb3M6IHNpZ25pZmljYWRvIGV4cGVyaW1lbnRhZG8gZGVsIHRyYWJham8sIHJlc3BvbnNhYmlsaWRhZCBleHBlcmltZW50YWRhIHBvciBsb3MgcmVzdWx0YWRvcyB5IGNvbm9jaW1pZW50byBkZSBsb3MgcmVzdWx0YWRvcy4KCkxvcyBhdXRvcmVzIGNvbXBhcmFuIGRvcyBtb2RlbG9zIHNvYnJlIGxhIG1pc21hIG1hdHJpeiBtZXRhIGFuYWzDrXRpY2E6CgoqIE1vZGVsbyAxOiBlbCBtb2RlbG8gb3JpZ2luYWwgZGUgdHJlcyBldGFwYXMuIExhcyBjYXJhY3RlcsOtc3RpY2FzIGRlbCBwdWVzdG8gbGxlZ2FuIGEgbG9zIHJlc3VsdGFkb3Mgw7puaWNhbWVudGUgYSB0cmF2w6lzIGRlIGxvcyBlc3RhZG9zIHBzaWNvbMOzZ2ljb3MgY3LDrXRpY29zLCBlcyBkZWNpciwgbWVkaWFjacOzbiBjb21wbGV0YS4KKiBNb2RlbG8gMjogZWwgbW9kZWxvIHF1ZSBzZSB1c2EgZW4gbGEgcHLDoWN0aWNhIGVuIGxhIG1heW9yw61hIGRlIGxvcyBlc3R1ZGlvcy4gRWxpbWluYSBsb3MgZXN0YWRvcyBwc2ljb2zDs2dpY29zIHkgY29uZWN0YSBsYXMgY2FyYWN0ZXLDrXN0aWNhcyBkZWwgcHVlc3RvIGRpcmVjdGFtZW50ZSBjb24gbG9zIHJlc3VsdGFkb3MuCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkxvcyDDrW5kaWNlcyBkZSBhanVzdGU8L3NwYW4+Cgp8IEluZGljYWRvciB8IE1vZGVsbyAxIHwgTW9kZWxvIDIgfAp8LS0tfC0tLXwtLS18CnwgQ2hpIGN1YWRyYWRhIHwgMTI0LjI1IGNvbiAyNSBnbCB8IDEyLjA5IGNvbiAzIGdsIHwKfCBHRkkgfCAwLjkxIHwgMC45OSB8CnwgQ0ZJIHwgMC44OSB8IDAuOTggfAp8IFJNU0VBIHwgMC4xNCB8IDAuMTYgfAp8IEFJQyB8IDI5NC40OCB8IDgwLjA5IHwKfCBTZW5kZXJvcyBzaWduaWZpY2F0aXZvcyB8IDEyIGRlIDE0IHwgNyBkZSAxNSB8CnwgVmFyaWFuemEgZXhwbGljYWRhIGVuIHNhdGlzZmFjY2nDs24gfCA0MiUgfCAzNyUgfAp8IFZhcmlhbnphIGV4cGxpY2FkYSBlbiBtb3RpdmFjacOzbiB8IDM4JSB8IDMyJSB8CgpFbiBHRkksIENGSSB5IEFJQyBlbCBNb2RlbG8gMiBnYW5hIGNsYXJhbWVudGUuIEVsIFJNU0VBIGVzIGVsIMO6bmljbyBpbmRpY2Fkb3IgZG9uZGUgZWwgTW9kZWxvIDEgc2FsZSBtZWpvciwgeSBwb3IgcG9jby4KCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZSI+wr9Qb3IgcXXDqSBlbGlnaWVyb24gZWwgTW9kZWxvIDE/PC9zcGFuPgoKUG9ycXVlIGVsIGFqdXN0ZSBubyBmdWUgZWwgw7puaWNvIGNyaXRlcmlvLiBMb3MgYXV0b3JlcyBkaWNlbiBxdWUgY29tcGFyYXIgbW9kZWxvcyBwaWRlIG3DoXMgcXVlIGNvbXBhcmFyIHJhem9uZXMgZGUgYWp1c3RlLCB5IHF1ZSBsYSByYXpvbmFiaWxpZGFkIGRlIGxvcyB2YWxvcmVzIGRlbnRybyBkZWwgbW9kZWxvIHkgc3UgY29ycmVzcG9uZGVuY2lhIGNvbiBsYSB0ZW9yw61hIHBlc2FuIGlndWFsIG8gbcOhcy4KCkVsIGFyZ3VtZW50byBkZSBmb25kbyBlc3TDoSBlbiBsb3Mgc2VuZGVyb3MuIEVuIGVsIE1vZGVsbyAyLCBvY2hvIGRlIGxvcyBudWV2ZSBjYW1pbm9zIHF1ZSB2YW4gZGUgdmFyaWVkYWQgZGUgaGFiaWxpZGFkZXMsIGlkZW50aWRhZCBkZSBsYSB0YXJlYSB5IHNpZ25pZmljYWRvIGRlIGxhIHRhcmVhIGhhY2lhIGxvcyByZXN1bHRhZG9zIHNhbGllcm9uIG5vIHNpZ25pZmljYXRpdm9zLiBMZcOtZG8gc29sbywgZXNlIG1vZGVsbyBkaXLDrWEgcXVlIGVzYXMgdHJlcyBjYXJhY3RlcsOtc3RpY2FzIGRlbCBwdWVzdG8gbm8gc2lydmVuIHBhcmEgbmFkYS4gRWwgTW9kZWxvIDEgbXVlc3RyYSBxdWUgc8OtIHNpcnZlbiwgcGVybyBkZSBmb3JtYSBpbmRpcmVjdGEsIG1lZGlhZGFzIHBvciBlbCBzaWduaWZpY2FkbyBleHBlcmltZW50YWRvIGRlbCB0cmFiYWpvLiBMYSByZWxhY2nDs24gZXhpc3RlLCBsbyBxdWUgcGFzYSBlcyBxdWUgZWwgTW9kZWxvIDIgbm8gdGllbmUgcG9yIGTDs25kZSB2ZXJsYS4KCkVsIE1vZGVsbyAxIHRhbWJpw6luIGV4cGxpY2EgbcOhcyB2YXJpYW56YSBlbiBzYXRpc2ZhY2Npw7NuIHkgZW4gbW90aXZhY2nDs24sIHkgdGllbmUgMTIgZGUgMTQgc2VuZGVyb3Mgc2lnbmlmaWNhdGl2b3MgY29udHJhIDcgZGUgMTUuIEVzIHVuIG1vZGVsbyBtw6FzIGdyYW5kZSwgcG9yIGVzbyBlbCBBSUMgbG8gY2FzdGlnYSwgcGVybyBlcyB0YW1iacOpbiB1biBtb2RlbG8gZG9uZGUgY2FzaSB0b2RvIGxvIGVzdGltYWRvIHNpZ25pZmljYSBhbGdvLgoKTGEgY29uc2VjdWVuY2lhIHByw6FjdGljYSBlcyBsYSBxdWUgY2llcnJhIGVsIGFyZ3VtZW50by4gU2kgdW5hIG9yZ2FuaXphY2nDs24gcmVkaXNlw7FhIHB1ZXN0b3MgdXNhbmRvIGVsIE1vZGVsbyAyIHZhIGEgbW92ZXIgbGFzIGNhcmFjdGVyw61zdGljYXMgZGVsIHRyYWJham8gZXNwZXJhbmRvIHVuIHJlc3VsdGFkbyBkaXJlY3RvLiBFbCBNb2RlbG8gMSBhZHZpZXJ0ZSBxdWUgZXNlIHJlZGlzZcOxbyBubyBzaXJ2ZSBkZSBuYWRhIHNpIGVsIGNvbGFib3JhZG9yIG5vIGxsZWdhIGEgZXhwZXJpbWVudGFyIGVsIHNpZ25pZmljYWRvLCBsYSByZXNwb25zYWJpbGlkYWQgeSBlbCBjb25vY2ltaWVudG8gZGUgbG9zIHJlc3VsdGFkb3MuIE1lZGlyIHNvbG8gbGFzIGNhcmFjdGVyw61zdGljYXMgZGVsIHB1ZXN0byBsbGV2YSBhIGludGVydmVuY2lvbmVzIG1hbCBkaXJpZ2lkYXMuCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWUiPkNvbmNsdXNpw7NuPC9zcGFuPgoKTGEgbGVjY2nDs24gZXMgcXVlIGVsIGFqdXN0ZSBtaWRlIHF1w6kgdGFuIGJpZW4gcmVwcm9kdWNlIGVsIG1vZGVsbyBsYSBtYXRyaXogZGUgY292YXJpYW56YXMsIG5vIHF1w6kgdGFuIGJpZW4gZXhwbGljYSBlbCBmZW7Ds21lbm8uIFVuIG1vZGVsbyBtw6FzIHNpbXBsZSBjYXNpIHNpZW1wcmUgdmEgYSBhanVzdGFyIG1lam9yIHBvcnF1ZSB0aWVuZSBtZW5vcyBxdWUgcmVwcm9kdWNpciwgeSBlc28gbm8gbG8gdnVlbHZlIG3DoXMgY2llcnRvLgoKTG8gbWlzbW8gYXBsaWNhIGEgbG8gcXVlIGhpY2UgZW4gZWwgRWplcmNpY2lvIDMuIExhIGVzY2FsYSBkZSBlbmdhZ2VtZW50IHNhbGnDsyBjb24gdW4gUk1TRUEgZGUgMC4yMTUsIHF1ZSBlcyBtYWxvLCB5IGxhIHRlbnRhY2nDs24gZXMgY29sYXBzYXIgdmlnb3IsIGRlZGljYWNpw7NuIHkgYWJzb3JjacOzbiBlbiB1biBzb2xvIGZhY3RvciBwYXJhIHF1ZSBsb3MgbsO6bWVyb3Mgc2UgdmVhbiBib25pdG9zLiBBbnRlcyBkZSBoYWNlcmxvIGhheSBxdWUgcHJlZ3VudGFyc2Ugc2kgZXNvIGRlamEgZnVlcmEgYWxnbyBxdWUgbGEgdGVvcsOtYSBzw60gZGlzdGluZ3VlLiBFbiBlc2UgY2FzbyBsb3MgZGF0b3MgeSBsYSB0ZW9yw61hIGliYW4gZW4gbGEgbWlzbWEgZGlyZWNjacOzbiwgYXPDrSBxdWUgZnVzaW9uYXJsYXMgZnVlIGRlZmVuZGlibGUuIEVuIGVsIGNhc28gZGUgQmVoc29uIG5vIGxvIGVyYSwgeSBwb3IgZXNvIHNlIHF1ZWRhcm9uIGNvbiBlbCBtb2RlbG8gcXVlIGFqdXN0YWJhIHBlb3IuCg==