Factores subyacentes a la imagen que los hombres tienen de sí mismos

10 minute read

Carga datos y adecuación variables

Dado que el objetivo de la actividad es la implementación del modelo en sí, no se realiza el debido análisis exploratorio de datos (Junto al procesamiento de datos, son claves para cualquier proyecto de ciencia de datos).

# Importamos librerias
library(dplyr)
library(MASS)
library(psych)
library(ggplot2)
library(corrplot) # Grafica matriz correlacion 
library(GPArotation) # Metodo para rotacion de da factores 
library(nFactors) #metodo para determinar el numero de factores

# Importamos el dataset
library(foreign)
data <- read.spss("ESS8ES.sav", reencode='utf-8', to.data.frame = TRUE)

# Seleccion de variables
hvalues_sinrecode <- data[497:517]

# Recodificación de las variables
hvalues <- hvalues_sinrecode %>% mutate_all(
            funs(recode(.,
            "Very much like me"=1,
            "Like me"=2,
            "Somewhat like me"=3,
            "A little like me"=4,
            "Not like me"=5,
            "Not like me at all"=6)))



# Escalado de datos: media cero y varianza 1
hvalues_standard <- data.frame(scale(hvalues,
                                     center = TRUE,
                                     scale=TRUE))

Análisis factorial exploratorio

A partir de los datos de la European Social Survey (ESS) tratamos de extraer los factores subyacentes a la imagen que los hombres tienen de sí mismo.

La información más detallada sobre las variables de estudio se encuentra en ESS8 Codebook.

Modelo matemático

Mediante el análisis factorial exploratorio, tratamos de descubrir la estructura interna de las varibles. La hipótesis inicial es la posibilidad de encontrar una serie de factores asociados al grupo de variables.

Consideramos las variables observadas \(X_{1}, X_{2}, X_{3},...,X_{p}\) como variables tipificadas (con media cero y varianza 1) y formalizamos la relación entre las variables definiendo el siguiente modelo factorial:

\[\begin{align*} X_{1} = l_{11}F_{1} + l_{12}F_{2} + ... + l_{1k}F_{k} + u_{1} \\ X_{2} = l_{21}F_{1} + l_{22}F_{2} + ... + l_{2k}F_{k} + u_{2} \\ .......................... \\ X_{P} = l_{P1}F_{1} + l_{P2}F_{2} + ... + l_{Pk}F_{k} + u_{P} \end{align*}\]

En este modelo \(F_{1}, F_{2}, F_{3}...F_{k}\) son los factores comunes, \(u_{1}, u_{2}, u_{3}...u_{k}\) son los factores únicos o unicidades y \(l_{ij}\) es el peso del factor j en la variable i, denominado también carga factorial o saturación de una variable en un factor.

Según la formulacion del modelo, cada una de las p variables observables es una combinación lineal de k factores comunes a todas las variables (k < p) y de un factor único para cada variable. Así todas las variables originales están influenciadas por todos los factores comunes, mientras que para cada variable existe un único factor que es específico para esa variable. Tanto los factores comunes como los específicos son variables no observables. De forma matricial el modelo queda:

\[\begin{align*} X = LF + U \end{align*}\]

Donde X es la matriz formada por las variables originales, L es la matriz de cargas factoriales, F es la matriz formada por los factores comunes y U es la matriz formada por los factores único o específicos.

Contrastes en el Modelo Factorial

Uno de los requisitos que deben cumplirse para que el Análisis Factorial tenga sentido es que las variables están altamente correlacionadas.

# Cálculo de matriz de correlaciones numerica y visual
correl <- round(cor(hvalues_standard, use="complete.obs"),2)
corrplot(cor(hvalues_standard, use="complete.obs"), order = "original", tl.col='black', tl.cex=.75) 

Índice KMO

Para comprobar el grado de asociación entre las variables recurrimos al índice KMO.

En nuestro modelo factorial, el coeficiente de correlación parcial considera tanto los efectos de las otras variables como los correspondientes a los factores comunes. Por lo tanto, el coeficiente de correlación parcial entre dos variables sería equivalente al coeficiente de correlación parcial entre los factores únicos de esas dos variables.

\[\begin{align*} KMM = \frac{\sum_{j} \sum_{h\neq j}r_{jh}^2}{\sum_{j} \sum_{h\neq j}r_{jh}^2 + \sum_{j} \sum_{h\neq j}a_{jh}^2} \end{align*}\]

donde \(r^2_{jh}\) representa al coeficiente de correlación simple al cuadrado y \(a^2_{jh}\) al coeficiente de correlación parcial al cuadrado.

 # Indice KMO 
KMO(hvalues_standard)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = hvalues_standard)
## Overall MSA =  0.84
## MSA for each item = 
## ipcrtiv imprich ipeqopt ipshabt impsafe impdiff ipfrule ipudrst ipmodst ipgdtim 
##    0.85    0.82    0.82    0.82    0.80    0.87    0.81    0.83    0.84    0.83 
## impfree iphlppl ipsuces ipstrgv ipadvnt ipbhprp iprspot iplylfr  impenv imptrad 
##    0.87    0.85    0.85    0.82    0.87    0.83    0.81    0.86    0.88    0.79 
##  impfun 
##    0.81

Dado que el valor del estadístico KMO es superior a 0.8, el contraste nos indica que las correlaciones entre los pares de variables pueden ser explicadas por otras variables, y por lo tanto podemos proseguir con el análisis factorial.

Elección e interpretación de los factores

Puesto que nuestro objetivo es tratar de identificar factores que reflejen lo que las variables comparten en común, el método de eje principal o factor es el adecuado en este caso. Otro motivo por el cual usamos este método es por la escala en la que están las variables, que descarta otros métodos. No asumimos que las mediciones sean continuas ni tampoco normales.

La matriz factorial puede presentar un número de factores superior al necesario para explicar la estructura de los datos originales. El procedimiento para determinar el número a conservar que usamos es el criterior de los autovalores. Seleccionamos solamente aquellos factores que tengan un autovalor superior a la unidad. La lógica de este criterio es que un factor, para ser útil, debe servir para explicar la varianza de, al menos, una variable.

Solución factorial no rotada

De forma exploratoria, generamos una solución factorial no rotada, por ejes principales, y con 5 factores. Nos interesa observar en primer momento los aurovalores (SS loadings) de los componentes extraídos. Los autovalores nos darán una medida de toleranica para poder decidir cuanta cuantidad de factores es recomendable seleccionar.

# Análisi factorial mediante método del eje principal
# Solucion factorial no rotada y 5 factores
AF_norotado <- fa(hvalues_standard, nfactors=5,
                  fm='pa', rotate='none',
                  max.iter=100)
AF_norotado
## Factor Analysis using method =  pa
## Call: fa(r = hvalues_standard, nfactors = 5, rotate = "none", max.iter = 100, 
##     fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##          PA1   PA2   PA3   PA4   PA5   h2   u2 com
## ipcrtiv 0.41 -0.10 -0.13  0.14 -0.09 0.22 0.78 1.7
## imprich 0.31 -0.27  0.39  0.07 -0.02 0.33 0.67 2.8
## ipeqopt 0.29  0.27 -0.34  0.23 -0.04 0.33 0.67 3.8
## ipshabt 0.50 -0.13  0.37  0.28  0.07 0.49 0.51 2.7
## impsafe 0.27  0.45  0.26  0.11 -0.33 0.46 0.54 3.4
## impdiff 0.59 -0.24 -0.17  0.01 -0.02 0.43 0.57 1.5
## ipfrule 0.08  0.39  0.32 -0.12  0.04 0.28 0.72 2.3
## ipudrst 0.36  0.22 -0.33  0.20  0.12 0.35 0.65 3.6
## ipmodst 0.20  0.49 -0.19 -0.09  0.07 0.33 0.67 1.8
## ipgdtim 0.64 -0.33 -0.01 -0.19 -0.06 0.56 0.44 1.7
## impfree 0.42 -0.05 -0.16  0.08  0.01 0.21 0.79 1.4
## iphlppl 0.36  0.42 -0.25  0.04 -0.02 0.37 0.63 2.6
## ipsuces 0.59 -0.19  0.39  0.12  0.05 0.56 0.44 2.1
## ipstrgv 0.26  0.47  0.16 -0.02 -0.30 0.41 0.59 2.7
## ipadvnt 0.54 -0.43 -0.10 -0.08  0.13 0.51 0.49 2.2
## ipbhprp 0.17  0.57  0.23 -0.12  0.17 0.45 0.55 1.8
## iprspot 0.31  0.09  0.39  0.04  0.18 0.29 0.71 2.5
## iplylfr 0.38  0.39 -0.20 -0.07  0.12 0.36 0.64 2.8
## impenv  0.34  0.29 -0.24 -0.02  0.08 0.26 0.74 2.9
## imptrad 0.15  0.39  0.27 -0.23  0.10 0.31 0.69 3.0
## impfun  0.66 -0.31 -0.14 -0.38 -0.15 0.72 0.28 2.3
## 
##                        PA1  PA2  PA3  PA4  PA5
## SS loadings           3.46 2.42 1.43 0.51 0.37
## Proportion Var        0.16 0.12 0.07 0.02 0.02
## Cumulative Var        0.16 0.28 0.35 0.37 0.39
## Proportion Explained  0.42 0.30 0.17 0.06 0.05
## Cumulative Proportion 0.42 0.72 0.89 0.95 1.00
## 
## Mean item complexity =  2.5
## Test of the hypothesis that 5 factors are sufficient.
## 
## The degrees of freedom for the null model are  210  and the objective function was  5.02 with Chi Square of  9779.96
## The degrees of freedom for the model are 115  and the objective function was  0.28 
## 
## The root mean square of the residuals (RMSR) is  0.02 
## The df corrected root mean square of the residuals is  0.03 
## 
## The harmonic number of observations is  1915 with the empirical chi square  429.58  with prob <  7.6e-38 
## The total number of observations was  1958  with Likelihood Chi Square =  542.02  with prob <  1.4e-56 
## 
## Tucker Lewis Index of factoring reliability =  0.918
## RMSEA index =  0.044  and the 90 % confidence intervals are  0.04 0.047
## BIC =  -329.65
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy             
##                                                    PA1  PA2  PA3  PA4   PA5
## Correlation of (regression) scores with factors   0.93 0.90 0.84 0.72  0.63
## Multiple R square of scores with factors          0.87 0.81 0.70 0.52  0.40
## Minimum correlation of possible factor scores     0.74 0.61 0.40 0.03 -0.20

Lo primero que llama la atención, es la baja varianza que logra explicar el modelo, incluso con la cantidad de factores inicial. Tenemos que con 5 factores ( de 21 variables) logramos explicar solo un 39% de la varianza. Observamos una capacidad explicativa baja, y lo será más aún a medida que restrinjamos la cantidad de factores a considerar.

Solución factorial mediante rotación de factores oblimin

Analizamos la salida del modelo con 3 factores mediante la rotación oblicua oblimin.

El procedimiento de rotación de factores oblimin proporciona una matriz de carga factorial más fácil de interpretar, y una indicación de la posible correcta selección del método empleado, es la correlación positiva entre factores.

Efectivamente, la varianza explicada con la reducción de factores pasa a ser del 34%. Las comunalidades individuales \((h^2)\) muestran cómo covaría la variable individual con el resto de las variables. Todas son óptimas para la interpretabilidad del modelo, y no excluye ninguna variable ya que toman valores (>0.3).

# Solucion factorial rotada y 3 factores
AF2_rotado<- fa(hvalues_standard, nfactors=3,
                  fm='pa', rotate='oblimin',
                  max.iter=100)

AF2_rotado
## Factor Analysis using method =  pa
## Call: fa(r = hvalues_standard, nfactors = 3, rotate = "oblimin", max.iter = 100, 
##     fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##           PA1   PA2   PA3   h2   u2 com
## ipcrtiv  0.40  0.18 -0.04 0.20 0.80 1.4
## imprich  0.40 -0.34  0.25 0.33 0.67 2.6
## ipeqopt  0.10  0.49 -0.03 0.26 0.74 1.1
## ipshabt  0.48 -0.14  0.33 0.37 0.63 2.0
## impsafe -0.02  0.19  0.50 0.30 0.70 1.3
## impdiff  0.64  0.19 -0.12 0.45 0.55 1.3
## ipfrule -0.15  0.05  0.51 0.27 0.73 1.2
## ipudrst  0.19  0.49 -0.03 0.28 0.72 1.3
## ipmodst -0.10  0.51  0.18 0.32 0.68 1.3
## ipgdtim  0.71  0.03 -0.02 0.51 0.49 1.0
## impfree  0.39  0.23 -0.04 0.21 0.79 1.6
## iphlppl  0.08  0.57  0.14 0.37 0.63 1.2
## ipsuces  0.60 -0.18  0.36 0.54 0.46 1.8
## ipstrgv -0.03  0.26  0.45 0.29 0.71 1.6
## ipadvnt  0.69  0.00 -0.17 0.49 0.51 1.1
## ipbhprp -0.17  0.25  0.55 0.41 0.59 1.6
## iprspot  0.21 -0.11  0.44 0.25 0.75 1.6
## iplylfr  0.11  0.52  0.17 0.34 0.66 1.3
## impenv   0.13  0.47  0.07 0.26 0.74 1.2
## imptrad -0.08  0.10  0.47 0.24 0.76 1.2
## impfun   0.68  0.14 -0.08 0.48 0.52 1.1
## 
##                        PA1  PA2  PA3
## SS loadings           3.13 2.11 1.92
## Proportion Var        0.15 0.10 0.09
## Cumulative Var        0.15 0.25 0.34
## Proportion Explained  0.44 0.29 0.27
## Cumulative Proportion 0.44 0.73 1.00
## 
##  With factor correlations of 
##      PA1  PA2  PA3
## PA1 1.00 0.03 0.09
## PA2 0.03 1.00 0.11
## PA3 0.09 0.11 1.00
## 
## Mean item complexity =  1.4
## Test of the hypothesis that 3 factors are sufficient.
## 
## The degrees of freedom for the null model are  210  and the objective function was  5.02 with Chi Square of  9779.96
## The degrees of freedom for the model are 150  and the objective function was  0.6 
## 
## The root mean square of the residuals (RMSR) is  0.04 
## The df corrected root mean square of the residuals is  0.04 
## 
## The harmonic number of observations is  1915 with the empirical chi square  1014.12  with prob <  3.2e-128 
## The total number of observations was  1958  with Likelihood Chi Square =  1171.77  with prob <  8.1e-158 
## 
## Tucker Lewis Index of factoring reliability =  0.85
## RMSEA index =  0.059  and the 90 % confidence intervals are  0.056 0.062
## BIC =  34.82
## Fit based upon off diagonal values = 0.97
## Measures of factor score adequacy             
##                                                    PA1  PA2  PA3
## Correlation of (regression) scores with factors   0.92 0.87 0.86
## Multiple R square of scores with factors          0.85 0.75 0.74
## Minimum correlation of possible factor scores     0.70 0.50 0.48

Conclusión

En lugar de calcular las puntuaciones factoriales, nuestro objetivo es seleccionar las variables más representativas de los factores. Para ello, seleccionamos como representante de cada factor la variable con la correlación más elevada en éste.

Para el factor 1, la variable más representativa con una correlacion 0.71 es ipgdtim, referente a tener buen tiempo.

Para el factor 2, es jphlpp (0.57) referente a ayudar a otras personas y atento al bienestar de los demás.

Para el factor 3, es ipbhprpr (0.55) referente a comportarse adecuadamente.