5 votos

Cómo evaluar la diferencia en una variable binaria entre dos grupos

Tengo $3$ grupos ( $n_1 = 30$ , $n_2 = 20$ , $n_3 = 5$ ), y estoy mirando las puntuaciones de ansiedad, que es binaria ( 0 = no anxiety , 1 = anxiety present ). Quiero realizar comparaciones por pares, es decir, ¿hay una diferencia significativa en las puntuaciones de ansiedad entre el grupo 1 y el grupo 2? ¿Grupo 2 frente a grupo 3? ¿Grupo 1 frente a grupo 3?

No estoy muy seguro de si la prueba t sería apropiada en este caso, ya que no sé si las variables son iid normales, así que estoy pensando en utilizar la prueba de rangos con signo de Wilcoxon ( wilcox.test(..., paired = FALSE) en R). ¿Qué otra prueba sería adecuada en este caso?

4voto

Antoni Parellada Puntos 2762

La respuesta probablemente incluiría repetir esta entrada tratar la resistencia de la prueba de ji cuadrado incluso cuando los recuentos esperados de células son inferiores a 5. Así que la prueba de ji cuadrado puede ser la respuesta, y podría plantearse como una bondad de ajuste (GOF) comparando la distribución de la frecuencia de sujetos "ansiosos" con una distribución uniforme en los 3 grupos.

Sin embargo, es probable que aparezca un mensaje de advertencia al ejecutar la prueba de ji cuadrado. He simulado el conjunto de datos (el código es aquí y también pegado debajo de este párrafo para mayor comodidad. Hubo el mismo número de sujetos que en el grupo de correos original a = 30 , b =20 y c = 5 :

subjects <- c(group_a <- rep("a", 30), group_b <- rep("b", 20), group_c <- rep("c", 5))
sam <-      c(sample(c(c(rep("N",25)), c(rep("A",5)))),
            sample(c(c(rep("N",10)), c(rep("A",10)))),
            c(sample(c("A","N"), 5, replace = T)))
(tab = table(subjects,sam))  
        sam
subjects  A  N
       a  5 25
       b 10 10
       c  3  2

El grupo a se estableció como mucho menos ansioso: 25 N por "no ansiedad".

El resultado de la prueba fue:

    (p_observed = chisq.test(tab, correct = F))
    Pearson's Chi-squared test

data:  tab
X-squared = 7.9142, df = 2, 

$p-value = \color{orange}{0.01912}$

Pero había un mensaje de advertencia:

Warning message:
In chisq.test(tab, correct = F) :
  Chi-squared approximation may be incorrect

Así que quería ver si podíamos llegar a un ad hoc permutación prueba, y barajar la A , N en todos los sujetos, bajo la hipótesis nula de que no hay diferencias en la distribución de los sujetos ansiosos entre los grupos, y luego realizar una prueba de ji cuadrado en las frecuencias tabuladas resultantes. Haciendo caso omiso de cualquier problema con el pequeño tamaño del grupo 3, y sólo prestando atención al valor p relativo de cada iteración con respecto a las demás, creo que es justo decir que la proporción de permutaciones con un valor p menor que el observado en los datos reales es un valor p exacto - una prueba de Fisher simulada, o, probablemente más exactamente, una prueba de chi cuadrado. prueba de permutación .

Aquí está el código en R, y los resultados:

set.seed(0)
options(warn=0)
            (tab = table(subjects,sam))  
            (p_observed = chisq.test(tab, correct = F))
chisq.test(tab, simulate.p.value = T)

pval <- c(NA, length(sam))
options(warn=-1)

            for (i in 1:1e4){
       anx <- sample(sam, length(sam), replace = F)
       tab     <- table(subjects,anx)
       pval[i] <- chisq.test(tab, correct = F)$p.value
} 
(p_value = mean(pval < p_observed$p.value))

El valor p = $\color{red}{0.0186}$ era inferior al calculado inicialmente con chisq.test .

Me sorprendió que este valor p fuera también inferior al cálculo mediante simulación Monte Carlo con la función incorporada en R:

chisq.test(tab, simulate.p.value = T)

    Pearson's Chi-squared test with simulated p-value (based
    on 2000 replicates)

data:  tab
X-squared = 7.9142, df = NA, p-value = 0.02099

Tras obtener un resultado significativo, se pueden realizar comparaciones por pares con Corrección de Bonferroni (nivel de significación $0.05 /\text{no.hypotheses} = 0.05 / 3 = \color{blue}{0.0167}$ ). Se pueden obtener directamente con el programa integrado R fisher.test función:

Entre grupos a y b :

fisher.test(tab[1:2,], alternative = "two.sided")
p-value = 0.02546

Entre b y c :

fisher.test(tab[2:3,], alternative = "two.sided")
p-value = 1

Y a y c :

fisher.test(tab[c(1,3),], alternative = "two.sided")
p-value = 0.06654

Curiosamente, ninguno de los resultados es significativo, debido a la naturaleza conservadora de la prueba de Fisher. Si realizáramos una chisq.test entre a y b - y el tamaño de las muestras claramente lo permitiría, obtendríamos un resultado estadísticamente significativo:

$p-value = \color{green}{0.01174}.$

0voto

aidyn cohill Puntos 9

¿Intenta comparar proporciones entre 2 grupos? En caso afirmativo, creo que puede utilizar la prueba Z, donde Z= (p1-p2)/sqrt(p(1-p)/(1/n1+1/n2)) y p es la proporción cuando se combinan 2 grupos.

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