"Un enfoque utilizado por la función fisher.test en R es calcular el valor p sumando las probabilidades de todas las tablas con probabilidades menores o igual a la de la tabla observada".
Pero no entiendo de dónde salen las otras tablas y probabilidades.
Condiciones de pesca en ambos márgenes. Las otras tablas son todas con los mismos márgenes. Las probabilidades provienen directamente de la distribución hipergeométrica.
(Ambos datos ya están en el artículo que señalas, por cierto).
La ayuda de la función de R que mencionas menciona un algoritmo para obtener las otras tablas, pero en el caso de 2x2 es bastante sencillo, porque corresponden a llevar una celda de la tabla a través del rango de sus posibles valores (el rango de valores que toma la variable aleatoria en una distribución hipergeométrica). Este es un ejemplo (el eje Y está escalado en logaritmos, pero los valores del eje son probabilidades reales):
Los números rojos representan los rangos de las probabilidades de menor a mayor. Este es el orden en el que se tienen en cuenta al calcular un valor p de dos colas hasta llegar a la tabla observada.
"Un enfoque computacional sencillo y algo mejor se basa en una función gamma o función log-gamma, pero los métodos para el cálculo preciso de probabilidades hipergeométricas y binomiales sigue siendo un área de investigación activa".
Esto se refiere simplemente al cálculo de una probabilidad hipergeométrica. Cuando los márgenes toman valores grandes (o incluso medios), el cálculo exacto puede ser problemático (los cálculos implican $\binom{n}{r}$ términos que pueden llegar a ser bastante grandes). Es habitual trabajar en la escala logarítmica con funciones que devuelven el logaritmo de la función gamma de sus argumentos.
R, por ejemplo, proporciona las funciones lgamma
y lfactorial
para tales fines.
exp(lfactorial(5))
[1] 120
> exp(lgamma(6))
[1] 120
Los métodos rápidos para las pruebas exactas suelen basarse en el enfoque de Mehta y Patel (variaciones del algoritmo de red (que se menciona, de nuevo, en el enlace que has dado, aunque había más trabajos de los que allí se enumeran). Ha habido desarrollos más recientes en esta área, pero no estoy especialmente familiarizado con ellos; si usted sabe cómo buscar la investigación académica (que en estos días en su mayoría significa "puede googlear eficientemente") el trabajo más reciente no será difícil de encontrar.
Si miras las referencias en la parte inferior de la ayuda de R fisher.test
En la página web de la Comisión, se incluyen referencias a Mehta y Patel y también al documento más reciente de Clarkson, Fan y Joe, que es más eficaz.
Página 17 de "Exact Inference for Categorical Data", 1997 por Mehta y Patel (en el sitio web de Cytel, aquí ) menciona de pasada enfoques alternativos (con referencias).
Hay documentos como
Requena, F., & N.M. Ciudad, (2006)
"Una importante mejora del Algoritmo de Red para la Prueba Exacta de Fisher en tablas de contingencia de 2 × c".
Estadística computacional y análisis de datos , 51 , 490-498.
que podría ser de alguna utilidad.