LIBRERÍAS:

library(rio)
library(dplyr)
library(polycor)
library(psych)
library(GPArotation)
library(BBmisc)
library(lavaan)
library(semPlot)
data=import("wvs_brasil.xlsx")

data=import(“wvs_brasil.xlsx”)

Un grupo de investigadores está planteando una investigación respecto al nivel de confianza en diferentes organizaciones por parte de la población Brasileña. Para ello se utilizará la WVS wave 7 (World Value Survey) donde las variables en cuestión registran las siguientes categorías escalares: 1=Confía totalmente, 2=Confía parcialmente, 3=Desconfía un poco, 4=Desconfía totalmente, así como otros valores.

PARTE A

A. Prepare las siguientes 15 variables (Columnas 91-105) para aplicar el análisis factorial exploratorio, eliminando valores indeseados y ordenando las categorías de forma ascendente. Explique la necesidad de este procedimiento. (5 pts)

DESCRIPCIÓN: Debemos ver si podemos crear una variable latente de confianza en las instituciones. Para ello se tomará 15 variables observables de la base datos de (World Value Survey)

confianza=data[,c(91:105)]
confianza[confianza>4] <- NA
confianza[confianza<1] <- NA
confianza=na.omit(confianza)

Una vez limpia la base con la que trabajaremos (o sea, habiendo eliminado los datos perdidos), procederemos a ordenar las categorías de forma ascendente y a nombrarlas.

library(car)
library(dplyr)
names(confianza)=c("Iglesia","Fuerzas armadas","Prensa","Televisión","Sindicatos","Policía","Sistema Judicial","Gobierno","Partidos políticos","Parlamento/Congreso","Servicio Civil","Universidades","Elecciones","Grandes Empresas","Bancos")

confianza$Iglesia=recode(confianza$Iglesia,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$`Fuerzas armadas`,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$Prensa,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$Televisión,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$Sindicatos,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$Policía,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$`Sistema Judicial`,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$Gobierno,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$`Partidos políticos`,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$`Parlamento/Congreso`,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$`Servicio Civil`,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$Universidades,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$Elecciones,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$`Grandes Empresas`,"1=4;2=3;3=2;4=1")
confianza$Iglesia=recode(confianza$Bancos,"1=4;2=3;3=2;4=1")

INTERPRETACIÓN: Primero,la eliminación de datos pérdidos sirve para poder trabajar con las variables observables sin obstrucciones en el R. Segundo, es necesario marcar que los valores encima de 4 tiene valores perdidos y que los que están debajo de 1 también, ya que ello nos permite indicarle a R que solo trabajaremos con el intervalo del medio.Por último, como lo que buscamos es que un mayor porcentaje nos de mayor confianza, es crucial el ordenar las categorías de forma ascendente (para poder otrogar una interpretación desde desconfianza total hasta confianza total).

PARTE B

B. Aplique los pasos necesarios para el análisis factorial, explicando los resultados obtenidos en el proceso: (15 pts)

1. Presente la Matriz de correlaciones.

-PASO 1: Calcular la matriz de correlación

library(polycor)
library(psych)
poly_cor = polychoric(confianza)
poly_cor
## Call: polychoric(x = confianza)
## Polychoric correlations 
##                     Igles Frzsa Prens Tlvsn Sndct Polic SstmJ Gobrn Prtdp Prl/C
## Iglesia              1.00                                                      
## Fuerzas armadas     -0.37  1.00                                                
## Prensa              -0.39  0.47  1.00                                          
## Televisión          -0.39  0.38  0.77  1.00                                    
## Sindicatos          -0.38  0.37  0.48  0.46  1.00                              
## Policía             -0.41  0.57  0.42  0.42  0.42  1.00                        
## Sistema Judicial    -0.41  0.49  0.49  0.44  0.51  0.65  1.00                  
## Gobierno            -0.42  0.31  0.43  0.43  0.51  0.42  0.55  1.00            
## Partidos políticos  -0.40  0.22  0.44  0.46  0.51  0.33  0.41  0.74  1.00      
## Parlamento/Congreso -0.40  0.27  0.42  0.43  0.53  0.35  0.46  0.72  0.81  1.00
## Servicio Civil      -0.42  0.36  0.39  0.31  0.38  0.43  0.47  0.44  0.44  0.41
## Universidades       -0.43  0.38  0.31  0.25  0.32  0.40  0.42  0.21  0.18  0.20
## Elecciones          -0.39  0.29  0.37  0.37  0.45  0.30  0.39  0.52  0.63  0.59
## Grandes Empresas    -0.60  0.40  0.41  0.37  0.30  0.39  0.42  0.37  0.34  0.34
## Bancos              -1.00  0.37  0.39  0.39  0.38  0.41  0.41  0.42  0.40  0.40
##                     SrvcC
## Iglesia                  
## Fuerzas armadas          
## Prensa                   
## Televisión               
## Sindicatos               
## Policía                  
## Sistema Judicial         
## Gobierno                 
## Partidos políticos       
## Parlamento/Congreso      
## Servicio Civil       1.00
## Universidades        0.54
## Elecciones           0.43
## Grandes Empresas     0.48
## Bancos               0.42
##                  Unvrs Elccn GrndE Bancs
## Universidades     1.00                  
## Elecciones        0.32  1.00            
## Grandes Empresas  0.49  0.41  1.00      
## Bancos            0.43  0.39  0.60  1.00
## 
##  with tau of 
##                         1       2       3
## Iglesia             -0.69 -0.0606  1.2060
## Fuerzas armadas     -0.73  0.3475  0.9679
## Prensa              -1.58 -0.2848  0.3862
## Televisión          -1.85 -0.3552  0.3227
## Sindicatos          -1.53 -0.3745  0.3075
## Policía             -1.25  0.1241  0.7774
## Sistema Judicial    -1.19  0.0660  0.7037
## Gobierno            -1.96 -0.7037 -0.0733
## Partidos políticos  -2.30 -1.0553 -0.4215
## Parlamento/Congreso -2.21 -0.9422 -0.2886
## Servicio Civil      -1.45 -0.0063  0.7436
## Universidades       -0.60  0.7270  1.3810
## Elecciones          -1.63 -0.5793  0.0099
## Grandes Empresas    -1.40  0.1716  0.8766
## Bancos              -1.21  0.0606  0.6922

Creamos un objeto con la matriz de correlaciones

corMatrix=poly_cor$rho 
cor.plot(corMatrix,
          numbers=T, #Se muestren los numeros de las correlaciones
          upper=F, #Que aparezca la segunda parte
          main= "Matriz de correlaciones",#Titulo
          show.legend=T)#Mostrar leyenda

INTERPRETACIÓN: Primero, es necesario mencionar que se ejecuta una correlación policórica, ya que estamos usando una variable ordinal (mide la confianza desde nada a mucha). Segundo, se crea la matriz de correlaciones para poder ver si existen variable correlacionadas para poder conoformar una variable latente. Por último, se vislumbra el gráfico que denota las variable con mayor fuerza en su corrrelación, estás son las que son más azules y más rojas.

2. Verifique los prerrequisitos (Factorización y Matriz de identidad).

-PASO 2: Verificando que los datos se puedan factorizar

psych::KMO(confianza) 
## Error in solve.default(r) : 
##   Lapack routine dgesv: system is exactly singular: U[15,15] = 0
## matrix is not invertible, image not found
## Kaiser-Meyer-Olkin factor adequacy
## Call: psych::KMO(r = confianza)
## Overall MSA =  0.5
## MSA for each item = 
##             Iglesia     Fuerzas armadas              Prensa          Televisión 
##                 0.5                 0.5                 0.5                 0.5 
##          Sindicatos             Policía    Sistema Judicial            Gobierno 
##                 0.5                 0.5                 0.5                 0.5 
##  Partidos políticos Parlamento/Congreso      Servicio Civil       Universidades 
##                 0.5                 0.5                 0.5                 0.5 
##          Elecciones    Grandes Empresas              Bancos 
##                 0.5                 0.5                 0.5

INTERPRETACIÓN: A partir de la pruea de KMO podemos determinar si los datos se pueden factorizar o no. En es este caso, el Overall MSA = 0.5, entonces podemos decir que tenemos una correlación parcial. Por tanto, podemos decir que sí es pertinente emplear el análisis factorial. Esto se confirmará a partir de la prueba Bartlett

-PASO 3: Verificar si la matriz de correlaciones es adecuada

cortest.bartlett(corMatrix,n=nrow(confianza))$p.value>0.05#Menor a 0.05 saldrá FALSE, mayor a 0.05 saldra TRUE
## [1] FALSE

H0: La matriz de correlacion es una matriz identidad

INTERPRETACIÓN: Con la prueba de Bartlett podemos notar un P value menor a 0.05 se rechaza la H0, por lo que podemos afirmar que la matriz de correlación es distinta a la de identidad.. En esa línea, se confirma/verifica que es pertinente usar una análisis factorial.

3. Determine y solicite componentes.

-PASO 4: Determinar cuántos factores o variables latententes puede redimensionar la data

fa.parallel(corMatrix, fm="pa", fa="fa", main = "Scree Plot")
## Warning in fa.parallel(corMatrix, fm = "pa", fa = "fa", main = "Scree Plot"):
## It seems as if you are using a correlation matrix, but have not specified the
## number of cases. The number of subjects is arbitrarily set to be 100

## Parallel analysis suggests that the number of factors =  4  and the number of components =  NA
eigenf = eigen(cor(confianza, use="complete"))
eigenf$values
##  [1]  6.029940e+00  1.642779e+00  1.271539e+00  1.037149e+00  8.170377e-01
##  [6]  6.526397e-01  6.246260e-01  5.400582e-01  5.068876e-01  4.934100e-01
## [11]  4.268707e-01  3.719192e-01  3.022399e-01  2.829036e-01 -3.191528e-16

INTERPRETACIÓN: Por un lado, el gráfico de sedimentación recomienda determinar 3 factores. Por otro lado, los autovalores que superan a 1 son 4 factores, justo los 4 primeros.

-PASO 5: Solicitamos el número de componentes.

Aplicamos la redimensión

En esta parte, aplicamos los componentes principales. En este caso, determinaré 3 factores a partir de la visualización en el gráfico de sedimentación. No uso los resultados de los autovalores, ya que en esta oportunidad estamos frente a 15 variables, que -en comparación con otros análisis que cuentan con mayores variables- no se vería perdido mucho del análisis. En otras palabras, cuando uno se encuentra frente a muchos valores, el hecho de determinarlos por una cantidad mínima de valores podría hacer que se pierda parte importante del análisis. Sin embargo, cuando uno se encuentra frente a menos valores (como en este caso que solo se cuenta con 15), no existe problema en tomar pocos facotres, al contrario ello facilita el análisis. Por lo que resulta conveniente usar 3 factores(como se visualiza en el gráficode sedimentación), en lugar de 4(como recomiendan los autovalores).

install.packages("GPArotation")
library(GPArotation)
factorial <- fa(confianza,nfactors= 3 ,rotate = "varimax",fm="minres")
factorial
## Factor Analysis using method =  minres
## Call: fa(r = confianza, nfactors = 3, rotate = "varimax", fm = "minres")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                       MR1   MR2   MR3   h2    u2 com
## Iglesia             -0.26 -0.20 -0.94 0.98 0.017 1.3
## Fuerzas armadas      0.61  0.10  0.15 0.40 0.597 1.2
## Prensa               0.56  0.31  0.12 0.43 0.572 1.7
## Televisión           0.49  0.33  0.12 0.37 0.631 1.9
## Sindicatos           0.42  0.41  0.13 0.37 0.634 2.2
## Policía              0.65  0.16  0.15 0.47 0.527 1.2
## Sistema Judicial     0.64  0.28  0.14 0.51 0.492 1.5
## Gobierno             0.28  0.66  0.14 0.54 0.462 1.4
## Partidos políticos   0.12  0.84  0.11 0.73 0.270 1.1
## Parlamento/Congreso  0.17  0.78  0.12 0.66 0.341 1.1
## Servicio Civil       0.47  0.27  0.23 0.35 0.655 2.1
## Universidades        0.49  0.06  0.27 0.32 0.684 1.6
## Elecciones           0.27  0.51  0.17 0.36 0.638 1.8
## Grandes Empresas     0.44  0.18  0.42 0.40 0.600 2.3
## Bancos               0.26  0.20  0.94 0.98 0.017 1.3
## 
##                        MR1  MR2  MR3
## SS loadings           2.93 2.69 2.24
## Proportion Var        0.20 0.18 0.15
## Cumulative Var        0.20 0.37 0.52
## Proportion Explained  0.37 0.34 0.28
## Cumulative Proportion 0.37 0.72 1.00
## 
## Mean item complexity =  1.6
## Test of the hypothesis that 3 factors are sufficient.
## 
## The degrees of freedom for the null model are  105  and the objective function was  27.86 with Chi Square of  38447.19
## The degrees of freedom for the model are 63  and the objective function was  18.58 
## 
## The root mean square of the residuals (RMSR) is  0.05 
## The df corrected root mean square of the residuals is  0.06 
## 
## The harmonic number of observations is  1387 with the empirical chi square  604.77  with prob <  1.6e-89 
## The total number of observations was  1387  with Likelihood Chi Square =  25604.33  with prob <  0 
## 
## Tucker Lewis Index of factoring reliability =  -0.112
## RMSEA index =  0.541  and the 90 % confidence intervals are  0.535 0.546
## BIC =  25148.53
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy             
##                                                    MR1  MR2  MR3
## Correlation of (regression) scores with factors   0.87 0.91 0.98
## Multiple R square of scores with factors          0.76 0.83 0.97
## Minimum correlation of possible factor scores     0.52 0.66 0.93

Diagramamos

fa.diagram(factorial)

¿Que variables componen cada uno de mis factores?

print(factorial$loadings,cutoff = 0.4)
## 
## Loadings:
##                     MR1    MR2    MR3   
## Iglesia                           -0.935
## Fuerzas armadas      0.609              
## Prensa               0.561              
## Televisión           0.494              
## Sindicatos           0.422  0.414       
## Policía              0.652              
## Sistema Judicial     0.640              
## Gobierno                    0.663       
## Partidos políticos          0.839       
## Parlamento/Congreso         0.784       
## Servicio Civil       0.471              
## Universidades        0.487              
## Elecciones                  0.510       
## Grandes Empresas     0.441         0.418
## Bancos                             0.935
## 
##                  MR1   MR2   MR3
## SS loadings    2.930 2.694 2.238
## Proportion Var 0.195 0.180 0.149
## Cumulative Var 0.195 0.375 0.524

INTERPRETACIÓN: Para empezar, podemos ver qué variables tiene cada componente. El primer componente: MR1 contiene la variable policía, sistema judicial, Fuerzas Armadas, prensa, televisión, universidades, servicio civil, grandes empresas y sindicatos. El segundo componente contiene la variable de partidos políticos, parlamento/congreso, gobierno, elecciones. El terce componente contiene la variable Iglesia y bancos. Para continuar, podemos ver la carga que aporta cada variable a su respectivo componente. Resulta interesante que en el “componente 3” ambas de sus variables le aporten la misma carga pero una en positivo y la otra en negativo (Podemos observar que hay unas líneas punteadas rojas, ello implica que las cargas factoriales son negativas, lo que significa que la relación entre la variable observable y el factor creado es inversa). En otras palabras, el tener mayor confianza en la iglesia (al ser inverso) hace que tengas menor confianza en la instituciones, pero el tener mayor confianza en los Bancos hace que tengas mayor confianza en la intituciones. Pese a que los efectos en torno a la cofianza sean relaciones inversas, denotan la misma carga (en este caso, un +/-0.9)

4. Evalúe el Análisis Factorial Exploratorio solicitado: ¿Qué variables aportaron más a los factores? ¿Qué variables contribuyen a más de un factor? ¿Qué variables tiene un componente “único” más grande?

-PASO 6: Evaluamos el Análisis Factorial Exploratorio solicitado

sort(factorial$communality)
##       Universidades      Servicio Civil          Elecciones          Sindicatos 
##           0.3155243           0.3454187           0.3624852           0.3658207 
##          Televisión    Grandes Empresas     Fuerzas armadas              Prensa 
##           0.3687552           0.3998891           0.4025156           0.4280589 
##             Policía    Sistema Judicial            Gobierno Parlamento/Congreso 
##           0.4731101           0.5080182           0.5378259           0.6592753 
##  Partidos políticos              Bancos             Iglesia 
##           0.7295693           0.9827231           0.9827231

En este caso, la variable que tiene mayor porcentaje de varianza común, que más aporta a la confianza en las organizaciones es la de Bancos e Iglesia.

sort(factorial$complexity)
##  Partidos políticos Parlamento/Congreso     Fuerzas armadas             Policía 
##            1.075724            1.147986            1.172095            1.230833 
##             Iglesia              Bancos            Gobierno    Sistema Judicial 
##            1.251387            1.251387            1.448120            1.476596 
##       Universidades              Prensa          Elecciones          Televisión 
##            1.608431            1.678893            1.783420            1.896090 
##      Servicio Civil          Sindicatos    Grandes Empresas 
##            2.096292            2.181951            2.309342

**En este caso las variables que contribuye a más de un factor son las que sobrepasan al 2. Estas son las de Servicio Civil, Grandes Empresas, y Sindicatos.

sort(factorial$uniquenesses)
##             Iglesia              Bancos  Partidos políticos Parlamento/Congreso 
##          0.01727691          0.01727691          0.27043068          0.34072474 
##            Gobierno    Sistema Judicial             Policía              Prensa 
##          0.46217405          0.49198183          0.52688988          0.57194112 
##     Fuerzas armadas    Grandes Empresas          Televisión          Sindicatos 
##          0.59748439          0.60011086          0.63124482          0.63417927 
##          Elecciones      Servicio Civil       Universidades 
##          0.63751478          0.65458133          0.68447568

En este caso, vemos que la variable Universidades tiene un componente único de 0.6844 entre las variables. En otras palabras, esta variable tiene menor cantidad de información en común.

5. Guarde y estandarice los componentes.

-PASO 7: Guardamos los componentes como nuevas variables

factorial_casos<-as.data.frame(factorial$scores)
head(factorial_casos)
##          MR1        MR2        MR3
## 2  2.9230046  0.3822365  1.6626436
## 4 -4.6850470 -6.5315049 -3.0271269
## 5  0.9500469  2.8405885  0.9471945
## 6 -4.6850470 -6.5315049 -3.0271269
## 8 -1.3217857 -2.1077892 -1.8877081
## 9 -4.3067377 -1.5838532 -2.1838643
summary(factorial_casos)
##       MR1                 MR2                MR3         
##  Min.   :-11.29191   Min.   :-12.5332   Min.   :-7.4513  
##  1st Qu.: -2.80891   1st Qu.: -2.1025   1st Qu.:-2.2216  
##  Median : -0.09852   Median :  0.4886   Median :-0.3595  
##  Mean   :  0.00000   Mean   :  0.0000   Mean   : 0.0000  
##  3rd Qu.:  2.77996   3rd Qu.:  2.6746   3rd Qu.: 2.2104  
##  Max.   :  8.52868   Max.   :  5.4720   Max.   : 5.8212

Agregamos a la subdata

confianza$confins1<- factorial_casos$MR1
confianza$confins2<- factorial_casos$MR2
confianza$confins3<- factorial_casos$MR3

Primer factor: Organismos de fizcalización Segundo factor: Organismos gubernamentales Tercer factor: Organizaciones masivos

-PASO 8. Estandarizamos a una escala de 10

library(BBmisc)
confianza$confins1 = normalize(confianza$confins1, 
                                        method = "range", 
                                        margin=2, # by column
                                        range = c(0, 10))
confianza$confins2 = normalize(confianza$confins2,
                                        method = "range", 
                                        margin=2, # by column
                                        range = c(0, 10))
confianza$confins3 = normalize(confianza$confins3, 
                                        method = "range", 
                                        margin=2, # by column
                                        range = c(0, 10))

Vemos resultados de cada factor

summary(confianza)
##     Iglesia      Fuerzas armadas     Prensa        Televisión     Sindicatos   
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.00   Min.   :1.000  
##  1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.00   1st Qu.:2.000  
##  Median :3.000   Median :2.000   Median :3.000   Median :3.00   Median :3.000  
##  Mean   :2.394   Mean   :2.298   Mean   :2.905   Mean   :2.98   Mean   :2.963  
##  3rd Qu.:3.000   3rd Qu.:3.000   3rd Qu.:4.000   3rd Qu.:4.00   3rd Qu.:4.000  
##  Max.   :4.000   Max.   :4.000   Max.   :4.000   Max.   :4.00   Max.   :4.000  
##     Policía      Sistema Judicial    Gobierno     Partidos políticos
##  Min.   :1.000   Min.   :1.000    Min.   :1.000   Min.   :1.000     
##  1st Qu.:2.000   1st Qu.:2.000    1st Qu.:3.000   1st Qu.:3.000     
##  Median :2.000   Median :2.000    Median :4.000   Median :4.000     
##  Mean   :2.563   Mean   :2.597    Mean   :3.263   Mean   :3.507     
##  3rd Qu.:3.000   3rd Qu.:3.000    3rd Qu.:4.000   3rd Qu.:4.000     
##  Max.   :4.000   Max.   :4.000    Max.   :4.000   Max.   :4.000     
##  Parlamento/Congreso Servicio Civil  Universidades     Elecciones   
##  Min.   :1.000       Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:3.000       1st Qu.:2.000   1st Qu.:1.000   1st Qu.:2.000  
##  Median :4.000       Median :3.000   Median :2.000   Median :3.000  
##  Mean   :3.427       Mean   :2.658   Mean   :2.043   Mean   :3.164  
##  3rd Qu.:4.000       3rd Qu.:3.000   3rd Qu.:2.000   3rd Qu.:4.000  
##  Max.   :4.000       Max.   :4.000   Max.   :4.000   Max.   :4.000  
##  Grandes Empresas     Bancos         confins1         confins2     
##  Min.   :1.000    Min.   :1.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.:2.000    1st Qu.:2.000   1st Qu.: 4.280   1st Qu.: 5.793  
##  Median :2.000    Median :2.000   Median : 5.647   Median : 7.232  
##  Mean   :2.542    Mean   :2.606   Mean   : 5.697   Mean   : 6.961  
##  3rd Qu.:3.000    3rd Qu.:3.000   3rd Qu.: 7.100   3rd Qu.: 8.446  
##  Max.   :4.000    Max.   :4.000   Max.   :10.000   Max.   :10.000  
##     confins3     
##  Min.   : 0.000  
##  1st Qu.: 3.940  
##  Median : 5.343  
##  Mean   : 5.614  
##  3rd Qu.: 7.279  
##  Max.   :10.000

Primer factor: Organismos de fizcalización Segundo factor: Organismos gubernamentales Tercer factor: Organizaciones masivos