Estadística para el Análisis Político | Lección 5

Marylia Cruz

Repaso de la sesión anterior

  • ¿Cuándo usamos el intervalo de confianza?

  • ¿De qué depende el calculo del intervalo de confianza ?

  • ¿Qué elementos necesitamos para calcula el intervalo de confianza para una media?

  • ¿Qué elementos necesitamos para calcula el intervalo de confianza para una proporción?

  • ¿Qué grafico usamos para mostrar el intervalo de confianza?

Repaso de intervalo de confianza

Repaso de intervalo de confianza

Repaso de intervalo de confianza

Revisar el cuestionario de ENDO 2018. Descarga la base de datos y realiza el siguiente ejercicio:

Calcula el intervalo de confianza al 95% de del nivel de confianza

  • para el promedio del ingreso liquido mensual de los docentes (P501_B).

  • para la proporción de docentes que preferie trabajar en un IE en su distrito de residencia. (P319)

  • para el promedio del ingreso liquido mensual de los docentes (P501_B) de acuerdo la respuesta de si prefere trabajar en el mismo distrito en el que reside (P319)

  • para el promedio del ingreso liquido mensual de los docentes (P501_B) de acuerdo si trabaja en una escuela de colegio público o privado (P07)

Resolución

Como ya sabemos, lo primero a realizar es cambiar el directorio y abrir la base de datos.

setwd("/Volumes/Macintosh HD - Datos/12 PUCP-Docencia/2023/POL278/Lecture5_files")
library(rio)
data=import("Base ENDO 2018.sav")
names(data)
[1] "CUESTIONARIO"    "cod_ie"          "Estrato"         "DEPTO"          
[5] "CODGEO"          "FACTOREXPANSION"
library(rio)
data=import("Base ENDO 2018.sav")

Se debe reemplazar el valor 1 por NA. Para ello generamos una nueva variables con el comando mutate.

library(dplyr)
data1=data%>%
  rename("sueldoliquido"=P501_B)%>%
  mutate(sueldoliquido=na_if(sueldoliquido, 1))

El comando summary se emplea para crear un resumen de una varible numérica.

summary(data1$aulas)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
     20    1000    1500    1531    1900    8700     406 

Resolución

Intervalo de confianza para una media

library(Rmisc)
intervalomedia=CI(data1$sueldoliquido,ci=0.95)
intervalomedia
upper  mean lower 
   NA    NA    NA 
intervalomedia=CI(na.omit(data1$sueldoliquido,ci=0.95))
intervalomedia
   upper     mean    lower 
1540.867 1530.699 1520.531 

Resolución

Intervalo de confianza para una media

Crear una tabla para el intervalo de confianza

library(lsr)
tabla=data1%>%summarise(Media = mean(sueldoliquido, na.rm=T),
            min = ciMean(sueldoliquido,conf = 0.95, na.rm=T)[1],
            max = ciMean(sueldoliquido,conf = 0.95, na.rm=T)[2]
            )
tabla
     Media      min      max
1 1530.699 1520.531 1540.867

Al 95% del nivel de confianza, el promedio deL INGRESO LIQUIDO por docente oscila entre 1759.732 y 1783.726 soles.

Resolución

Intervalo de confianza para una proporción

Dar formato a la variable factor.

data1$P319=as.factor(data1$P319)

Señalar las categorías de la variable.

data1$P319=factor(data1$P319,
                levels = levels(data1$P319),
                labels = c("Mismo distrito","Otro distrito"),
                ordered = F)

Realizar una tabla.

prop.table(table(data1$P319))

Mismo distrito  Otro distrito 
     0.6304766      0.3695234 

El 63% de docentes prefiere trabajar en el mismo distrito en el que reside.

Resolución

Intervalo de confianza para una proporción

x = 9512 #almacenamos en "x" la frecuencia de nuestro caso de éxito
n = 9512 + 5575 #almacenamos en "n" el total de casos
ic_prop = prop.test(x,n,conf.level = 0.95)
ic_prop #llamamos a ic_prop para visualizar los resultados

    1-sample proportions test with continuity correction

data:  x out of n, null probability 0.5
X-squared = 1026.9, df = 1, p-value < 2.2e-16
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
 0.6227090 0.6381774
sample estimates:
        p 
0.6304766 

A un 95% del nivel de confianza, entre el 62.27% y el 63.81% de los docentes de las IE prefiere trabajar en el mismo distrito en el que reside.

Resolución

Intervalo de confianza para la media según grupos

library(lsr)
ic_grupo=data1%>%
  group_by(P319) %>%
summarise(Media = mean(sueldoliquido, na.rm=T),
            min = ciMean(sueldoliquido,conf = 0.95, na.rm=T)[1],
            max = ciMean(sueldoliquido,conf = 0.95, na.rm=T)[2]
            )
ic_grupo
# A tibble: 2 × 4
  P319           Media  linf  lsup
  <fct>          <dbl> <dbl> <dbl>
1 Mismo distrito 1476. 1463. 1488.
2 Otro distrito  1625. 1608. 1642.

Resolución

library(ggplot2)
ggplot(ic_grupo, aes(x= P319, y =Media)) +
  geom_errorbar(aes(ymin=linf, ymax=lsup), width = 0.2)+
   geom_text(aes(label=paste(round(Media, 2))), size=4)+
  xlab("Preferencia de distrito") + ylab("Ingreso liquido en soles")+
  ylim(1400, 1700)

No hay traslape entre las barras de error,esto sugiere diferencias significativas.

Resolución

Dar formato a la variable factor.

data1$P07=as.factor(data1$P07)

Señalar las categorías de la variable.

data1$P07=factor(data1$P07,
                levels = levels(data1$P07),
                labels = c("Público","Privado"),
                ordered = F)

Intervalo de confianza para la media según grupos

library(lsr)
ic_grupo=data1%>%
  group_by(P07) %>%
summarise(Media = mean(sueldoliquido, na.rm=T),
            linf = ciMean(sueldoliquido,conf = 0.95, na.rm=T)[1],
            lsup = ciMean(sueldoliquido,conf = 0.95, na.rm=T)[2]
            )
ic_grupo
# A tibble: 2 × 4
  P07     Media  linf  lsup
  <fct>   <dbl> <dbl> <dbl>
1 Público 1875. 1865. 1886.
2 Privado 1116. 1104. 1128.

Resolución

library(ggplot2)
ggplot(ic_grupo, aes(x= P07, y =Media)) +
  geom_errorbar(aes(ymin=linf, ymax=lsup), width = 0.2)+
   geom_text(aes(label=paste(round(Media, 2))), size=4)+
  xlab("Preferencia de distrito") + ylab("Ingreso liquido en soles")+
  ylim(1400, 1700)

No hay traslape entre las barras de error,esto sugiere diferencias significativas.

Resolución

Si existe diferencia entre la preferencia de distrito según el tipo de colegio en el que trabaja.

library(dplyr)
tabla2 = data1 %>%
  dplyr::filter(P319 =="Mismo distrito" | P319 == "Otro distrito") %>%
  dplyr::group_by(P07) %>%
  dplyr::count(P319r=P319, name="N") %>%
  dplyr::mutate(total = sum(N), 
         Por = N / total * 100, 
         err = sqrt(Por*(100-Por)/N), 
         liminf = Por - 1.96*err, 
         limsup = Por + 1.96*err)
tabla2
tabla2_1 = tabla2[-c(2,4),]
# A tibble: 4 × 8
# Groups:   P07 [2]
  P07     P319r              N total   Por   err liminf limsup
  <fct>   <fct>          <int> <int> <dbl> <dbl>  <dbl>  <dbl>
1 Público Mismo distrito  4707  8225  57.2 0.721   55.8   58.6
2 Público Otro distrito   3518  8225  42.8 0.834   41.1   44.4
3 Privado Mismo distrito  4805  6862  70.0 0.661   68.7   71.3
4 Privado Otro distrito   2057  6862  30.0 1.01    28.0   32.0

Gráfico

Si existe diferencia entre la preferencia de distrito según el tipo de colegio en el que trabaja.

graf2 = ggplot(tabla2_1, aes(x=P07, y=Por))+
  geom_bar(stat="identity")+
  geom_errorbar(aes(ymin=liminf, ymax=limsup), width=0.2)+
  geom_text(aes(label=paste(round(Por, 1))), vjust=-1, size=4)+
  xlab("Tipo de colegio") + ylab("Porcentaje de preferencia de trabajar en el mismo distrito")+
  ylim(50, 100)
graf2