TEST FISHER

Test de independencia de Fisher Vicente Arias, Roberto Moreno, Cristopher Salazar, Estudiantes de Ingeniería en Electric

Views 159 Downloads 9 File size 442KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Test de independencia de Fisher Vicente Arias, Roberto Moreno, Cristopher Salazar, Estudiantes de Ingeniería en Electricidad U .T.E.Q F.C.I

[email protected]  Abstract—. The purpose of this document is to present the function to perform the fisher independence test and to test its usefulness in some examples. Index Terms—. Test de independencia de Fisher, Test Exacto de Fisher, R project. I.

INTRODUCCIÓN

L

a prueba de Fisher se utiliza con tablas de contingencia 2x2 y es la más aconsejable cuando exista una o más celdas con frecuencias esperadas menores que 5. La prueba se basa en la determinación, a partir de una distribución hipergeometrica, de la probabilidad de obtener las frecuencias observadas cuando los totales de filas y columnas son constantes, teniendo como hipótesis nula que las variables son independientes. Esta prueba se comprobó con distintos ejemplos realizados mediante la función incorporada en R. II. OBJETIVO  

Determinar la función para realizar la prueba de independencia de Fisher y sus parámetros. Comprobar el funcionamiento de la prueba por medio de ejemplos. III. DESCRIPCIÓN METODOLÓGICA

totales >1000 los resultados de los test aproximados son muy parecidos. [1] Es importante tener en cuenta que el test de Fisher está diseñado para situaciones en las que las frecuencias marginales de filas y columnas (los totales de cada fila y columna) son fijas, se conocen de antemano. [1] Si esta condición no se satisface el test de Fisher deja de ser exacto, por lo general pasando a ser más conservativo. [1] B. Hipótesis Ho: Las variables son independientes por lo que una variable no varía entre los distintos niveles de la otra variable. [1] Ha: Las variables son dependientes, una variable varía entre los distintos niveles de la otra variable. [1] C. Condiciones del test Independencia: las observaciones de la muestra deben ser independientes unas de otras. [1]   

Muestreo aleatorio. Tamaño de la muestra < 10% población. Cada observación contribuye únicamente a uno de los niveles.

Las frecuencias marginales de columnas y filas tienen que ser fijas. Si esta condición no se cumple, el test de Fisher deja de ser exacto. [1]

A. Test de independencia de Fisher La prueba de Fisher es el test exacto utilizado cuando se quiere estudiar si existe asociación entre dos variables cualitativas, es decir, si las proporciones de una variable son diferentes dependiendo del valor que adquiera la otra variable. En la gran mayoría de casos, el test de Fisher se aplica para comparar dos variables categóricas con dos niveles cada una (tabla 2x2). Es posible utilizarlo con tablas 2xK niveles pero los requerimientos de cálculo son altos. [1] El test de Fisher es más preciso que sus equivalentes aproximados (test chi-square de independencia o G–test de independencia) cuando el número de eventos esperado por nivel es pequeño. Se recomienda utilizarlo siempre que sea posible (tiempo de computación) aunque para observaciones

D. Cálculo del p-value El test exacto de Fisher se basa en la distribución hipergeométrica, que permite calcular la probabilidad exacta de obtener una determinada distribución de eventos dentro de una tabla. Supóngase la siguiente tabla de contingencia: [1] ..

nivel-A1

nivel-A2

total

nivel-B1

a

b

a+b

nivel-B2

c

d

c+d

total

a+c

b+d

n= a+b+c+d

Si las frecuencias marginales son fijas (conocidas), sabiendo el valor de una celda se puede calcular el valor de las demás. La probabilidad de que a adquiera un determinado valor (dentro de las limitaciones impuestas por las frecuencias marginales) se corresponde con la fórmula de la distribución hipergeométrica: [1]

El test de Fisher calcula las probabilidades de todas las posibles tablas y suma las de aquellas tablas que tengan probabilidades menores o iguales que la tabla observada, generando así el p-value de dos colas. [1] E. Test de Fisher en R En R, puede utilizar la función fisher.test para realizar la prueba exacta de Fisher: [2] fisher.test(x, y = NULL, workspace = 200000, hybrid = FALSE, control = list(), or = 1, alternative = "two.sided", conf.int = TRUE, conf.level = 0.95, simulate.p.value = FALSE, B = 2000)

He aquí una descripción de los argumentos para fisher.test. Argumento x

y

Workspace

Hybrid

Control

Or Alternative Conf.int

Conf.level

Simulate.p.value

B

Descripción Especifica los datos simples que se utilizarán para la prueba. Ya sea una matriz (que representa una tabla de contingencia bidimensional) o un factor. Especifica los datos de la muestra que se utilizarán para la prueba. Si x es un factor, entonces y debería ser un factor. Si x es una matriz, entonces y se ignora. Un valor entero que especifica el tamaño del espacio de trabajo a utilizar en el algoritmo de red (en unidades de 4 bytes). En el caso de los cuadros de tamaño superior a 2 × 2, especifíquese si deben calcularse las probabilidades exactas (hybrid=FALSE) o si debe utilizarse una aproximación (hybrid=TRUE). Una lista de componentes con nombre para el control de bajo nivel de fisher.test; consulte el archivo de ayuda para obtener más información. La relación de probabilidades hipotética para el caso de 2 × 2. La hipótesis alternativa. Debe ser uno de "dos caras", "mayor" o "menor". Un valor lógico que especifica si se deben calcular y devolver los intervalos de confianza en los resultados. Especifica el nivel de confianza que se utilizará para calcular el intervalo de confianza. Valor lógico que indica si se debe utilizar la simulación de Monte Carlo para calcular valores p en tablas mayores de 2 × 2. Un número entero que indica el número de réplicas a utilizar en las simulaciones de Monte Carlo.

Predeterminado

NULL

200000

FALSE

List()

1

IV. EJEMPLOS A continuación se muestran algunos ejemplos de la prueba de independencia de Fisher: A. Ejemplo 1 En este ejemplo, usamos el conjunto de datos de nacimientos de 2006 del package nutshell. Echaremos un vistazo al número de bebés de ambos sexos que nacieron en julio de 2006, según el método de parto. Tomaremos un subconjunto de nacimientos durante julio donde se conocía el método de parto y luego tabularemos los resultados: [2] Teniendo en cuenta que los métodos de parto fueron en realidad ligeramente desequilibrados por género durante julio de 2006: births.july.2006=births2006.smpl[births2006.smpl$DMETH_ REC!="Unknown"&births2006.smpl$DOB_MM==7,] > nrow(births2006.smpl) [1] 427323 > nrow(births.july.2006) [1] 37060 > method.and.sex=table(births.july.2006$SEX,as.factor(as.chara cter(births.july.2006$DMETH_REC))) > method.and.sex C-section Vaginal F 5326 12622 M 6067 13045 Los resultados fueron ligeramente desequilibrados por género durante julio del 2006. > 5326 / (5326 + 6067) [1] 0.46748 > 12622 / (12622 + 13045) [1] 0.4917598 Sin embargo, no hay una razón intuitiva para que esto sea cierto. Comprobamos entonces si esta diferencia es estadísticamente significativa: ¿la diferencia se debe al azar o es probable que estas dos variables (método de parto y sexo) sean independientes? Podemos usar la prueba exacta de Fisher para responder a esta pregunta:

“two.sided” TRUE

0.95

FALSE

2000

Si usted especifica x e y como factores, entonces R calculará una tabla de contingencia a partir de estos factores. Alternativamente, puede especificar una matriz para x que contenga la tabla de contingencia. .

El valor p es la probabilidad de obtener resultados que estaban al menos tan alejados de la independencia como estos resultados. En este caso, el valor p es muy bajo, lo que indica que los resultados estaban muy lejos de lo que esperaríamos si las variables fueran verdaderamente independientes. Esto implica que debemos rechazar la hipótesis de que las dos variables son independientes.

Como segundo ejemplo, veamos sólo los nacimientos de gemelos. (Tenga en cuenta que cada registro representa un solo nacimiento, no un solo embarazo).

> twins.2006=births2006.smpl[births2006.smpl$DPLURAL==" 2 Twin" & births2006.smpl$DMETH_REC != "Unknown",] > method.and.sex.twins=table(twins.2006$SEX,as.factor(as.char acter(twins.2006$DMETH_REC))) > method.and.sex.twins

#Realización del test Fisher fisher.test(tabla)

C-section Vaginal F 4924 1774 M 5076 1860 Ahora veamos si hay una diferencia estadísticamente significativa en los métodos de parto entre los dos sexos:

Conclusión: Si hay asociación entre las variables, es decir, el bajo peso y el fumar durante la gestación están asociados de manera significativa (p-value sujeto=c(rep("No alergico",14),rep("alergico",16)) >Estado_gen=c(rep("FALSE",11),rep("TRUE",3),rep("FALS E",6),rep("TRUE",10)) El test de Fisher trabaja con frecuencia de eventos, por lo tanto con tablas de contingencia en las que se sumariza el número de eventos de cada tipo. >tabla=table(sujeto, Estado_gen) >tabla

Planteamiento de la hipótesis: H0: No hay asociación entre las variables (en el ejemplo, el bajo peso del niño y el hecho de fumar durante la gestación son independientes o no están asociados). H1: Si hay asociación entre las variables, es decir, el bajo peso y el fumar durante la gestación están asociados. #Formación de la tabla de contingencia a estudiar Si