library(readxl)
Datos = read_excel("Datos_FJ26.xlsx")
# Seleccionar únicamente variables explicativas
D1 <- Datos[, c("PIB", "Empleo", "Educación", "Razón", "Salud", "Esperanza", "Doctores")]

#————————————————————————————————————————————————————- # 1) Identifica si hay observaciones faltantes, atípicas o extremas, corrige de ser necesario.
#————————————————————————————————————————————————————-

Identificación de observaciones faltantes

# FORMULARIO: Cuenta el total de observaciones faltantes
colSums(is.na(D1))
##       PIB    Empleo Educación     Razón     Salud Esperanza  Doctores 
##         0         0         7         6         0         1         0

Identifiqué observaciones faltantes en las variables Educación, Razón y Esperanza

Para no tener que eliminar países de la muestra, decidí reemplazar los valores faltantes en lugar de borrar observaciones completas

Ya que las variables entre países pueden presentar dispersión y valores extremos, utilicé la mediana como criterio de reemplazo, ya que es una medida más robusta que la media ante posibles valores atípicos

# Código para reemplazar con la mediana
library(zoo)
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
D1 <- na.aggregate(D1,FUN=median)

# Guardar base limpia después de imputar faltantes
D1_limpia <- D1

Verifiqué nuevamente la base, confirmé que no quedan observaciones faltantes:

# FORMULARIO: Cuenta el total de observaciones faltantes
colSums(is.na(D1_limpia))
##       PIB    Empleo Educación     Razón     Salud Esperanza  Doctores 
##         0         0         0         0         0         0         0

Identificación de observaciones atípicas

# FORMULARIO: Realiza un análisis descriptivo de las variables
library(psych)
describe(D1_limpia)
##           vars  n     mean       sd   median  trimmed      mad      min
## PIB          1 38 65148.90 27027.77 59552.96 62316.03 19594.44 23020.66
## Empleo       2 38    72.05     6.35    72.99    72.20     5.86    55.13
## Educación    3 38    18.15    12.78    14.13    16.30     5.75     4.82
## Razón        4 38     8.61     2.09     8.95     8.69     1.76     3.26
## Salud        5 38     9.31     2.29     9.28     9.26     2.07     4.68
## Esperanza    6 38    81.23     2.44    81.90    81.47     1.70    75.30
## Doctores     7 38     3.84     1.04     3.73     3.80     0.99     1.50
##                 max     range  skew kurtosis      se
## PIB       155750.09 132729.43  1.41     2.61 4384.48
## Empleo        85.48     30.35 -0.43    -0.08    1.03
## Educación     55.70     50.87  1.49     1.35    2.07
## Razón         13.10      9.84 -0.44     0.07    0.34
## Salud         17.16     12.48  0.71     1.74    0.37
## Esperanza     84.30      9.00 -0.93    -0.23    0.40
## Doctores       6.58      5.08  0.37     0.24    0.17

Realicé un análisis descriptivo de las variables para identificar valores atípicos o inconsistencias Sobre todo, revisé los valores mínimos y máximos de cada variable. Los resultados muestran que, aunque algunas variables presentan dispersión entre países, los valores observados se encuentran dentro de rangos razonables para indicadores económicos, educativos y de salud

Con base en esta revisión, no identifiqué valores atípicos evidentes ni inconsistencias que requirieran de mi corrección manual La dispersión de los datos es razonable, esto debido a las diferencias económicas, educativas y de salud que existen entre los diversos países

Identificación de observaciones extremas

# FORMULARIO: Identificación de observaciones extremas.
# Crea una columna en la base de datos con la distancia Mahalanobis (MD) para cada observación, se utilizan solo las variables X´s de la base de datos

D1_limpia$MD <- mahalanobis(D1, colMeans(D1), cov(D1))
# FORMULARIO: Identificación de observaciones extremas
# Para cada MD calcula el valor P de la prueba, donde MD tiene una distribución Ji.Cuadrada con k-1 grados de libertad. K es el total de variables explicativas. 
# Regla si el valor P es menor a 0.001 la observación es un outlier.
D1_limpia$p<-pchisq(D1_limpia$MD, df=7-1, lower.tail=FALSE) # Cambiar k por # de variables de D1
Obs_extremas<-which(D1_limpia$p < 0.001) # Criterio Muy estricto
Obs_extremas
## integer(0)

Para identificar observaciones extremas, utilicé la distancia de Mahalanobis. Esta medida evalua qué tan alejada se encuentra cada observación del centro multivariado de la db, considerando a la vez las siete variables del análisis: PIB, Empleo, Educación, Razón, Salud, Esperanza y Doctores

Posteriormente, calculé el valor p asociado a cada distancia de Mahalanobis utilizando una distribución Ji-cuadrada con k-1 grados de libertad. En este caso trabajé con 7 variables, utilicé seis grados de libertad

Siguiendo el criterio establecido, consideré como observación extrema aquella cuyo valor p fuera menor a 0.001.

El resultado fue integer(0), lo que indica que NO hayobservaciones extremas bajo este criterio. No es necesario eliminar ni corregir observaciones extremas

#————————————————————————————————————————————————————-# 2) Realiza la prueba de hipótesis de Bartlett y concluye si es factible realizar un análisis de componentes principales #————————————————————————————————————————————————————-#

# Volver a filtrar solo por las variables explicativas
D1 <- D1_limpia[, c("PIB", "Empleo", "Educación", "Razón", "Salud", "Esperanza", "Doctores")]
# Validar que haya suficiente correlación para aplicar el análisis de factores

# 1. Determinante de la matriz de correlación
R <- cor(D1)
det(R)
## [1] 0.1424828

El determinante de la matriz de correlación fue de 0.1424828. Este valor no es cercano a 1, por lo que la matriz de correlaciones no se comporta como una matriz identidad perfecta Existe cierto grado de correlación entre las variables y tiene sentido continuar con la prueba de Bartlett para confirmar formalmente si el análisis de componentes principales es factible

# 2. La prueba de contraste de esfericidad de Bartlett

# FORMULARIO: Prueba de contraste de esfericidad de Bartlett
# H0: R = I (no se debe de utilizar la técnica de análisis de factores)
# Ha: R diferente I (sí se puede aplicar análisis de factores)

# R = Matriz de correlación
# I = Es la matriz identidad

library(psych)
cortest.bartlett(R,n=38) # R = matriz de correlación, cambiar # de observaciones
## $chisq
## [1] 65.92541
## 
## $p.value
## [1] 1.557078e-06
## 
## $df
## [1] 21

Rechazar H0, a favor de Ha si alfa >= valor P.

Si p-value < 0.05, se rechaza H0. Si p-value >= 0.05, no se rechaza H0.

Como el valor p es menor a 0.05, se rechaza la hipótesis nula de que la matriz de correlaciones es igual a la matriz identidad. Existe suficiente correlación entre las variables y es factible aplicar el análisis de componentes

#————————————————————————————————————————————————————- # 3) Realiza el análisis de suficiencia de Kaiser-Meyer-Olkin #————————————————————————————————————————————————————- a. Evalúa la calidad del análisis resultante. b. Indica si se requiere o no quitar variable para mejorar el análisis, si la respuesta es sí elimina las variables justificando por qué.

# 1. Determinante de la matriz de correlación
R <- cor(D1)
det(R) #Cuenta con un determinante muy cercano a 0, por lo que existe una alta correlación. Comprobemoslo con KMO
## [1] 0.1424828

(Ya explicado)

KMO(R) 
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = R)
## Overall MSA =  0.59
## MSA for each item = 
##       PIB    Empleo Educación     Razón     Salud Esperanza  Doctores 
##      0.70      0.63      0.54      0.54      0.57      0.65      0.50

|Criterio |Evaluación | |MSA ≥ 0.9 |Excelente | |0.8 ≤ MSA < 0.9 |Bueno | |0.7 ≤ MSA < 0.8 |Aceptable | |0.6 ≤ MSA < 0.7. |Regular | |0.5 ≤ MSA < 0.6 |Bajo | |MSA < 0.5 |Inaceptable|

El resultado global del análisis fue un Overall MSA = 0.59. De acuerdo con los criterios de evaluación (arriba), este valor se ubica en el rango de 0.50 a 0.60, por lo que la calidad del análisis se considera baja, PERO no inaceptable. Por lo tanto, puedo continuar con el análisis de componentes principales (siempre y cuando se tenga cuidado)

También se revisaron los valores MSA individuales para cada variable. - Ninguna variable tiene un MSA menor a 0.50, por lo que no es necesario eliminar variables obligatoriamente - Las variables que tengan un KMO MENOR a 0.50 son candidatas a quitarse, en este caso todas están arriba o son iguales a 0.50 - Como comentario, “Doctores” es la variable más débil, ya que se encuentra exactamente en el umbral mínimo recomendado

#————————————————————————————————————————————————————- # 4) Realiza el análisis de alfa de Cronbach #————————————————————————————————————————————————————- b. Indica si se requiere o no quitar variables para mejorar el análisis, si la respuesta es sí elimina las variables justificando por qué. c. Indica si se requiere corregir variables en orden inverso, corrige de ser necesario.

# Alfa de Cronbach inicial
library(psych)
alpha(D1, check.keys=TRUE)
## Warning in response.frequencies(x, max = max): response.frequency has been
## deprecated and replaced with responseFrequecy.  Please fix your call
## Number of categories should be increased  in order to count frequencies.
## Warning in alpha(D1, check.keys = TRUE): Some items were negatively correlated with the first principal component and were automatically reversed.
##  This is indicated by a negative sign for the variable name.
## 
## Reliability analysis   
## Call: alpha(x = D1, check.keys = TRUE)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N     ase  mean   sd median_r
##      9e-04      0.74    0.78      0.29 2.8 0.00023 31580 3863     0.31
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt    -0.57     0  0.42
## Duhachek  0.00     0  0.00
## 
##  Reliability if an item is dropped:
##            raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## PIB          0.49520      0.68    0.72      0.26 2.1  0.07697 0.025  0.26
## Empleo       0.00068      0.69    0.73      0.27 2.3  0.00019 0.026  0.31
## Educación-   0.00047      0.71    0.73      0.29 2.4  0.00012 0.024  0.26
## Razón        0.00085      0.69    0.70      0.27 2.3  0.00023 0.019  0.26
## Salud        0.00089      0.74    0.77      0.32 2.8  0.00022 0.022  0.33
## Esperanza    0.00082      0.71    0.75      0.29 2.5  0.00023 0.027  0.33
## Doctores     0.00090      0.71    0.73      0.29 2.5  0.00023 0.019  0.33
## 
##  Item statistics 
##             n raw.r std.r r.cor r.drop    mean      sd
## PIB        38  1.00  0.71  0.66   0.54 6.5e+04 27027.8
## Empleo     38  0.43  0.66  0.59   0.43 7.2e+01     6.4
## Educación- 38  0.40  0.62  0.55   0.40 1.6e+05    12.8
## Razón      38  0.39  0.66  0.62   0.39 8.6e+00     2.1
## Salud      38  0.16  0.51  0.39   0.16 9.3e+00     2.3
## Esperanza  38  0.47  0.60  0.51   0.47 8.1e+01     2.4
## Doctores   38  0.26  0.59  0.53   0.26 3.8e+00     1.0

Realicé el análisis de alfa de Cronbach con la opción check.keys=TRUE para evaluar la consistencia interna de las variables y detectar si alguna se encontraba en sentido inverso. El resultado mostró que la variable Educación estaba en sentido contrario al resto (Educación-), lo cual tiene sentido porque mide el porcentaje de personas de 25 a 65 años con educación menor a secundaria; por lo tanto, un valor más alto representa una condición menos favorable

-> El output de alpha(D1, check.keys=TRUE) marcó Educación con signo negativo -> Por lo tanto, corregí Educación para que todas las variables estén en el mismo sentido

Corregí la variable Educación mediante la transformación max(Educación) - Educación, para que todas las variables quedaran en el mismo sentido: valores más altos representan mejores condiciones

# Revisión de variables en orden inverso
D1$Educación_Corregida <- with(D1, max(Educación) - Educación)
# Base corregida con las variables en el mismo sentido
D2 <- D1[, c("PIB", "Empleo", "Educación_Corregida", "Razón","Salud", "Esperanza", "Doctores")]
D1 <- D2
# Alfa de Cronbach (después de corregir Educación)
library(psych)
alpha(D1)
## Warning in response.frequencies(x, max = max): response.frequency has been
## deprecated and replaced with responseFrequecy.  Please fix your call
## Number of categories should be increased  in order to count frequencies.
## 
## Reliability analysis   
## Call: alpha(x = D1)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N     ase mean   sd median_r
##      9e-04      0.74    0.78      0.29 2.8 0.00023 9337 3863     0.31
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt    -0.57     0  0.42
## Duhachek  0.00     0  0.00
## 
##  Reliability if an item is dropped:
##                     raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r
## PIB                   0.49520      0.68    0.72      0.26 2.1  0.07697 0.025
## Empleo                0.00068      0.69    0.73      0.27 2.3  0.00019 0.026
## Educación_Corregida   0.00047      0.71    0.73      0.29 2.4  0.00012 0.024
## Razón                 0.00085      0.69    0.70      0.27 2.3  0.00023 0.019
## Salud                 0.00089      0.74    0.77      0.32 2.8  0.00022 0.022
## Esperanza             0.00082      0.71    0.75      0.29 2.5  0.00023 0.027
## Doctores              0.00090      0.71    0.73      0.29 2.5  0.00023 0.019
##                     med.r
## PIB                  0.26
## Empleo               0.31
## Educación_Corregida  0.26
## Razón                0.26
## Salud                0.33
## Esperanza            0.33
## Doctores             0.33
## 
##  Item statistics 
##                      n raw.r std.r r.cor r.drop    mean      sd
## PIB                 38  1.00  0.71  0.66   0.54 65148.9 27027.8
## Empleo              38  0.43  0.66  0.59   0.43    72.0     6.4
## Educación_Corregida 38  0.40  0.62  0.55   0.40    37.6    12.8
## Razón               38  0.39  0.66  0.62   0.39     8.6     2.1
## Salud               38  0.16  0.51  0.39   0.16     9.3     2.3
## Esperanza           38  0.47  0.60  0.51   0.47    81.2     2.4
## Doctores            38  0.26  0.59  0.53   0.26     3.8     1.0

Después de corregir la variable, volví a estimar el alfa de Cronbach. Debido a que las variables están medidas en escalas distintas, interpreté el alfa estandarizado. El resultado fue std.alpha = 0.7364, lo cual indica una consistencia aceptable

También revisé la tabla de confiabilidad si se elimina cada variable. Ninguna eliminación mejora sustancialmente el alfa estandarizado general, por lo que no se requiere quitar variables para mejorar el análisis. Conservaré todas las variables

#————————————————————————————————————————————————————- # 5. Determina cuántos componentes se requiere estimar utiliza uno de los métodos vistos en clase (raíz unitaria, porcentaje explicado de la varianza e índice de complejidad) #————————————————————————————————————————————————————-

Para determinar el número de componentes, estimé primero el modelo con las siete variables estandarizadas y sin rotación

# Estandarización de variables
Dz <- data.frame(scale(D1))

Los resultados muestran que los SS loadings fueron 2.75 para PC1, 1.33 para PC2, 0.87 para PC3, 0.82 para PC4, 0.63 para PC5, 0.35 para PC6 y 0.24 para PC7

# FORMULARIO: Estimar el modelo de análisis de componentes principales con k variables sin rotar

library(psych)
modelo1 <- principal(Dz,nfactors = 7, rotate = "none") # Cambiar el # de componentes, podemos basarnos en el # de variables de Dz
modelo1
## Principal Components Analysis
## Call: principal(r = Dz, nfactors = 7, rotate = "none")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                      PC1   PC2   PC3   PC4   PC5   PC6   PC7 h2       u2 com
## PIB                 0.75 -0.01  0.07 -0.46 -0.29 -0.37  0.04  1  1.1e-16 2.6
## Empleo              0.66  0.44 -0.14  0.20 -0.49  0.25 -0.14  1 -8.9e-16 3.5
## Educación_Corregida 0.62  0.44 -0.42 -0.24  0.35  0.13  0.22  1  5.6e-16 4.2
## Razón               0.68 -0.50 -0.34  0.04  0.27 -0.03 -0.31  1 -4.4e-16 3.3
## Salud               0.46  0.57  0.37  0.44  0.28 -0.22 -0.06  1  1.1e-15 4.6
## Esperanza           0.60 -0.24  0.64 -0.26  0.13  0.29  0.00  1  1.2e-15 3.2
## Doctores            0.59 -0.56 -0.04  0.50 -0.12 -0.03  0.28  1  8.9e-16 3.5
## 
##                        PC1  PC2  PC3  PC4  PC5  PC6  PC7
## SS loadings           2.75 1.33 0.87 0.82 0.63 0.35 0.24
## Proportion Var        0.39 0.19 0.12 0.12 0.09 0.05 0.03
## Cumulative Var        0.39 0.58 0.71 0.82 0.91 0.97 1.00
## Proportion Explained  0.39 0.19 0.12 0.12 0.09 0.05 0.03
## Cumulative Proportion 0.39 0.58 0.71 0.82 0.91 0.97 1.00
## 
## Mean item complexity =  3.6
## Test of the hypothesis that 7 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0 
##  with the empirical chi square  0  with prob <  NA 
## 
## Fit based upon off diagonal values = 1

Los siguientes criterios permiten determinar el número de factores como posible solución inicial:

En este caso voy a usar: Criterio de la raíz latente (autovalores): SS loadings = autovalores (Pestaña 1) Solo hay dos componentes con una raíz > 1, lo que me indica que debo… Me sugiere quedarme con 2 componentes para explicar la información total de mis variables

Criterio del porcentaje de la variación explicada acumulada: PC1 PC2 PC3 Proportion Var 0.39 0.19 0.12 Cumulative Var 0.39 0.58 0.71 Llegamos a >0.60 con 3 componentes

Criterio del índice de complejidad: Mean item complexity = 3.6 Me sugiere quedarme con 4 componentes para explicar la información total de mis variables

Aunque los criterios no coinciden completamente, decidí conservar 3 COMPONENTES, ya que con ellos se supera el umbral de 60% de varianza explicada acumulada y se resume 71% de la información contenida en las variables originales -> Hay buen balance entre capacidad explicativa y simplicidad del modelo

#————————————————————————————————————————————————————- # 6) Estima los componentes determinados en el inciso anterior y con los componentes rotados #————————————————————————————————————————————————————- a. Indica qué tanto explican los componentes a la información de las variables, b. Cuál variable se explica más y cuál menos con los componentes, c. Interpreta los componentes rotados

SIN ROTAR

# FORMULARIO: Estimar el modelo de análisis de componentes principales con k variables sin rotar
library(psych)
modelo2 <- principal(Dz,nfactors = 3, rotate = "none") # Cambiar el # de componentes
modelo2
## Principal Components Analysis
## Call: principal(r = Dz, nfactors = 3, rotate = "none")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                      PC1   PC2   PC3   h2   u2 com
## PIB                 0.75 -0.01  0.07 0.56 0.44 1.0
## Empleo              0.66  0.44 -0.14 0.64 0.36 1.9
## Educación_Corregida 0.62  0.44 -0.42 0.76 0.24 2.6
## Razón               0.68 -0.50 -0.34 0.83 0.17 2.4
## Salud               0.46  0.57  0.37 0.67 0.33 2.7
## Esperanza           0.60 -0.24  0.64 0.83 0.17 2.3
## Doctores            0.59 -0.56 -0.04 0.66 0.34 2.0
## 
##                        PC1  PC2  PC3
## SS loadings           2.75 1.33 0.87
## Proportion Var        0.39 0.19 0.12
## Cumulative Var        0.39 0.58 0.71
## Proportion Explained  0.55 0.27 0.18
## Cumulative Proportion 0.55 0.82 1.00
## 
## Mean item complexity =  2.1
## Test of the hypothesis that 3 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.08 
##  with the empirical chi square  11.37  with prob <  0.0099 
## 
## Fit based upon off diagonal values = 0.93
  1. Con 3 componentes se explica 71% de la información total de las variables
  1. La variable que más se explica con los componentes es Esperanza, con h2 = 0.8294, es decir, aprox. 82.94% de su variabilidad La variable que menos se explica es PIB, con h2 = 0.5606, es decir, aprox. 56.06% de su variabilidad

CON ROTACIÓN

Se hace una rotación de los ejes para pronunciar cargas e identificar mejor con cuál componente se define más una variable

Las cargas de la matriz rotada cambian (aumentan) porque se movieron los ejes y ahora hay otras coordenadas

Existen los siguientes métodos de rotación ▪ Varimax: Es el método más utilizado, minimiza el número de variables que tienen saturaciones altas en cada factor/componente ▪ Quartimax: Minimiza el número de factores necesarios para explicar cada variable ▪ Equamax: Minimiza tanto el número de variables que saturan alto en cada factor como el número de factores necesarios para explicar cada variable ▪ Promax y Oblimin Métodos que permiten que los factores estén correlacionados

library(psych)
modelo3 <- principal(Dz,nfactors = 3, rotate = "varimax") # Cambiar el # de componentes
modelo3
## Principal Components Analysis
## Call: principal(r = Dz, nfactors = 3, rotate = "varimax")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                      RC1   RC2   RC3   h2   u2 com
## PIB                 0.45  0.43  0.41 0.56 0.44 3.0
## Empleo              0.77  0.12  0.18 0.64 0.36 1.2
## Educación_Corregida 0.85  0.18 -0.08 0.76 0.24 1.1
## Razón               0.22  0.88  0.02 0.83 0.17 1.1
## Salud               0.55 -0.26  0.55 0.67 0.33 2.4
## Esperanza           0.00  0.34  0.85 0.83 0.17 1.3
## Doctores            0.02  0.78  0.24 0.66 0.34 1.2
## 
##                        RC1  RC2  RC3
## SS loadings           1.87 1.80 1.28
## Proportion Var        0.27 0.26 0.18
## Cumulative Var        0.27 0.52 0.71
## Proportion Explained  0.38 0.36 0.26
## Cumulative Proportion 0.38 0.74 1.00
## 
## Mean item complexity =  1.6
## Test of the hypothesis that 3 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.08 
##  with the empirical chi square  11.37  with prob <  0.0099 
## 
## Fit based upon off diagonal values = 0.93
  1. Con 3 componentes rotados se explica 71% de la información total de las variables
  1. Interpretación de componentes rotados Después de aplicar la rotación varimax, las cargas se distribuyen de forma más clara entre los componentes:

Aplicar prioridades para interpretar

# FORMULARIO: Criterios para determinar qué variables definen al componente

# Prioridad 1.
print(modelo3$loadings,cut=0.5, sort=TRUE)
## 
## Loadings:
##                     RC1    RC2    RC3   
## Empleo               0.770              
## Educación_Corregida  0.847              
## Salud                0.553         0.546
## Razón                       0.883       
## Doctores                    0.777       
## Esperanza                          0.846
## PIB                                     
## 
##                  RC1   RC2   RC3
## SS loadings    1.868 1.798 1.283
## Proportion Var 0.267 0.257 0.183
## Cumulative Var 0.267 0.524 0.707

Criterios para identificar cargas significativas

Una carga es significativa en función del tamaño de la muestra y del nivel de significancia utilizado, entre mayor sea la muestra más credibilidad hay en la información.

Criterios con alfa igual a 0.05 (cargas en valor absoluto): | | 50 ≤ n < 100 | 100 ≤ n < 200 | 200 ≤ n < 300 | n ≥ 300 | | Prioridad 1 | |Carga| ≥ 0.5 | |Carga| ≥ 0.5 | |Carga| ≥ 0.5 | |Carga| ≥ 0.5 | | Prioridad 2 | 0.4 ≤ |Carga| < 0.5 | 0.4 ≤ |Carga| < 0.5 | 0.4 ≤ |Carga| < 0.5 | 0.4 ≤ |Carga| < 0.5 | | Prioridad 3 | 0.3 ≤ |Carga| < 0.4 | 0.3 ≤ |Carga| < 0.4 | 0.3 ≤ |Carga| < 0.4 | 0.3 ≤ |Carga| < 0.4 | | Prioridad 4 | No aplica | 0.19 ≤ |Carga| < 0.3 | 0.19 ≤ |Carga| < 0.3 | 0.19 ≤ |Carga| < 0.3 | | Prioridad 5 | No aplica | No aplica | 0.14 ≤ |Carga| < 0.19 | 0.14 ≤ |Carga| < 0.19 | | Prioridad 6 | No aplica | No aplica | No aplica | 0.11 ≤ |Carga| < 0.14 | | Carga no significativa | 0 ≤ |Carga| < 0.3 | 0 ≤ |Carga| < 0.19 | 0 ≤ |Carga| < 0.14 | 0 ≤ |Carga| < 0.11 |

RC1 concentra principalmente Empleo, Educación_Corregida y Salud - Empleo tiene carga de 0.77 - Educación_Corregida tiene carga de 0.85 - Salud tiene carga de 0.55 Este componente puede interpretarse como un componente de desarrollo social y capital humano

RC2 concentra principalmente Razón y Doctores - Razón tiene carga de 0.88 - Doctores tiene carga de 0.78 Este componente puede interpretarse como un componente de capacidad educativa y médica

RC3 concentra principalmente Esperanza y Salud - Esperanza tiene carga de 0.85 - Salud tiene carga de 0.55 Este componente puede interpretarse como un componente de resultados en salud

Ojo: 1. Salud presenta carga significativa tanto en RC1 como en RC3, por lo que contribuye a más de un componente. Sin embargo, su relación con RC3 ayuda a reforzar la interpretación de este componente como resultados en salud

  1. PIB no carga de forma fuerte en un solo componente, ya que sus cargas quedan repartidas entre RC1 = 0.45, RC2 = 0.43 y RC3 = 0.41. Por eso no se usa como variable principal para nombrar un componente

#————————————————————————————————————————————————————-# 7. Estima los puntajes de los componentes para cada país: #————————————————————————————————————————————————————-

a. Presenta los puntajes en escala 0 a 100

# Obtener los puntajes de los componentes para cada observación
# FORMULARIO: Código para obtener los puntajes de los componentes

library(psych)
modelo4 <- principal(Dz,nfactors = 3, rotate="varimax", scores=TRUE,method="regression")
modelo4
## Principal Components Analysis
## Call: principal(r = Dz, nfactors = 3, rotate = "varimax", scores = TRUE, 
##     method = "regression")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                      RC1   RC2   RC3   h2   u2 com
## PIB                 0.45  0.43  0.41 0.56 0.44 3.0
## Empleo              0.77  0.12  0.18 0.64 0.36 1.2
## Educación_Corregida 0.85  0.18 -0.08 0.76 0.24 1.1
## Razón               0.22  0.88  0.02 0.83 0.17 1.1
## Salud               0.55 -0.26  0.55 0.67 0.33 2.4
## Esperanza           0.00  0.34  0.85 0.83 0.17 1.3
## Doctores            0.02  0.78  0.24 0.66 0.34 1.2
## 
##                        RC1  RC2  RC3
## SS loadings           1.87 1.80 1.28
## Proportion Var        0.27 0.26 0.18
## Cumulative Var        0.27 0.52 0.71
## Proportion Explained  0.38 0.36 0.26
## Cumulative Proportion 0.38 0.74 1.00
## 
## Mean item complexity =  1.6
## Test of the hypothesis that 3 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.08 
##  with the empirical chi square  11.37  with prob <  0.0099 
## 
## Fit based upon off diagonal values = 0.93
# FORMULARIO: Código para obtener los puntajes de los componentes.
Datos$PC1 <- modelo4$scores[,1]
Datos$PC2 <- modelo4$scores[,2]
Datos$PC3 <- modelo4$scores[,3]

Estimé los puntajes de los tres componentes para cada país utilizando el modelo final con rotación varimax y el método de regresión Transformé estos puntajes a una escala de 0 a 100 mediante un reescalamiento min-max, donde el valor mínimo de cada componente toma 0 y el valor máximo toma 100

b. Estima el índice global

# FORMULARIO: Rescalamiento de variables
# Para que el valor más alto sea el máximo y el valor más bajo el mínimo en todas las variables

Datos$Indice1 <- with(Datos,100*(PC1-min(PC1))/(max(PC1)-min(PC1)))
Datos$Indice2 <- with(Datos,100*(PC2-min(PC2))/(max(PC2)-min(PC2)))
Datos$Indice3 <- with(Datos,100*(PC3-min(PC3))/(max(PC3)-min(PC3)))

Después construí el índice global como un promedio ponderado de los tres índices parciales. Los ponderadores se calcularon con base en los SS loadings de los componentes rotados: RC1 RC2 RC3 SS loadings 1.87 1.80 1.28

# Ponderadores con SS loadings del modelo rotado
Ponderador1 <- 1.87/(1.87+1.80+1.28)
Ponderador2 <- 1.80/(1.87+1.80+1.28)
Ponderador3 <- 1.28/(1.87+1.80+1.28)

Datos$Indice_Global <- (Ponderador1*Datos$Indice1) +
                       (Ponderador2*Datos$Indice2) +
                       (Ponderador3*Datos$Indice3)

c. ¿Qué país tiene el valor más bajo en el índice global? MÉXICO

Datos[which.min(Datos$Indice_Global), c("País", "Indice_Global")]
## # A tibble: 1 × 2
##   País   Indice_Global
##   <chr>          <dbl>
## 1 Mexico          16.6
# Ranking completo de menor a mayor
Datos[order(Datos$Indice_Global), c("País", "Indice_Global")]
## # A tibble: 38 × 2
##    País            Indice_Global
##    <chr>                   <dbl>
##  1 Mexico                   16.6
##  2 Colombia                 22.9
##  3 Costa Rica               33.8
##  4 Türkiye                  36.5
##  5 Chile                    41.8
##  6 Latvia                   47.7
##  7 Slovak Republic          48.7
##  8 Hungary                  49.2
##  9 Czechia                  50.9
## 10 Korea                    53.9
## # ℹ 28 more rows

El país con el valor más bajo en el índice global es Mexico, con un Indice_Global = 16.55323

# Base final con índices
Datos[, c("País", "Indice1", "Indice2", "Indice3", "Indice_Global")]
## # A tibble: 38 × 5
##    País       Indice1 Indice2 Indice3 Indice_Global
##    <chr>        <dbl>   <dbl>   <dbl>         <dbl>
##  1 Australia     66.8    53.8    84.6          66.7
##  2 Austria       70.5    77.0    75.4          74.1
##  3 Belgium       58.0    56.0    77.9          62.4
##  4 Canada        78.4    35.9    70.5          60.9
##  5 Chile         35.8    18.5    83.5          41.8
##  6 Colombia      30.9     0      43.4          22.9
##  7 Costa Rica     0      43.6    69.5          33.8
##  8 Czechia       42.0    49.5    65.7          50.9
##  9 Denmark       67.7    60.6    71.3          66.0
## 10 Estonia       68.6    56.2    31.8          54.6
## # ℹ 28 more rows