Taller R para Ciencias Sociales - Sesión 3

Flacso - México

Author

Elvira-Torres & Gomez-Santiago

Published

October 15, 2023

Sesión 3 - Comparaciones cuantitativas entre categías (Chi^2, T-test, ANOVA)

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

  1. Estadístico de prueba χ2\chi^2.
  2. Estadístico de prueba tt.
  3. Análisis de Varianza (ANOVAANOVA).

Cargamos la base de volatilidad electoral en las elecciones de Jalisco para el periodo entre 2006 y 2018 y se realizan las transformaciones necesarias a las variables de tipo categóricas -de numeric a factor-.

# Nueva base con variables de volatilidad nuevas.
# leer base panel
base <- read_excel("C:/Users/diego/Documents/FLACSO/Tesis Maestría/Jalisco municipios V.xlsx",4)
names(base)

# factor
base$alt <- as.factor(base$alt)
levels(base$alt) <- c("No", "Sí")

base$urbano <- as.factor(base$urbano)
levels(base$urbano) <- c("Interior", "Metropolitano")

base$altac <- as.factor(base$altac)

Prueba de independencia Chi-cuadrada

La prueba de independencia chi-cuadrada χ2\chi^2 sirve para probar independencia de la distribución de observaciones para una característica A en categorías por una carecterística B. De manera paralela a la prueba de proporción de éxitos, establece una hipótesis nula sobre una tasa de éxito de (A) repartida de manera aleatoria entre las categorías (B). Sin embargo, a diferencia de la prueba Z que compara una dstribución de probabilidad bajo la hipótesis nula frente a una distribución probable de la estimación dada su media y su desviación, la prueba del estadísitco χ2\chi^2 toma los valores acumulados de éxitos en los grupos y los contrasta con los valors esperados dada H0H_0.

El cálculo del estadístico χ2\chi^2 requiere de un cálculo de valores esperados de éxitos por categoría: VE=RtCtTtVE = \frac{R_t * C_t}{T_t}

donde:

RtR_t es el número total de filas.

CtC_t es el número total de columnas.

TtT_t es el número total de celdas en la tabla de contingencia.

A partir del Valor Esperado obtenido con las caracterísiticas de la tabla de contingencia se hace el cálculo referido de la contrastación entre valores esperados en las celdas con los valores realmente observados. Esto tiene forma en el cálculo del Residuo de Pearson (R), que mide el grado en que los recuentos difieren entre sí. R=ObservadoEsperadoEsperadoR = \frac{Observado-Esperado}{\sqrt{Esperado}}

El valor del estadístico χ2\chi^2 se compone de la agregación de los residuos de Pearson. La fórmula de la prueba es la siguiente: χ2=iricR2\chi^2 = \sum^{r}_{i}\sum^{c}_{i}R^2

La distribución del estadístico de prueba Chi^2 esta cargada hacia la izquierda, además de que la comparación de nuestro valor obtenido frente a un valor teórico depende de los grados de libertad. Entre mayor sea el valor del estadístico obtenido, mayor será la probabilidad de rechazar la hipótesis nula. A continuación se presenta una gráfica de una distribución χ2\chi^2 con df=1df=1, con la respectiva prueba del estadístico donde χ2=2.8\chi^2 = 2.8

A continuación se ponen a prueba las hipótesis de independencia entre la condición rural/urbano de los municipios y la prescencia de alternancia en las elecciones municipales, tomando el argumento de que la urbanización de los municipios es un catalizador para la alternancia. Las hipótesis son las siguientes:

H0 = La prescencia de alternancia en las elecciones locales es independiente de la condición de urbanización de los municipios.

H1 = La prescencia de alternancia en las elecciones locales no es independiente de la condición de urbanización de los municipios.

De esta forma, se crea una tabla de contingencia con ambas variables y se procede a ser una prueba de χ2\chi^2 con su respectiva coprobación de pvalorp-valor.

     
      Interior Metropolitano Sum
  No       208            13 221
  Sí       272             7 279
  Sum      480            20 500
# A tibble: 4 × 5
# Groups:   urbano [2]
  alt   urbano            n total  prop
  <fct> <fct>         <int> <int> <dbl>
1 No    Interior        208   480 0.433
2 No    Metropolitano    13    20 0.65 
3 Sí    Interior        272   480 0.567
4 Sí    Metropolitano     7    20 0.35 
#prueba de chi^2

chisq.test(table(base$alt,base$urbano))

    Pearson's Chi-squared test with Yates' continuity correction

data:  table(base$alt, base$urbano)
X-squared = 2.8288, df = 1, p-value = 0.09259
#comprobamos el p-valor

(pchisq(q = 2.8288, df = 1)*(-1))+1
[1] 0.09258752

La prueba χ2\chi^2 obtuvo un valor de 2.8, que en términos de probabilidad acumulada corresponde a un pvalorp-valor de .09 bajo una distribución con df=1df=1, por lo que rechazamos la hipótesis nula de independencia entre la característica rural/urbano de los municipios y la prescencia de alternancia política.

Boxplot y eveluación de valores continuos dentro de categorías

Para comparar la distribución de una variable numérica entre categorías se puede recurrir a un Gráfico de Cajas. El gráfico de cajas -y bigotes- permite observar la distribución de la variable continua a partir de su mediana y de sus cuartiles. En este sentido, las líneas de las cajas representan la mediana (Q2) y los cuartiles más cercanos al centro (Q1 y Q3). Los bigotes representan alguna relación del rango intercuartílico. Adicionalmente, es posible observar observaciones individuales que salen de la distribución central de los datos como puntos fuera de las cajas y bigotes.

A manera de ejemplo, se realiza un gráfico de cajas con la Volatilidad Electoral observada en los municipios de Jalisco de acuerdo a si hubo o no Alternancia como resultado de la elección. A continuación se presentan dos maneras alternativas de construir gráficos de cajas a partir de la librería car y tidiverse.

[1] "86.1919517760775" "84.0130651545614" "76.1958592225511" "67.6281741475885"
[5] "66.0463231860036"

Del gráfico anterior es posible concluir que la volatilidad electoral medida entre ambos grupos no es muy distinta entre sí. Destacan los outliersoutliers en el grupo de los municipios donde se hubo alternancia, que registran los valores más altos de volatilidad electoral.

Prueba de diferencia de medias

Para darle certeza estadística a la comparación de valores entre grupos, se utiliza una prueba de Diferencia de Medias o prueba de estadístico t. La función de este test es comparar la distribución de una variable continua en dos categorías asumiendo una distribución normal. El fundamento de esta prueba es comparar la distribución posible de la estimación de la diferencia crea un gráfico que representa la comparación entre una distribución bajo hipótesis nula (en azul) y una distribución de una diferecnia significativa hipotética (rojo).

La fórmula para la prueba del estadístico t se compone de la razón entre la estimación de la diferecnia de las medias entre los grupos sobre la varianza de dentro de los mismos. La fórmula es la siguiente: t=xˉ1xˉ2SEt = \frac{\bar{x}_1-\bar{x}_2}{SE}

donde el error estándar es: SE(xˉ1xˉ2)=(sx1n1)+(sx2n2)SE (\bar{x}_1-\bar{x}_2)= \sqrt{(\frac{s_{x1}}{n_{1}})+(\frac{s_{x2}}{n_{2}})}

El resultado es un valor de prueba t que se compara con un valor crítico de la distribución probable de la diferencia dada la hipótesis nula (diferencia entre grupos igual a cero). A continuación se presenta una prueba de diferencia de medias para los valores de l volatilidad electoral observada en los municipios de Jalisco categorizados por si tuvieron o no alternancia como resultado de la elección. Las hipótesis son las siguientes:

H0 (una cola) = El nivel de volatilidad electoral observado es igual o menor en las elecciones locales que tuvieron la prescencia de alternancia al de los municipios sin alternancia.

H0 (dos cola) = El nivel de volatilidad electoral observado es igual en las elecciones locales que tuvieron la prescencia de alternancia al de los municipios sin alternancia.

H1 = El nivel de volatilidad electoral observado es mayor en las elecciones locales que tuvieron la prescencia de alternancia.

#Test de diferencia de medias con t.test() de variables de salida continuas en dos categorias
#por defecto toma la diferencia Control (1) - Tratamiento (0)
#(ver el singo del estádistico de prueba)
#Entonces, Ha: Tratamiento > Control se convierte en Control - Tratamiento < 0
## lo que nos coloca en la cola izquierda de la distribución
#con datos de la misma base
t.test(vt ~ alt, data = base, alternative = "less") # una cola

    Welch Two Sample t-test

data:  vt by alt
t = -2.7257, df = 497.99, p-value = 0.003322
alternative hypothesis: true difference in means between group No and group Sí is less than 0
95 percent confidence interval:
      -Inf -1.233449
sample estimates:
mean in group No mean in group Sí 
        24.21349         27.33295 
t.test(vt ~ alt, data = base) # dos colas

    Welch Two Sample t-test

data:  vt by alt
t = -2.7257, df = 497.99, p-value = 0.006643
alternative hypothesis: true difference in means between group No and group Sí is not equal to 0
95 percent confidence interval:
 -5.3680547 -0.8708556
sample estimates:
mean in group No mean in group Sí 
        24.21349         27.33295 

De ambas pruebas (una y dos colas) se concluye que la diferencia entre los grupos es significativa. El estadístico de prueba t es idéntico en ambas pruebas, sin embargo el pvalorpvalor es distitno dado el valor de prueba alphaalpha definido de manera distinta para cada una de las pruebas. Bajo esta lógica, la estimación de las medias de cada grupo es la misma, y la estimación de los intervalos de confianza difiere en el mismo sentido.

Comparación de una variable continua en varias categorías

Un gráfico de violín sigue el mismo principio de un gráfico de cajas pero nos ofrece información adicional: la forma de la distribución a partir de un gráfico de densidad sobrepuesto a la distribución representada en las cajas. A continuación se realiza un gráfico de cajas y violines con la librería tidyverse.

La prueba ANOVA o Análisis de Varianza (Analysis of Variance) permite probar la existencia de diferencias significativas de una variable continua en grupos distintos bajo el supuesto de una distribución normal de la variable. Existen dos maneras de realizar una prueba ANOVA. La primera es a partir de una prueba de independencia por permutaciones, y la segunda a través de una prueba por estadístico FF -F test-.

La prueba por permutaciones realiza una serie de asignaciones aleatorias de la variable continua entre los grupos un número determinado de veces. Posterior al proceso de remuestreo, se toma la varianza de entre las medias de los grupos creados y se contrasta la probabilidad de observar un valor igual o mayor a la varianza registrada en los grupos originales. Esta probabilidad es registrada como el pvalorp-valor de la prueba.

A continuación se realiza una prueba ANOVA por permutaciones para probar diferencias significativas entre la volatilidad electoral observada en las elecciones municipales y los grupos de municipios categorizados por su distinta cantidad de alternancias acumuladas en el periodo. Las hipótesis son las siguientes:

H0 = No existe diferencia entre el nivel de volatilidad electoral observado en las elecciones locales entre los grupos de municipios clasificados por la cantidad de alternancias acumuladas registradas en el periodo.

H1 = Existe diferencia entre el nivel de volatilidad electoral observado en las elecciones locales entre los grupos de municipios clasificados por la cantidad de alternancias acumuladas registradas en el periodo.

#Permutaciones(ANOVA)

#ANOVA por permutaciones (lmPerm) para descartar independencia
anovai <- aovp(vt ~ altac, data = base)
[1] "Settings:  unique SS "
anovai
Call:
   aovp(formula = vt ~ altac, data = base)

Terms:
                   altac Residuals
Sum of Squares   7409.67  78711.51
Deg. of Freedom        4       495

Residual standard error: 12.61004
Estimated effects may be unbalanced
summary(anovai)
Component 1 :
             Df R Sum Sq R Mean Sq Iter  Pr(Prob)    
altac         4     7410   1852.42 5000 < 2.2e-16 ***
Residuals   495    78712    159.01                   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

De la prueba de 5000 iteraciones de la asignación aleatoria a grupos y su posterior comparación de varianza, se estima que la probabilidad de observar en las permutaciones una varianza entre grupos igual o superior a la varianza observada en la realidad es de 2.16e162.16e-16, lo que permite descartar la hipótesis nula de que la distribución de la variable continua es invariable a la categorización de los datos.

Prueba F (F-test)

La segunda forma de realizar una prueba ANOVA es a partir de un F-test. La ecuación que fundamenta al Análisis de Varianza se compone de la varianza obtenida a partir de la regresión de la variable numérica entre las categorías en términos de la razón entre la suma de cuadrados. La lógica fundamental de la prueba F es la razón de la varianza media entre los grupos sobre la varianza media dentro de los grupos. La suma de ambas varianzas es equivalente a la varianza total. Lo anterior se expresa de la siguiente manera: TSS=BSS+WSSTSS = BSS + WSS

donde: yiy_i es el valor de cada observación. yˉi\bar{y}_i es la media de los valores de las observaciones. y^i\hat{y}_i es la estimación para cada observación.

Cada término puede entenderse por separado como:

La suma total de cuadrados -Total Sum of Squares-: TSS=j=1n(xˉjxˉ)2TSS = \sum^{n}_{j=1}(\bar{x}_j-\bar{x})^2

La varianza entre los grupos -Between Sum of Squares- (suma de cuadrados de la regresión): SSB=j=1knj(xˉjxˉ)2SSB = \sum^{k}_{j=1} n_j (\bar{x}_j-\bar{x})^2

La varianza dentro de los grupos -Within Sum of Squares- (suma del cuadrado de los residuales): SSW=j=1ki=1n(xijx^j)2SSW = \sum^{k}_{j=1}\sum^{n}_{i=1}(x_{ij}-\hat{x}_j)^2

En este sentido, la prueba del estadístico F es la razón de la media de la variación entre los grupos sobre la media de la variación dentro de los grupos: F=BSS/df1WSS/df2F = \frac{BSS/df_1}{WSS/df_2}

donde: df1df_1 es el número de grupos menos 1 (k1)(k-1) df2df_2 es el número de observaciones menos el número de grupos (nk)(n-k)

El estadístico de prueba F obtenido de esta razón entre las medias de las varianzas se contrasta con un valor de una distribución F bajo hipótesis nula (donde la varianza entre los grupos es menor en relación a la varianza dentro de los mismos). De esta distribución F nula se toma la probabilidad de rechazar que la verdadera dsitribución del estadítico de prueba tenga la misma forma que la distribución bajo hipótesis nula. A continuación se presenta una gráfica para ejemplificar una prueba de estadístico F suponiendo k=5k=5 y n=500n=500 donde se rechaza la hipótesis nula.

A continuación se genera una simulación de una distribución de una variable continua entre grupos, donde sólo uno de los grupos presenta una distribución distinta. Se presenta también un gráfico de cajas para ilustrar las distribuciones de los datos simulados en las categorías y se realiza una prueba ANOVA sobre los resultados de un modelo de regresión simple para analizar la estimación de la diferencia entre los grupos.

#simulación
simulacion <- tibble(categorica = c(rep("01", 40),
                                    rep("02", 40),
                                    rep("03", 40),
                                    rep("04", 40)),
                     continua = c(rnorm(n = 40, mean = 15, sd = 3),
                                  rnorm(n = 40, mean = 15, sd = 3),
                                  rnorm(n = 40, mean = 15, sd = 3),
                                  rnorm(n = 40, mean = 25, sd = 5)))


simulacion %>% 
  ggplot(mapping = aes(categorica, continua)) +
  geom_boxplot()

modeloSimul <- lm(simulacion$continua ~ simulacion$categorica)

summary(modeloSimul)

Call:
lm(formula = simulacion$continua ~ simulacion$categorica)

Residuals:
     Min       1Q   Median       3Q      Max 
-22.3723  -2.2214  -0.1074   2.2470   8.4544 

Coefficients:
                        Estimate Std. Error t value Pr(>|t|)    
(Intercept)              14.5587     0.6196  23.498   <2e-16 ***
simulacion$categorica02   0.7843     0.8762   0.895    0.372    
simulacion$categorica03   1.3196     0.8762   1.506    0.134    
simulacion$categorica04  11.5990     0.8762  13.237   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.919 on 156 degrees of freedom
Multiple R-squared:  0.6003,    Adjusted R-squared:  0.5926 
F-statistic: 78.11 on 3 and 156 DF,  p-value: < 2.2e-16
anova(modeloSimul)
Analysis of Variance Table

Response: simulacion$continua
                       Df Sum Sq Mean Sq F value    Pr(>F)    
simulacion$categorica   3 3598.0 1199.34  78.106 < 2.2e-16 ***
Residuals             156 2395.4   15.36                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

De la simulación puede observarse como únicamente el grupo cuatro tiene una media distinta al resto de los grupos. Esto se ve reflejado en el resultado de la regresión, donde se estima una diferencia cercana al valor real de la diferencia entre las medias de los grupos. Esta diferencia es solo significativa para el grupo cuatro. A pesar de esto, la prueba ANOVA también permite rechazar la hipótesis nula, pero no da infoirmación respecto de la cuáles grupos son distintos de otros.

A continuación se presenta la prueba ANOVA con su respectivo modelo de regresión con la función anova() para la prueba de diferencia de valores de volatilidad electoral observada entre municipios con distintas cantidades de alternancias acumuladas en el periodo. Las hipótesis son las mismas que en el modelo de ANOVA por permutaciones:

H0 = No existe diferencia entre el nivel de volatilidad electoral observado en las elecciones locales entre los grupos de municipios clasificados por la cantidad de alternancias acumuladas registradas en el periodo.

H1 = Existe diferencia entre el nivel de volatilidad electoral observado en las elecciones locales entre los grupos de municipios clasificados por la cantidad de alternancias acumuladas registradas en el periodo.

#ANOVA por estadístico F para estimar valores
#ANOVA F-statistic
#Prueba de diferencia de medias de una variable continua en más de dos categorías
#F statistic es la razón entre la variación de la diferencia de medias entre grupos y la variación del error residual.
# Análisis de varianza (H0 = las diferencias entre grupos se deben a un reparto aleatorio de datos con una distribución normal entre las categorías)
modelo <- lm(base$vt ~ base$altac)
summary(modelo)

Call:
lm(formula = base$vt ~ base$altac)

Residuals:
    Min      1Q  Median      3Q     Max 
-26.302  -8.917  -1.339   6.777  55.696 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  23.3994     1.2486  18.741  < 2e-16 ***
base$altac1  -0.5095     1.5450  -0.330  0.74174    
base$altac2   4.9178     1.6416   2.996  0.00287 ** 
base$altac3  10.7789     2.0516   5.254 2.22e-07 ***
base$altac4   6.6621     5.2973   1.258  0.20911    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 12.61 on 495 degrees of freedom
Multiple R-squared:  0.08604,   Adjusted R-squared:  0.07865 
F-statistic: 11.65 on 4 and 495 DF,  p-value: 4.764e-09
anova(modelo)
Analysis of Variance Table

Response: base$vt
            Df Sum Sq Mean Sq F value    Pr(>F)    
base$altac   4   7410 1852.42  11.649 4.764e-09 ***
Residuals  495  78712  159.01                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Una forma alternartiva de realizar la prueba ANOVA es con el comando aov().

#Prueba de análisis de varianza (ANOVA) (comparación de más de dos muestras)
anova1 <- aov(vt ~ altac, data = base)
anova1
Call:
   aov(formula = vt ~ altac, data = base)

Terms:
                   altac Residuals
Sum of Squares   7409.67  78711.51
Deg. of Freedom        4       495

Residual standard error: 12.61004
Estimated effects may be unbalanced
summary(anova1)
             Df Sum Sq Mean Sq F value   Pr(>F)    
altac         4   7410    1852   11.65 4.76e-09 ***
Residuals   495  78712     159                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Esta forma alternativa no permite analizar las diferencias entre las estimaciones de cada una de las categorías para analizar cuáles son los grupos que presentan diferedncias significativas entre sí porque no parte de un modelo de regresión.