1. Carga de datos
En esta práctica vamos a trabajar con los datos de la encuesta de Género 2012 del Instituto de Opinión Pública de la PUCP (IOP). La data se puede encontrar en Google Classromm: Curva Normal.
library(foreign)
genero12 <- read.spss("IOP_1212_01_D.sav", to.data.frame = TRUE,
use.value.labels = TRUE)
Exploración de data
Vamos a explorar la data con los comandos “names” y “head”:
names(genero12)
## [1] "NRO" "SEXO" "GEDAD" "EDAD" "P1" "P2" "P3A"
## [8] "P3B" "P3C" "P3D" "P4A" "P4B" "P4C" "P5"
## [15] "P6A" "P6B" "P6C" "P6D" "P6E" "P7A" "P7B"
## [22] "P8A" "P8B" "P9A" "P9B" "P9C" "P9D" "P9E"
## [29] "P9F" "P10" "P10A" "P11" "P12" "P13A" "P13B"
## [36] "P14" "P15" "P16" "P17" "P18A" "P18B" "P18C"
## [43] "P18D" "P19A" "P19B" "P20" "P21" "P22" "P22A"
## [50] "P23" "P24" "P25" "P26" "P27" "P28A" "P28B"
## [57] "P29" "P30" "P31A" "P31B" "P31C" "P31D" "P31E"
## [64] "P31F" "P32" "P33A" "P33B" "P33C" "P33D" "P34"
## [71] "P35A" "P35B" "P35C" "P35D" "P35E" "P35F" "P35G"
## [78] "P36" "P37" "P38" "P39" "P40" "P41" "P42"
## [85] "P43" "P44" "P44A" "P44B" "P44C" "P45A" "P45B"
## [92] "P46A" "P46B" "P47" "P48" "P48A" "P48B" "P48C"
## [99] "P49" "P50A" "P50B" "P50C" "P50D" "P50E" "P50F"
## [106] "P50G" "P50H" "P51A" "P51B" "P51C" "P51D" "P51E"
## [113] "P51F" "P51G" "P51H" "P51I" "P51J" "P51K" "P52A"
## [120] "P52B" "P52C" "P52D" "P52E" "P52F" "P52G" "P53A"
## [127] "P53B" "P53C" "P53D" "P53E" "P53F" "P53G" "P54A"
## [134] "P54B" "P54C" "P54D" "P54E" "P55A" "P55B" "P55C"
## [141] "P55D" "P55E" "P55F" "P56" "P57" "P58" "P59A"
## [148] "P59B" "P59C" "P59D" "P59E" "P59F" "P59G" "P59H"
## [155] "P59I" "P60A" "P60B" "P60C" "P60D" "P60E" "P60F"
## [162] "P61A" "P61B" "P61C" "P61D" "P61E" "P62A" "P62B"
## [169] "P62C" "P63A" "P63B" "P63C" "P64A" "P64B" "P64C"
## [176] "P64D" "P64E" "P64F" "P64G" "P64H" "P65A" "P65B"
## [183] "P65C" "P65D" "P65E" "P65F" "P65G" "P65H" "P66A"
## [190] "P66B" "P67A" "P67B" "P67C" "P68" "P69" "P70"
## [197] "P71" "P72" "P72A" "P73" "P73A" "P74" "P75"
## [204] "P76" "P77" "P78" "P79" "P80" "P81A" "P81B"
## [211] "P81C" "P81D" "P81E" "P82" "P87" "P89" "P90"
## [218] "P92" "Región" "Ambito" "DOMINIO" "NSEGrup" "sumaNSE" "NSE"
head(genero12)[111:117]
## P51D P51E P51F P51G
## 1 En desacuerdo En desacuerdo En desacuerdo En desacuerdo
## 2 De acuerdo De acuerdo En desacuerdo De acuerdo
## 3 En desacuerdo De acuerdo De acuerdo De acuerdo
## 4 En desacuerdo En desacuerdo En desacuerdo En desacuerdo
## 5 Muy en desacuerdo De acuerdo En desacuerdo En desacuerdo
## 6 Muy en desacuerdo Muy en desacuerdo Muy en desacuerdo Muy en desacuerdo
## P51H P51I P51J
## 1 En desacuerdo En desacuerdo En desacuerdo
## 2 En desacuerdo En desacuerdo En desacuerdo
## 3 De acuerdo De acuerdo En desacuerdo
## 4 De acuerdo De acuerdo En desacuerdo
## 5 En desacuerdo En desacuerdo Muy en desacuerdo
## 6 En desacuerdo En desacuerdo Muy en desacuerdo
2. Construcción del Índice de Homofobia
Para construir el índice de Homofobia, vamos a tomar en cuenta lo ítems de la pregunta 51 del cuestionario, la cual evalúa algunas actitudes hacia los homosexuales. Para construir el índice, tenemos que seguir los siguientes pasos:
Primero, inspeccionamos cómo están codificadas las variables con el comando “table”
Segundo, recodificamos las variables de modo que los valores numéricos más altos reflejen más homofobia
Tercero, promediamos las variables para construir el índice de homofobia
Inspección
Vamos a inspeccionar las variables con el comando “table”. Debemos tener mucho cuidado que durante el proceso de construcción del índice ningún valor se pierda.
table(genero12$P51D)
##
## Muy de acuerdo De acuerdo En desacuerdo Muy en desacuerdo
## 47 284 661 148
## NS / NR
## 63
table(genero12$P51E)
##
## Muy de acuerdo De acuerdo En desacuerdo Muy en desacuerdo
## 69 488 499 102
## NS / NR
## 45
table(genero12$P51F)
##
## Muy de acuerdo De acuerdo En desacuerdo Muy en desacuerdo
## 62 457 533 109
## NS / NR
## 42
table(genero12$P51G)
##
## Muy de acuerdo De acuerdo En desacuerdo Muy en desacuerdo
## 105 562 373 86
## NS / NR
## 77
table(genero12$P51H)
##
## Muy de acuerdo De acuerdo En desacuerdo Muy en desacuerdo
## 140 644 268 85
## NS / NR
## 66
table(genero12$P51I)
##
## Muy de acuerdo De acuerdo En desacuerdo Muy en desacuerdo
## 139 592 318 82
## NS / NR
## 72
table(genero12$P51J)
##
## Muy de acuerdo De acuerdo En desacuerdo Muy en desacuerdo
## 53 245 627 130
## NS / NR
## 148
Recodificación
Antes de la recodificación, transformamos las variables a vectores numéricos para que sea más fácil la recodificación:
P51D.n <- as.numeric(genero12$P51D)
P51E.n <- as.numeric(genero12$P51E)
P51F.n <- as.numeric(genero12$P51F)
P51G.n <- as.numeric(genero12$P51G)
P51H.n <- as.numeric(genero12$P51H)
P51I.n <- as.numeric(genero12$P51I)
P51J.n <- as.numeric(genero12$P51J)
Comprobamos cómo ha quedado la tranformación de las variables con el comando “table”. Vemos que la categoría “NS/NR” ha quedado con el valor numérico 5, así que es este el valor que debe ser recodificado como “NA”.
table(P51D.n)
## P51D.n
## 1 2 3 4 5
## 47 284 661 148 63
table(P51E.n)
## P51E.n
## 1 2 3 4 5
## 69 488 499 102 45
table(P51F.n)
## P51F.n
## 1 2 3 4 5
## 62 457 533 109 42
table(P51G.n)
## P51G.n
## 1 2 3 4 5
## 105 562 373 86 77
table(P51H.n)
## P51H.n
## 1 2 3 4 5
## 140 644 268 85 66
table(P51I.n)
## P51I.n
## 1 2 3 4 5
## 139 592 318 82 72
table(P51J.n)
## P51J.n
## 1 2 3 4 5
## 53 245 627 130 148
Finalmente, realizamos una recodificación con el paquete “car”:
library(car)
P51D.r <- car::recode(P51D.n, '1 = 4; 2 = 3; 3 = 2; 4 = 1; 5 = NA')
P51E.r <- car::recode(P51E.n, '1 = 4; 2 = 3; 3 = 2; 4 = 1; 5 = NA')
P51F.r <- car::recode(P51F.n, '1 = 4; 2 = 3; 3 = 2; 4 = 1; 5 = NA')
P51G.r <- car::recode(P51G.n, '1 = 4; 2 = 3; 3 = 2; 4 = 1; 5 = NA')
P51H.r <- car::recode(P51H.n, '1 = 4; 2 = 3; 3 = 2; 4 = 1; 5 = NA')
P51I.r <- car::recode(P51I.n, '1 = 4; 2 = 3; 3 = 2; 4 = 1; 5 = NA')
P51J.r <- car::recode(P51J.n, '1 = 4; 2 = 3; 3 = 2; 4 = 1; 5 = NA')
Construcción del Índice de Homofobia
genero12$i.homofob <- (P51D.r + P51E.r + P51F.r + P51G.r + P51H.r + P51I.r + P51J.r)/7
3. Inspección gráfica del índice de homofobia
hist(genero12$i.homofob, main="Histograma del Índice de Homofobia", ylab ="Frecuencia",
xlab="Índice de Homofobia")
Estadísticos descriptivos del Índice de Homofobia
library(summarytools)
descr(genero12$i.homofob)
## Descriptive Statistics
## genero12$i.homofob
## N: 1203
##
## i.homofob
## ----------------- -----------
## Mean 2.46
## Std.Dev 0.56
## Min 1.00
## Q1 2.14
## Median 2.43
## Q3 2.86
## Max 4.00
## MAD 0.42
## IQR 0.71
## CV 0.23
## Skewness -0.15
## SE.Skewness 0.08
## Kurtosis 1.06
## N.Valid 951.00
## Pct.Valid 79.05
4. Ejercicios
¿Cuál es la probabilidad que una persona elegida al azar tenga un puntaje de homofobia por encima de 3 puntos ?
Antes de responder las preguntas, debemos grabar la media y desviación estándar del índice de homofobia:
media <- mean(na.omit(genero12$i.homofob))
ds <- sd(na.omit(genero12$i.homofob))
1 - pnorm(q = 3, mean = media, sd = ds)
## [1] 0.1687394
¿Cuál es la probabilidad que una persona elegida al azar tenga un puntaje de homofobia por debajo de 2 puntos ?
pnorm(2, mean = media, sd = ds)
## [1] 0.2078245
¿Cuál es el puntaje en donde el 90% está por debajo?
qnorm(.90, media, ds)
## [1] 3.181819