Distribución normal en R

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:

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