4 votos

¿Qué métodos puedo utilizar para calcular la prueba exacta de Fisher de dos caras?

Estoy implementando un código para calcular la prueba exacta de Fisher de dos caras de las tablas de contingencia 2x2 en C. He leído que la implementación de R no es la forma más eficiente de calcular el valor p para una prueba de dos caras. Mi primera pregunta es, ¿cómo se implementa esto? Wikipedia dice

"An approach used by the fisher.test function in R is to compute the p-value
 by summing the probabilities for all tables with probabilities less than or
 equal to that of the observed table."

Pero no entiendo de dónde salen las otras tablas y probabilidades.

Además, ¿cómo podría implementar esta función de una manera más eficaz desde el punto de vista computacional, suponiendo que la declaración

"A simple, somewhat better computational approach relies on a gamma function
 or log-gamma function, but methods for accurate computation of
 hypergeometric and binomial probabilities remains an active research area."

¿es correcto?

6voto

AdamSane Puntos 1825

"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):

enter image description here

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.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X