Prueba exacta de Fisher

De la teoría a la práctica

Autor/a

Antonio Chávez

Fecha de publicación

28 de octubre de 2025

GitHub


Reseña

La prueba exacta de Fisher es una prueba estadística utilizada frecuentemente para evaluar la asociación entre dos variables categóricas en una tabla de contingencia de \(2 \times 2\), especialmente cuando las frecuencias esperadas son bajas y no se pueden aplicar las aproximaciones de la prueba chi-cuadrada. A diferencia de la chi-cuadrada, que se basa en aproximaciones, la prueba exacta de Fisher calcula exactamente la probabilidad de observar una tabla de contingencia dada, bajo la hipótesis nula de independencia entre las variables.

La prueba se basa en la distribución hipergeométrica y calcula un \(valor\ p\) que se utiliza para determinar si se puede rechazar la hipótesis nula. A diferencia de otros tests, la prueba exacta de Fisher no depende de grandes muestras ni de la aproximación de la distribución, lo que la hace ideal para datos con pequeñas frecuencias1 2.

Teoría

El desarrollo de la teoría se basa en la sección 4.1 del texto Practical Nonparametric Statistics1

Datos

Se tienen \(N\) observaciones resumidas en una tabla de contingencia de \(2 \times 2\). Los totales de fila, \(r\) y \(N - r\), y de columna, \(c\) y \(N - c\), están determinados de antemano; por lo tanto, se consideran fijos.

\[ \begin{array}{c|cc|c} & \text{Columna 1} & \text{Columna 2} & \\ \hline \text{Fila 1} & x & r - x & r \\ \text{Fila 2} & c - x & N - r - c + x & N - r \\ \hline & c & N - c & N \\ \end{array} \]


Supuestos de la prueba

  1. Cada observación es clasificada exactamente en una celda de la tabla de contingencia.
  2. Los totales de Fila y Columna de la tabla de contingencia son fijos, no aleatorios.
  3. Las \(N\) observaciones provienen de una muestra aleatoria.

Estadístico de prueba

Se define el estadístico de prueba \(T\) como el número de observaciones en la celda de la Fila 1 y Columna 1. En consecuencia, la distribución exacta de \(T\) bajo la hipótesis nula \(H_0\) está dada por la distribución hipergeométrica:

\[ P(T = x) = \left\{ \begin{array}{ll} \dfrac{\dbinom{r}{x} \dbinom{N - r}{c - x}}{\dbinom{N}{c}}, & \text{si } x = 0, 1, \ldots, \min(r,\ c) \\[8pt] 0, & \text{en otro caso} \end{array} \right. \tag{1} \]

Juego de hipótesis

Se definen las siguientes probabilidades y valor observado:

  • Sea \(p_1\) la probabilidad de que una observación en la Fila 1 sea clasificada en la Columna 1.
  • Sea \(p_2\) la probabilidad de que una observación en la Fila 2 sea clasificada en la Columna 1.
  • Sea \(t\) el valor observado de \(T\).
Prueba bilateral

\[ \begin{aligned} H_0\!: &\quad p_1 = p_2 \\ H_1\!: &\quad p_1 \neq p_2 \end{aligned} \]

Se calcula el \(\text{valor }p\) usando la Ecuación (1). El \(\text{valor }p\) es el doble del menor entre \(P(T \leq t)\) y \(P(T \geq t)\). Se rechaza \(H_0\) al nivel de significancia \(\alpha\) si el \(\text{valor }p\) es menor o igual que \(\alpha\).

Prueba unilateral inferior

\[ \begin{aligned} H_0\!: &\quad p_1 \geq p_2 \\ H_1\!: &\quad p_1 < p_2 \end{aligned} \]

El \(\text{valor }p\) se calcula como \(P(T \leq t)\) usando la Ecuación (1). Se rechaza \(H_0\) a un nivel de significancia \(\alpha\) si \(P(T \leq t) \leq \alpha\).

Prueba unilateral superior

\[ \begin{aligned} H_0\!: &\quad p_1 \leq p_2 \\ H_1\!: &\quad p_1 > p_2 \end{aligned} \]

El \(\text{valor }p\) se calcula como \(P(T \geq t)\) usando la Ecuación (1). Se rechaza \(H_0\) a un nivel de significancia \(\alpha\) si \(P(T \geq t) \leq \alpha\).

Observación

Como se comentó, en la reseña, la prueba exacta de Fisher se puede usar para corroborar la asociación de dos variables aleatorias discretas; para este caso se hace la siguiente reformulación respecto a Filas y Columnas. Sean \(F\) y \(C\) variables aleatorias discretas que solo pueden tomar dos valores, es decir,

\[ \begin{aligned} F(\Omega_F) = \{f_1,\, f_2\}, &\quad \text{con}\; f_1 \neq f_2 \quad \text{y}\\ C(\Omega_C) = \{c_1,\, c_2\}, &\quad \text{con}\; c_1 \neq c_2 \end{aligned} \tag{2} \]

donde \(\Omega_F\) y \(\Omega_C\) son los espacios muestrales respectivos. Entonces, \(F\) modela los valores que se pueden tomar respecto a Fila y análogamente \(C\) respecto a Columna.
Como observación, si se toma la expresión (2) se obtiene:

\[ \begin{aligned} P(F = f_1)\; +\; & P(F = f_2) = 1 \quad \text{y}\\ P(C = c_1)\; +\; & P(C = c_2) = 1. \end{aligned} \tag{3} \]

Nota: no confundir los valores de tabla de contingencia \(x\), \(c-x\), \(r-x\) y \(N-r-c+x\) con aquellos que pueden tomar las variables aleatorias \(F\) y \(C\).

Bajo el supuesto de la hipótesis nula y las expresiones (2), (3) se demuestra que las variables aleatorias que definen los valores a tomar en Columna y Fila, son independientes. En consecuencia, la definición de probabilidades \(p_1\), \(p_2\) y el supuesto de \(H_0\) es una condición suficiente que prueba la independencia de las variables aleatorias \(F\) y \(C\).

Bajo la observación del párrafo anterior se puede reescribir el juego de hipótesis de la siguiente manera:

\[ \begin{aligned} H_0\!: &\quad F \; \text{y} \; C \; \text {son independientes} \\ H_1\!: &\quad F \; \text{y} \; C \; \text {no son independientes} \end{aligned} \]

Práctica

Se aborda la práctica mediante la resolución de un ejercicio con el software estadístico R; para una mejor experiencia se sugiere el uso del IDE RStudio.

Se deben cargar las bibliotecas necesarias. En caso de no tener instalados los paquetes, consultar aquí.

Código
library(tidyverse)
library(ggsci)
library(ggmosaic)


Ejercicio

De la sección 8.5 de Nonparametric Statistics: A Step‑by‑Step Approach3 se toma el siguiente problema.

Problema

Un pequeño centro médico aplicó una encuesta para determinar la actitud de disposición de su personal de enfermería para atender a pacientes. La encuesta consistió en una escala de Likert de 15 ítems, con dos opciones positivas, dos negativas y una opción neutral. El estudio se realizó con el propósito de comparar las percepciones entre hombres y mujeres.
Cada persona fue clasificada de acuerdo con una actitud total, determinada por la suma de los valores asignados a cada ítem de la encuesta. La actitud máxima positiva era de +33, y la actitud máxima negativa de −33.

Las Tablas Tabla 1 y Tabla 2 muestran el número de hombres y mujeres que presentaron actitudes positivas o negativas respecto a su preparación. Participaron cinco hombres y seis mujeres. Cuatro de los hombres obtuvieron resultados positivos en la encuesta, mientras que solo una de las mujeres tuvo un resultado positivo.

Tabla 1: Datos recabados del estudio.
Tabla 2: Tabla de contingencia.

Objetivo

Determinar si existe una diferencia en la actitud entre hombres y mujeres respecto a su preparación para atender a los pacientes.


Abordaje del problema

Los datos objeto de análisis se presentan en el siguiente tribble:

Código
data_source_exercise_1 <- tribble(
  ~Participante, ~Género,  ~Puntaje, ~Actitud,
  1,             "Hombre", "+30",    "+",
  2,             "Hombre", "+14",    "+",
  3,             "Hombre", "-21",    "−",
  4,             "Hombre", "+22",    "+",
  5,             "Hombre", "+9" ,    "+",
  6,             "Mujer",  "-22",    "−",
  7,             "Mujer",  "-13",    "−",
  8,             "Mujer",  "-20",    "−",
  9,             "Mujer",  "-7" ,    "−",
  10,            "Mujer",  "+19",    "+",
  11,            "Mujer",  "-31",    "−"
)


data_main_exercise_1 <- data_source_exercise_1 %>%
  select(Actitud, Género) %>%
  mutate(Actitud = str_replace_all(
    Actitud, 
    c("−" = "Negativa", "\\+" = "Positiva")
  ))
Gráfica

El gráfico de mosaicos Figura 1 proporciona un primer análisis exploratorio y una interpretación visual de la información.

Código
data_main_exercise_1 %>%
  ggplot() +
  geom_mosaic(
    aes(x = product(Actitud, Género), fill = Actitud), 
    show.legend = FALSE
  ) +
  scale_fill_npg() +
  labs(x = 'Género', y = 'Actitud') +
  theme_minimal() +
  theme(
    plot.title   = element_text(vjust = 3),
    axis.title.x = element_text(vjust = -5),
    axis.title.y = element_text(vjust = 7),
    plot.margin  = margin(t = 10, r = 10, b = 30, l = 30)
  )
Figura 1: Frecuencia combinada de Género y Actitud.
Planteamiento de las hipótesis nula y alternativa

La hipótesis nula establece que no hay diferencias entre hombres y mujeres en la encuesta de actitud que mide las percepciones sobre el programa de enseñanza para el cuidado de pacientes.
La hipótesis alternativa plantea que la proporción de hombres con actitudes positivas, \(p_{_H}\), distinta a la proporción de mujeres con actitudes positivas, \(p_{_M}\).

Las hipótesis se expresan de la siguiente manera:

\[ \begin{aligned} H_0\!: &\quad p_{_H} = p_{_M} \\ H_A\!: &\quad p_{_H} \neq p_{_M} \end{aligned} \]

En este ejemplo se usará \(\alpha = 0.05\), en otras palabras, existe un 95% de probabilidad de que cualquier diferencia estadística observada sea real y no producto del azar.

Código
data_main_exercise_1 %>%
  table() %>%
  fisher.test(alternative = "two.side")
Fisher's Exact Test for Count Data data: . p-value = 0.08009 alternative hypothesis: true odds ratio is not equal to 1 95 percent confidence interval: 0.0008617814 1.6630360702 sample estimates: odds ratio 0.07433475


Interpretación de los resultados

Con un \(\text{valor }p = 0.08\), no se rechaza la hipótesis nula, lo que sugiere que no existe una diferencia real entre las actitudes de hombres y mujeres respecto a su preparación para cuidar a los pacientes.
Sin embargo, se obtienen dos conclusiones importantes:

  1. En la Figura 1 se observa una clara tendencia hacia sentimientos positivos por parte de los hombres y sentimientos negativos por parte de las mujeres.
  2. La probabilidad fue baja, aunque no estadísticamente significativa.

Este tipo de estudio justificaría una investigación adicional con otras muestras para determinar si esta tendencia se manifiesta con mayor claridad.
El análisis proporciona cierta evidencia de que existe alguna diferencia, y si se hubiera analizado con un valor crítico más liberal, como \(\alpha = 0.10\), esta prueba estadística habría mostrado significancia.

Referencias

1.
Conover WJ. Practical Nonparametric Statistics. 3.ª ed. Wiley; 1999.
2.
Lydersen F S. Recommended tests for association in 2 × 2 tables. Statistics in Medicine. 2009;28(7):1159-1175. doi:10.1002/sim.3531
3.
Corder GW, Foreman DI. Nonparametric Statistics: A Step‑by‑Step Approach. 2.ª ed. John Wiley & Sons; 2014.
4.
Nowacki A. Chi‐square and Fisher’s exact tests. Cleveland Clinic Journal of Medicine. 2017;84(9 Suppl 2):e20-e25. doi:10.3949/ccjm.84.s2.04