Taller R para Ciencias Sociales - Sesión 2

Flacso - México

Author

Elvira-Torres & Gomez-Santiago

Published

October 15, 2023

Sesión 2 - Estimaciones y pruebas de proporciones

En esta sesión se introducirá el siguiente contenido:

  1. Estimaciones puntuales.
  2. Intervalos de confianza.
  3. Prueba de proporción con umbral arbitrario (prueba T).
  4. Prueba de diferencia de proporciones (estadístico de prueba Z).

Cargamos librerías necesarias:

#library
library(tidyverse)
library(readxl)

Cargamos la base de datos al ambiente, aplicamos las coversiones de las variables categóricas y creamos las tablas de frecuencia como en la sesión anterior:

#data (cargar la base)

base <- read_excel("sesion1.xlsx",3)

#Convertrir variables a factor

base$concurrentep <- as.factor(base$concurrentep)
base$yux <- as.factor(base$yux)
base$año <- as.factor(base$año)

levels(base$yux) <- c("Coincidente", "Yuxtapuesto")
levels(base$concurrentep) <- c("No concurrente", "Concurrente")
levels(base$año) <- c("2018", "2021")

base <- base %>% 
  mutate(resultado=factor(yux,levels=c("Coincidente", "Yuxtapuesto"),labels=c("Ganó", "Perdió")))

# Filtramos los datos de la base para solo incluir el corte de yuxtaposición/coincidencia de 2021 y no el de 2018

base <- base %>% 
  filter(año==2021)

# Tablas de frecuencia 

tabla1 <- addmargins(table(base$concurrentep, base$resultado))

#tibble (tidyverse)

tablatidy <- base %>% 
  group_by(concurrentep,resultado) %>% 
  count() %>% 
  ungroup() %>% 
  group_by(concurrentep) %>% 
  mutate(total=sum(n),
         prop=n/sum(n))

#Filtramos

tablatidy2 <- tablatidy %>% 
  filter(resultado=="Ganó")

Para las estimaciones puntuales y por intervalos, trabajaremos a partir de la tablatidy2, la cual contiene toda la información necesaria para dichos desarrollos.

#llamamos el objeto
tablatidy2

Estimación puntual

La columna ‘tablatidy2$prop’, contiene las estimaciones puntuales de la proporción de Estados agrupados por su cualidad de tener calendarios electorales concurrentes o no concurrentes en las que el partido en el gobierno federal (MORENA) ganó las gubernaturas en alguno de los últimos procesos electorales.

La fórmula aplicada para obtener esa estimación se conoce como estimador. Para el caso de las estimaciones de proporciones, esta fórmula es equivalente al cálculo de la frecuencia relativa de de éxito en N casos:

\hat{\theta} = \frac{Casos \hspace{0.1cm} Favorables}{Casos \hspace{0.1cm} Posibles}

Donde a la variable de resultado, por ser dicotómica, se le asigna un valor de 1 a los casos que definamos como éxito -en este caso que el partido de gobierno federal (MORENA) haya ganado la entidad- y un valor de 0 a los casos que definamos como fracaso -elecciones estatales perdidas por MORENA-. De esa operacionalización, obtenemos un vector compuesto por unos y ceros, denotando la presencia/ausencia de una característica en las unidades observadas. Utilizamos la siguiente fórmula para calcular la estimación puntual de proporciones:

\hat{\theta_j} = \frac{1}{n_j} \cdot \sum_{i = 1}^{n_j} x_i

donde: - j = \{Concurrente, \hspace{0.1cm} No \hspace{0.1cm} concurrente\} - i = Obervación i-ésima dentro de cada categoria de j - n_j =Total de observaciones dentro de cada categoria j - x_i = Variable indicadora (ganó partido de gobierno = 1; perdio el partido de gobierno = 0)

La estimación puntual así obtenida es el punto de partida para realizar las estimaciones por intervalos y las pruebas de hipótesis necesarias para testear la teoría de la influencia de la coincidencia del calendario electoral sobre los resultados de elecciones locales.

Las distribuciones de probabilidad de los estadísticos de prueba

Partimos de una pregunta de investigación:

¿Los estados con elecciones locales concurrentes tienen mayor probabilidad de ser coincidentes? (El término ‘coincidencia’ hace referencia a que el partido de gobierno local y el partido de gobierno federal es el mismo. En este caso, aquellos estados donde ganó MORENA.

Las estimaciones puntuales ya generadas para ambos Estados concurrentes y no concurrentes podrían conducir a corroborar esta hipótesis, sin embargo, ¿son las estimaciones puntuales suficientes para poder responder a nuestra pregunta de investigación de manera satisfactoria?

No.

Para hacer inferencias, además de conocer la lógica de las estimaciones puntuales, también necesitamos estimar los intervalos de confianza. Estos nos permiten conocer que rango de valores corresponden a una probabilidad acumulada específica de la distribución de los valores de nuestra muestra para un nivel de confianza establecido. A continuación se muestra una curva correspondiente a la distribución de una variable aleatoria ficticia, con su correspondiente estimación puntual:

¿Comó nos aseguramos que los datos de nuestra muestra reflejan el verdadero valor del parámetro poblacional \theta?

Entre las herramientas más utilizadas en la estadística inferencial, están los intervalos de confianza, cuyo aporte está en garantizar la presencia del valor paramétrico entre dos límites de una distribución con un nivel de confianza pre-especificado de (1 - \alpha), siendo \alpha un nivel de significancia deseado.

Encontrar intervalos de confianza consiste en establecer un límite inferior y un límite superior en torno a la estimación puntual (obtenido normalmente de una muestra), agregando un margen de error, donde podemos justificar que se encuentra el parámetro poblacional.
En otras palabras, asumiendo que tenemos una proporción muestral \hat{p}, el intervalo de confianza consiste en construir el límite inferior (L_{i}) y el límite superior (L_{s}) entre los que se encuentra el parámetro poblacional \theta.

El intervalo de confianza garantiza formalmente que:

P(L_{i} \leq \theta \leq L_{s}) \geq (1 - \alpha) El cual se lee como:

Siendo \theta el parámetro poblacional, la probabilidad de que este se encuentre entre el límite inferior (L_{i}) y el límite superior (L_{s}) es mayor o igual al nivel de confianza (1-\alpha).

A continuación se muestra una gráfica de la distribución de una variable aleatoria ficticia (como puede ser el parámetro \theta) con el rango correspondiente al 95% central del total de los datos:

Matemáticamente lo que debemos hacer es bastante simple, tomar \hat{\theta} y restarle un valor para el L_{i} y luego tomar \hat{\theta} y sumarle un valor para el L_{s}. El valor que sumamos es igual al valor que restamos.

¿Que valor sumar y restar?
Este valor depende de tres cosas:

  • El tamaño de la muestra n.
  • La varianza \sigma^2.
  • El nivel de significancia \alpha.

Este valor se conoce como Margen de error (ME) y se obtiene de la siguiente manera:

ME = Z_{1-\alpha} \cdot \sqrt{\frac{\hat{\theta}\cdot(1-\hat{\theta})}{n}} donde \sqrt{\frac{\hat{\theta}\cdot(1-\hat{\theta})}{n}} es el Error Estandar (SE) y Z_{1-\alpha} el valor teórico de la distribución estándar Z correspondiente a nuestro nivel de significancia. Este debe corresponder a un nivel de confianza de (1-\alpha) dado, generalmente de 95% (1 - 0.05) = 0.95.

Recordemos que lo que nos permite hacer inferencias de las estimaciones obtenidas de una muestra hacia una población es el Teorema Central del Límite, la Regla Empírica y la Ley de los Grandes Números.

Test de proporciones

Nos interesa conocer si la proporción de éxitos de MORENA en las entidades que tuvieron elecciones estatales concurrentes con las elecciones federales ocurre en una proproción distinta a una asignación aleatoria. Para demostrar que el efecto de la simultaneadad del calendario electoral local tiene una relación con la proporción de victoria, o si por el contrario, podemos asumir que la concurrencia o no de las elecciones equivale a una asignación aleatoria entre ambos grupos. Para este propósito realizamos una prueba de porporción de éxitos con el estadístico Z.

Z=\frac{\hat{\theta}-\theta_{H0}}{\sqrt{\frac{\hat{\theta}(1-\hat{\theta)}}{n}}}

siendo \hat{\theta} la estimación puntual y \theta_{H0} = 0.5, es decir, la proporción correspondiente a una asignación aleatoria de éxitos en el grupo de las entidades con calendarios concurrentes.

En este sentido, si la relación fuera equivalente a una asignación aleatroia, las proporciones de victoria electoral en el grupo de entidades con calendario concurrente debería ser más o menos idénticas a 0.5. En caso contrario (y como esperamos según la expectativa teórica), el grupo de entidades con elecciones concurrentes debería tener una mayor proproción de victorias. A continuación se presenta una demostración de cómo se vería una asignación aleatoria de éxitos (victorias electorales).

[1] 0.3125

A continuación se presenta una forma más compleja de hacer la simulación de la asignación azaroza de éxitos en el grupo de las entidades concurrentes a partir de una función ‘map()’ que permite hacer procesos iterativos del paquete ‘PURR’, además, se justifica porque 0.5 corresponde a una asignación azaroza de éxitos, al ver cómo cambian las proporciones en función del tamaño de la muestra.

# Simulación Estebam

enes <- c(10, 15, 100, 1000, 100000)

simul <- enes %>% map(.x = ., .f = ~{
 
  e <- sample(x = c("Ganó", "Perdio"), size = .x, replace = T)
  e <- as_tibble(e)
 
  e %>%
    group_by(value) %>%
    count() %>%
    ungroup() %>%
    reframe(value = value,
            n = n,
            prop = n/sum(n),
            margen = qnorm(0.975)*sqrt(prop*(1-prop)/n),
            li = prop - margen,
            ls = prop + margen,
            tamanio = .x)
 
})

simul <- simul %>% bind_rows()

simul %>%
  ggplot(mapping = aes(x = value, y = prop)) +
  geom_col() +
  geom_errorbar(mapping = aes(ymin = li, ymax = ls)) +
  geom_text(mapping = aes(label = round(prop, 3), y = 0.9)) +
  facet_grid(~tamanio) +
   labs(title = "Proporción para distintos tamaños de muestra \n dada una asignación aleatoria de éxitos",
       x=NULL,
       y= "proporción de éxitos",
       caption="Fuente: elaboración propia.")+
  scale_y_continuous(n.breaks = 6)+
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5, size = 10),
        axis.title.x = element_text(size = 8))

Para esta prueba definimos como hipótesis nula \theta_{H0} que el grupo de entidades con calendario concurrente debería tener una proporción menor o igual de victorias electorales respecto de un valor arbitrario equivalente a una asignación azarosa de una variable binomial (i.e. >\hspace{0.1cm} 50\%) . Las hipótesis son las siguientes:

H0 = En el grupo de entidades concurrentes la proporción de éxitos es menor o igual una asignación asaroza de éxitos.

H1 = En el grupo de entidades concururrentes la proporción de éxitos es mayor a una asignación asaroza de éxitos.

# Establecemos umbral de azar

ph0 <- .5

# Estimamos nuestra media muestral de éxito para nuestro grupo de interés

p <- tablatidy2$prop[2]

#obtenemos el valor de prueba Z

z <- (p-ph0)/sqrt((p*(1-p))/tablatidy2$n[2])
z
[1] 1.75
#definimos valor de prueba Z 

zc <- qnorm(.95)

#probamos la hipótesis alternativa (p > pH0)

z>zc
[1] TRUE
#probamos el pvalor
(pnorm(z)*(-1))+1
[1] 0.04005916

De la prueba anterior se debe concluir que nuestro valor del estadístico Z obtenido con nuestros datos es superior al valor de prueba crítico, lo que se traduce en que la probabilidad de éxito electoral del partido de gobierno federal (MORENA) en las entidades con calendarios concurrentes es superior a un umbral teórico correspondiente una asignación azarosa de éxitos (0.5 para cada grupo).

Observamos que nuestra distribución inferida a partir de nuestros datos si guarda diferencia con la distribución teórica dada H_0. Así, podemos afirmar que dados nuestros datos, no tenemos evidencia para aceptar que la distribución probable de nuestra estimación de la proporción de éxitos de MORENA en las entidades con calendario concurrente es menor o igual a la proporción esperada de una asignación aleatoria de éxitos entre grupos.
El problema inherente de esta prueba está en la arbitrariedad de nuestro parámetro de comparación definido como p_H0=0.5. ¿Podemos suponer que algún partido ganaría el 50% de las entidades en las que compite aún en el escenario más favorable?, y aunque este fuera el caso, ¿Cómo definimos sobre que nivel de victorias debemos testear el efecto del calendario electoral? La solución es pensar en un umbral empírico, no teórico.

Prueba de diferencia de proporciones

Una alternativa es hacer una comparación entre la proporción de éxito en los dos grupos de entidades (aquellos con elecciones locales concurrente y aquellos con elecciones no concurrentes):

Escenario: queremos estimar el efecto electoral de la simultanedad de las elecciones locales con el calendario electoral federal (elecciones federales) para argumentar que MORENA ganó más proporción de gubernaturas en los estados con calendarios concurrentes que en los estados con calendarios no concurrentes, para así explorar el efecto de las candidaturas federales sobre las victorias electorales de MORENA.
Si hacemos una prueba de una cola:

H0 = En el grupo de entidades no concurrentes la proporción de éxitos es mayor o igual que en el grupo de concurrentes

H1 = En el grupo de entidades no concururrentes la proporción de éxitos es menor que en el grupo de concurrentes

Bajo la hipótesis nula, la distribución de probabilidad de la diferencia de éxitos para los estados con elecciones concurrentes respecto de los no concurrentes (donde esta equivale a cero o es mayor en el grupo de no concurrentes) se vería así:

El valor crítico representa la posibilidad de que el valor real de la diferencia entre las proporciones de éxito entre los grupos sea negativo (es decir, que siendo mayor la proporción de éxitos en los estados concurrentes sobre los no concurrentes, la diferencia de la resta de proporciones sería menor a cero) bajo un nivel de confianza dado, lo que en este caso significa que efectivamente, MORENA tiene menor proporción de éxito en los estados con calendarios no concurrentes que en las entidades concurrentes.

Para probar en qué lugar de la distribución de probabilidad bajo la hipótesis nula (no diferencia o diferencia positiva) se encuentra la diferencia estimada en nuestros datos (estadístico de prueba Z), además de la probabilidad de observar esa diferencia dada la hipótesis nula (p-valor), se hace un test de diferencia de proporciones comparando un valor Z con un valor crítico de prueba de una cola (\alpha):

Z=\frac{(p_1-p_2)}{\sqrt{\frac{p(1-p)}{n_1}+\frac{p(1-p)}{n_2}}}

En este caso, tomamos como p_1 al grupo de los No Concurrentes y como p_2 al grupo de los Concurrentes.

#proptest
#Test de diferencia de proporción de éxito entre grupos de dos categorias con prop.test()
#x = c(núm. de éxitos en grupo 1, núm. de éxitos en grupo 2),
#n = c(tamaño de grupo 1, tamaño de grupo 2)
#correct=F para hacer una corrección de variable tipo integer
#Por defecto porp.test hace una prueba de dos colas.

#Comparamos grupo 1 contra grupo 2 de una categoría, probando grupo 1 tiene menor proporción de éxitos respecto al grupo 2
prop.test(x = c(6, 11), n = c(17, 15), correct = F,alternative = c("less")) #diferencia entre grupos de categorias, 1 menor a 2

    2-sample test for equality of proportions without continuity correction

data:  c(6, 11) out of c(17, 15)
X-squared = 4.6303, df = 1, p-value = 0.01571
alternative hypothesis: less
95 percent confidence interval:
 -1.000000 -0.112777
sample estimates:
   prop 1    prop 2 
0.3529412 0.7333333 
# Forma alternativa con notación matricial

prop.test(x = c(tablatidy2$n[1], tablatidy2$n[2]), n = c(tablatidy2$total[1], tablatidy2$total[2]), correct = F,alternative = c("less"),conf.level = .90)

    2-sample test for equality of proportions without continuity correction

data:  c(tablatidy2$n[1], tablatidy2$n[2]) out of c(tablatidy2$total[1], tablatidy2$total[2])
X-squared = 4.6303, df = 1, p-value = 0.01571
alternative hypothesis: less
90 percent confidence interval:
 -1.0000000 -0.1718857
sample estimates:
   prop 1    prop 2 
0.3529412 0.7333333 
#comprobamos que el estadístico X^2 sea similar al Z

addmargins(table(base$concurrentep, base$resultado))
                
                 Ganó Perdió Sum
  No concurrente    6     11  17
  Concurrente      11      4  15
  Sum              17     15  32
z <- (.35-.73)/sqrt(((.53*.47)/15)+((.53*.47)/17))
z
[1] -2.149274
z< -1.64
[1] TRUE
#pvalor
(pnorm(z)*(-1))+1
[1] 0.9841937

Dado el valor estimado de nuestro estadístico de prueba estandarizado a una cola para un nivel de confianza de 95% (Z\approx 1.64), concluimos que la estimación se encuentra en la cola izquierda de la distribución teórica de la diferencia según H_0 (no diferencia o diferencia positiva), que corresponde a la zona de rechazo de H_0 Gráficamente nuestra prueba de hipótesis es la siguiente:

Probamos con una prueba de diferencia de proporciones a dos colas donde:

H0 = la diferencia de proporciones entre grupos es igual a cero

#Comparamos grupo 1 contra grupo 2 de una categoría (prueba de dos colas)

prop.test(x = c(6, 11), n = c(17,15), correct = F) #diferencia entre grupos de categorias, concurrente tiene distita proporción de éxitos que no concurrente, sin importar la dirección.

    2-sample test for equality of proportions without continuity correction

data:  c(6, 11) out of c(17, 15)
X-squared = 4.6303, df = 1, p-value = 0.03141
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.69927525 -0.06150906
sample estimates:
   prop 1    prop 2 
0.3529412 0.7333333 
# Otras formas alternativas de hacer a partir de valores en una tabla
prop.test(x = c(tabla1[1], tabla1[2]), n = c(tabla1[7], tabla1[8]), correct = F)
p <- prop.test(x = c(tablatidy2$n[1], tablatidy2$n[2]), n = c(tablatidy2$total[1], tablatidy2$total[2]), correct = F)

Dado el valor del estadístico de prueba (Z<-1.96) nuevamente colocamos nuestra estimación en la cola izquierda de la distribución bajo H0 (zona de rechazo).

En ambos tipos de prueba, el p_valor representa la probabilidad acumulada de nuestra estimación dada la distribución de la hipótesis nula. Esto quiere decir que entre más pequeña esta probabilidad, tenemos menor evidencia para argumentar que la distribución de la población se asemeja a los valores de la distribución bajo hipótesis nula.

Por último, construimos los intervalos de confianza para nuestra estimación y los graficamos:

tablaGrafico <- tibble(prueba = "Diferencia de proporciones",
                       estimadorPuntual = p$estimate[1] - p$estimate[2],
                       li = p$conf.int[1],
                       ls = p$conf.int[2])
tablaGrafico
# A tibble: 1 × 4
  prueba                     estimadorPuntual     li      ls
  <chr>                                 <dbl>  <dbl>   <dbl>
1 Diferencia de proporciones           -0.380 -0.699 -0.0615
tablaGrafico %>% 
  ggplot(mapping = aes(x = prueba, y = estimadorPuntual)) +
  geom_point(color = "blue", size = 2) +
  geom_errorbar(mapping = aes(ymin = li, ymax = ls)) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "red") +
  geom_text(mapping = aes(label = str_c("Estimador Puntual =", 
                                        round(estimadorPuntual,2), 
                                        sep = " "), 
                          x = 0.7, 
                          y = estimadorPuntual), size = 3) +
  scale_y_continuous(limits = c(-1, 0.1), n.breaks = 10)

Nuevamente, visualizamos como el intervalo construido no contiene al cero, por lo que confirmamos al 95% de confianza nuestra diferencia entre la proporción de éxitos de ambos grupos es significativa.