Cargar datos
En esta práctica dirigida analizaremos si es viable reducir un inventario de participación política aplicado por el Instituto de Opinión Pública de la PUCP(IOP, 2012) en el marco del estudio Representación Política y Conflictos Sociales. Este inventario registra el nivel de involucramiento de los ciudadanos en diversas formas de participación política tanto formales/convencionales/no disruptivas (e.g.,buscar a un congresista para hacerle llegar una necesidad o demanda social) como informales/no convencionales/disruptivas(e.g., participación en protestas). La data y el cuestionario del estudio se pueden descargar del portal del IOP en el siguiente en-lace:
http://datos.pucp.edu.pe/dataverse/iop?q=&fq0=productionDate_s%3A%222012%22&types= dataverses%3Adatasets&sort=dateSort&order=desc
Carga de paquetes
Como la extensión en la que el IOP ha archivado la data del estudio es de SPSS(“.sav”), vamos a necesitar el paquete “foreign” para su importación.
library(foreign)
Luego importamos el archivo como “data.frame” y le colocamos el nombre “conflictos12”. Si cotejamos con el cuestionario del estudio, podemos ver que las variables de interés van desde la pregutna P74A hasta P74H.
conflictos12<-read.spss("IOP_1112_01_D.sav", to.data.frame=T, use.value.labels = F)
Inspeccionamos el nombre de las variables (“names”):
names(conflictos12)
## [1] "NUM" "SEXO" "EDAD" "P1A" "P1A_OTRO" "P1B"
## [7] "P1B_OTRO" "P2" "P3" "P4A" "P4B" "P4C"
## [13] "P4D" "P4E" "P4F" "P4G" "P5" "P6"
## [19] "P7A" "P7B" "P8A" "P8B" "P8C" "P8D"
## [25] "P9A" "P9B" "P9C" "P9D" "P9E" "P9F"
## [31] "P9G" "P9H" "P9I" "P9J" "P9K" "P9L"
## [37] "P9M" "P10" "P11" "P12A" "P12B" "P12C"
## [43] "P12D" "P12E" "P12F" "P13A" "P13B" "P13C"
## [49] "P13D" "P13E" "P13F" "P13G" "P13H" "P13I"
## [55] "P13J" "P14A" "P14ARC" "P14B" "P14BRC" "P15"
## [61] "P15OTRO" "P16" "P17" "P18A" "P18B" "P18C"
## [67] "P18D" "P19" "P20A" "P20B" "P20C" "P20D"
## [73] "P21A" "P21B" "P21C" "P21D" "P21E" "P21F"
## [79] "P22" "P23" "P24" "P25A" "P25B" "P25C"
## [85] "P25D" "P26A" "P26B" "P26C" "P26D" "P26E"
## [91] "P26F" "P26G" "P26H" "P27A" "P27B" "P27C"
## [97] "P27D" "P27E" "P28A" "P28B" "P28C" "P28D"
## [103] "P29A" "P29B" "P29C" "P29D" "P30A" "P30B"
## [109] "P30C" "P31A" "P31B" "P31C" "P31D" "P31E"
## [115] "P32A" "P32B" "P32C" "P32D" "P32E" "P33A"
## [121] "P33B" "P33C" "P33D" "P33E" "P34A" "P34B"
## [127] "P34C" "P34D" "P34E" "P34F" "P35" "P36"
## [133] "P37" "P38A" "P38B" "P38C" "P38D" "P38E"
## [139] "P38F" "P38G" "P38H" "P38I" "P38J" "P39A"
## [145] "P39B" "P39C" "P39D" "P39E" "P39F" "P39G"
## [151] "P39H" "P39I" "P39J" "P40A" "P40B" "P41A"
## [157] "P41B" "P41C" "P42" "P43" "P44" "P45"
## [163] "P46" "P47" "P48" "P49" "P50" "P51A"
## [169] "P51AOTRO" "P51B" "P51BOTRO" "P51C" "P51COTRO" "P52"
## [175] "P53" "P54" "P55A" "P55B" "P55C" "P55D"
## [181] "P55E" "P56A" "P56B" "P56C" "P56D" "P57"
## [187] "P58" "P59" "P60" "P61" "P62" "P63"
## [193] "P64" "P65A" "P65B" "P65C" "P66" "P67"
## [199] "P68" "P69" "P70" "P71" "P72" "P73A"
## [205] "P73B" "P73C" "P73D" "P73E" "P73F" "P73G"
## [211] "P74A" "P74B" "P74C" "P74D" "P74E" "P74F"
## [217] "P74G" "P74H" "P75A" "P75" "P76" "P76OTRO"
## [223] "P77" "P77NAT" "P77EXT" "P78" "P78OTRO" "P79"
## [229] "DG1" "DG2" "DG3A" "DG3B" "DG3C" "DG3D"
## [235] "DG3E" "DG4" "DG5" "DG5OTRO" "DG6" "DG6COD"
## [241] "DG7" "DG8" "DG9" "URBRAL" "CIUDAD" "Región"
## [247] "AMBITOS" "UBIGEO" "DOMINIO" "NSE" "NSEGrup"
Variables en la base. El inventario de participación política evalúa el nivel de involucramiento en participación política con una escala de respuesta en donde “1” significa “Lo he hecho”, “2” significa “Podría hacerlo” y “3” “Nunca lo haría”. La consigna al inicio del inventario solicita al participante responder sobre su participación en las siguientes formas de participación política:
Preparación de la data
Selección de variables. Ahora bien, vamos a extraer las columnas que corresponden a las variables de participación política. Para ello, vamos a utilizar el comando “names”: seleccionamos la columna con índice 1, debido a que tiene el identificador del participante en la encuesta, y las columnas con índice desde 211 hasta 218(P74A-P74H).
conflictos.s<-conflictos12[names(conflictos12)[c(1,211:218)]]
Recodificación de variables
Recodificamos 9 por “NA”, pero tenemos cuidado de no recodificar el 9 de la columna con el identificador de casos.
NUM <- conflictos.s[, 1]
df <- conflictos.s[, 2:9]
df[df==9] <- NA
df.p74 <- cbind(NUM, df)
1. Análisis preliminar descriptivo
Para organizar mejor los estadísticos descriptivos de las variables de interés, podemos utilizar el paquete “stargazer”. En este caso, dado que el tipo de variable es ordinal, es mejor utilizar la mediana.
library(stargazer)
stargazer(df.p74[-1], type="text", median=T)
##
## ===================================================================
## Statistic N Mean St. Dev. Min Pctl(25) Median Pctl(75) Max
## -------------------------------------------------------------------
## P74A 1,122 2.152 0.638 1.000 2.000 2.000 3.000 3.000
## P74B 1,138 2.395 0.685 1.000 2.000 3.000 3.000 3.000
## P74C 1,136 2.512 0.641 1.000 2.000 3.000 3.000 3.000
## P74D 1,121 2.778 0.480 1.000 3.000 3.000 3.000 3.000
## P74E 1,124 2.361 0.546 1.000 2.000 2.000 3.000 3.000
## P74F 1,134 2.189 0.551 1.000 2.000 2.000 3.000 3.000
## P74G 1,133 2.209 0.538 1.000 2.000 2.000 3.000 3.000
## P74H 1,103 2.790 0.446 1.000 3.000 3.000 3.000 3.000
## -------------------------------------------------------------------
Preguntas
¿Cómo es el perfil de la muestra de ciudadanos respecto a la participación política?
Antes de realizar la reducción de dimensiones con el análisis de Componentes Principales, ¿una solución de cuántos componentes podría realizarse?
¿Y de qué tratarían los componentes que Ud. propone?
2. Matriz de correlaciones
## TABLA DE CORRELACIONES
correla1 <- round(cor(df.p74[,-1], use = "complete.obs"),2)
correla1
## P74A P74B P74C P74D P74E P74F P74G P74H
## P74A 1.00 0.45 0.42 0.29 0.39 0.38 0.42 0.27
## P74B 0.45 1.00 0.74 0.47 0.31 0.33 0.34 0.37
## P74C 0.42 0.74 1.00 0.55 0.30 0.29 0.34 0.41
## P74D 0.29 0.47 0.55 1.00 0.24 0.21 0.26 0.51
## P74E 0.39 0.31 0.30 0.24 1.00 0.50 0.53 0.26
## P74F 0.38 0.33 0.29 0.21 0.50 1.00 0.62 0.21
## P74G 0.42 0.34 0.34 0.26 0.53 0.62 1.00 0.30
## P74H 0.27 0.37 0.41 0.51 0.26 0.21 0.30 1.00
Calcule la matriz de correlaciones para los items de la escala de participación política y responda:
¿Es pertinente realizar un análisis de Componentes Principales?
¿Hay algún item que podría ser retirado de la matriz antes de realizar el análisis de Componentes Principales?
3. Análisis de componentes principales
Para completar el análisis de Componentes Principales, desarrolle los siguientes puntos:
Cálcule una primera solución que contenga tantos componentes como variables [utilice la función “principal” del paquete “psych”]
Seleccione un número adecuado de Componentes Principales con las reglas del autovalor, varianza acumulada y método gráfico
Calcule una nueva solución que contenga solo el número de componentes seleccionados
- ¿Cuál es el item que se explica mejor en la solución?
- ¿Cuál es el item que peor es explicado por la solución?library(psych)
pca1 <- principal(df.p74[, -1], nfactors = 8, rotate = "none")
pca1
## Principal Components Analysis
## Call: principal(r = df.p74[, -1], nfactors = 8, rotate = "none")
## Standardized loadings (pattern matrix) based upon correlation matrix
## PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 h2 u2 com
## P74A 0.67 0.12 -0.33 0.64 -0.05 0.14 0.02 -0.02 1 -2.2e-16 2.7
## P74B 0.76 -0.32 -0.37 -0.17 -0.05 -0.21 0.06 0.33 1 1.0e-15 2.7
## P74C 0.76 -0.40 -0.27 -0.19 0.01 -0.12 -0.05 -0.36 1 7.8e-16 2.6
## P74D 0.64 -0.49 0.25 -0.09 0.15 0.50 -0.07 0.07 1 1.1e-15 3.5
## P74E 0.65 0.45 0.12 -0.01 0.59 -0.14 0.03 0.01 1 8.9e-16 3.0
## P74F 0.64 0.54 0.04 -0.24 -0.24 0.18 0.38 -0.05 1 -6.7e-16 3.5
## P74G 0.69 0.48 0.13 -0.10 -0.24 -0.03 -0.46 0.03 1 6.7e-16 3.1
## P74H 0.59 -0.33 0.60 0.23 -0.15 -0.29 0.12 -0.01 1 2.2e-16 3.6
##
## PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
## SS loadings 3.66 1.35 0.78 0.60 0.51 0.46 0.38 0.25
## Proportion Var 0.46 0.17 0.10 0.08 0.06 0.06 0.05 0.03
## Cumulative Var 0.46 0.63 0.72 0.80 0.86 0.92 0.97 1.00
## Proportion Explained 0.46 0.17 0.10 0.08 0.06 0.06 0.05 0.03
## Cumulative Proportion 0.46 0.63 0.72 0.80 0.86 0.92 0.97 1.00
##
## Mean item complexity = 3.1
## Test of the hypothesis that 8 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
pca2 <- principal(df.p74[, -1], nfactors = 2, rotate = "none")
pca2
## Principal Components Analysis
## Call: principal(r = df.p74[, -1], nfactors = 2, rotate = "none")
## Standardized loadings (pattern matrix) based upon correlation matrix
## PC1 PC2 h2 u2 com
## P74A 0.67 0.12 0.46 0.54 1.1
## P74B 0.76 -0.32 0.67 0.33 1.3
## P74C 0.76 -0.40 0.74 0.26 1.5
## P74D 0.64 -0.49 0.65 0.35 1.9
## P74E 0.65 0.45 0.62 0.38 1.8
## P74F 0.64 0.54 0.70 0.30 1.9
## P74G 0.69 0.48 0.71 0.29 1.8
## P74H 0.59 -0.33 0.46 0.54 1.6
##
## PC1 PC2
## SS loadings 3.66 1.35
## Proportion Var 0.46 0.17
## Cumulative Var 0.46 0.63
## Proportion Explained 0.73 0.27
## Cumulative Proportion 0.73 1.00
##
## Mean item complexity = 1.6
## Test of the hypothesis that 2 components are sufficient.
##
## The root mean square of the residuals (RMSR) is 0.09
## with the empirical chi square 548.01 with prob < 9.1e-109
##
## Fit based upon off diagonal values = 0.95
4. Rotación de componentes
pca3 <- principal(df.p74[, -1], nfactors = 2, rotate = "varimax")
pca3
## Principal Components Analysis
## Call: principal(r = df.p74[, -1], nfactors = 2, rotate = "varimax")
## Standardized loadings (pattern matrix) based upon correlation matrix
## RC1 RC2 h2 u2 com
## P74A 0.41 0.54 0.46 0.54 1.9
## P74B 0.77 0.28 0.67 0.33 1.3
## P74C 0.83 0.22 0.74 0.26 1.1
## P74D 0.80 0.07 0.65 0.35 1.0
## P74E 0.17 0.77 0.62 0.38 1.1
## P74F 0.11 0.83 0.70 0.30 1.0
## P74G 0.19 0.82 0.71 0.29 1.1
## P74H 0.66 0.16 0.46 0.54 1.1
##
## RC1 RC2
## SS loadings 2.61 2.40
## Proportion Var 0.33 0.30
## Cumulative Var 0.33 0.63
## Proportion Explained 0.52 0.48
## Cumulative Proportion 0.52 1.00
##
## Mean item complexity = 1.2
## Test of the hypothesis that 2 components are sufficient.
##
## The root mean square of the residuals (RMSR) is 0.09
## with the empirical chi square 548.01 with prob < 9.1e-109
##
## Fit based upon off diagonal values = 0.95
Para terminar, realice una rotación de Componentes Principales que le permita interpretar mejor los componentes rotados
¿De qué trata el primer componente?
¿Cuánta varianza explica el segundo componente luego de la rotación?
Puntajes de componentes extraídos
Con el siguiente comando podemos calcular los puntajes para cada uno de los componentes: PC1, Participación política no convencional y PC2, participacón política convencional. Y luego, los añadimos a la base original:
puntajes.pc1 <- as.data.frame(pca3$scores)
dfp74.2 <- cbind(df.p74, puntajes.pc1)
conflictos12.b <- merge(conflictos12, dfp74.2[c(1,10,11)], by = "NUM")
Ahora, podemos graficar la distribucion de la densidad de ambos componentes:
library(ggplot2)
curva.rc1 <- ggplot(conflictos12.b, aes(RC1)) +
geom_density(fill="green", alpha=0.2) +
ggtitle("Distribución de RC1: Part. no convencional") + theme_bw()
curva.rc1
curva.rc2 <- ggplot(conflictos12.b, aes(RC2)) +
geom_density(fill="green", alpha=0.2) +
ggtitle("Distribución de RC2: Part. convencional") + theme_bw()
curva.rc2
___
Perfil de la protesta
Para perfilar a los ciudadanos que se involucran en participación política, planteamos algunas variables:
Ámbito de residencia
EDAD
Antes le colocamos las etiquetas a las variables de interés (e.g., “AMBITOS”)
__
conflictos12.b$AMBITOS.f<-factor(conflictos12.b$AMBITOS)
levels(conflictos12.b$AMBITOS.f)<-c("Lima-Callao","Interior urbano","Interior rural")
__
Estadísticos descriptivos
Podemos calcular algunos estadísticos descriptivos por ámbito:
library(Rmisc)
## Loading required package: lattice
## Loading required package: plyr
tab1 <- summarySE(data = conflictos12.b, measurevar = "RC1", groupvars = "AMBITOS.f",na.rm=T)
tab1
## AMBITOS.f N RC1 sd se ci
## 1 Lima-Callao 406 0.4221646 0.7160224 0.03553559 0.06985724
## 2 Interior urbano 450 -0.2513173 1.0681735 0.05035418 0.09895914
## 3 Interior rural 162 -0.2756418 1.0709963 0.08414542 0.16617106
ANOVA DE UN FACTOR
Para saber si estas diferencias son estadísticamente significativas, podemos realizar un contraste estadístico con la prueba ANOVA.
anova1 <- aov(conflictos12.b$RC1~conflictos12.b$AMBITOS.f)
summary(anova1)
## Df Sum Sq Mean Sq F value Pr(>F)
## conflictos12.b$AMBITOS.f 2 112.9 56.45 63.34 <2e-16 ***
## Residuals 1015 904.6 0.89
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 185 observations deleted due to missingness
Contrastes Post-hoc
TukeyHSD(anova1)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = conflictos12.b$RC1 ~ conflictos12.b$AMBITOS.f)
##
## $`conflictos12.b$AMBITOS.f`
## diff lwr upr p adj
## Interior urbano-Lima-Callao -0.67348190 -0.8251548 -0.5218090 0.0000000
## Interior rural-Lima-Callao -0.69780649 -0.9037244 -0.4918886 0.0000000
## Interior rural-Interior urbano -0.02432458 -0.2273509 0.1787017 0.9573463
Análisis de regresión múltiple
Podemos analizar, ahora, en un modelo de regresión lineal, el impacto de la zona de residencia (“AMBITOS.f”), junto con la variable “EDAD” que ya se conoce que tiene un impacto en el nivel de involucramiento en participación política no convencional:
m1 <- lm(RC1 ~ AMBITOS.f + EDAD, data = conflictos12.b)
summary(m1)
##
## Call:
## lm(formula = RC1 ~ AMBITOS.f + EDAD, data = conflictos12.b)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5976 -0.5131 0.1979 0.6798 1.5859
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.263350 0.089388 2.946 0.00329 **
## AMBITOS.fInterior urbano -0.671210 0.064523 -10.403 < 2e-16 ***
## AMBITOS.fInterior rural -0.697473 0.087587 -7.963 4.48e-15 ***
## EDAD 0.004053 0.001944 2.085 0.03732 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9425 on 1014 degrees of freedom
## (185 observations deleted due to missingness)
## Multiple R-squared: 0.1148, Adjusted R-squared: 0.1121
## F-statistic: 43.82 on 3 and 1014 DF, p-value: < 2.2e-16
Ejercicio 1
Realice el msimo procedimiento pero con el segundo componente rotado:
Estadísticos descriptivos según ámbito
Contraste de medias con ANOVA de un factor (RC2 ~ AMBITO)
Calcule un modelo de regresión que considere las siguientes variables:
Variable dependiente: RC2
Variables independientes:
Ambito
Edad