7 votos

Alternativa no paramétrica a la prueba t simple

Tengo cinco variables numéricas de dos poblaciones (cada una de ellas con 60 individuos) y para cada una de esas cinco variables quiero saber si hay diferencia en las medias.

Estaba tratando de utilizar una simple prueba t para esto (la función t.test R), pero permítanme explicar mis preocupaciones para ver si es posible.

Una variable de una población no pasa el Prueba de normalidad de Shapiro .

Cualquiera de las cinco variables pasadas Prueba de Levene para 0,05, sólo uno para 0,01 (pero es el que contiene la distribución no normal en una variable).

Incluso con todo esto, ¿sería una buena opción utilizar la prueba t para evaluar las medias? ¿Cuál podría ser una alternativa no paramétrica que se adapte a mi problema?

1 votos

1. Incluso si tuviera datos puramente gaussianos, esperaría que el 5% de sus muestras rechazaran una prueba del 5%: si está probando 5 variables para cada uno de los dos grupos, está buscando un 40% de posibilidades de al menos un rechazo 2. Eche un vistazo a ¿Las pruebas de normalidad son esencialmente inútiles? especialmente La respuesta de Harvey . 3. Comentarios similares se aplicarían a la prueba de la igualdad de la varianza. ... ctd

1 votos

Ctd. 4. Una forma fácil de comprobar la igualdad de las medias con una prueba no paramétrica sería hacer una prueba de permutación, pero si tiene heteroscedasticidad, probablemente debería pensar más en un modelo de distribución adecuado... de hecho, estas consideraciones deberían tenerse en cuenta mucho antes de recopilar los datos. 5. Por otra parte, si el tamaño de las muestras es el mismo, la prueba t no es sensible a la heteroscedasticidad y, en cualquier caso, sólo es necesario suponer la igualdad de varianza bajo la nulidad; si una diferencia de varianza está causada por la misma cosa que causa la diferencia de medias, puede no ser un problema.

14voto

Mark White Puntos 569
  1. El t -la prueba no asume la normalidad de la variable dependiente; asume la normalidad condicionado al predictor . (Ver este hilo: ¿De dónde viene la idea errónea de que Y debe tener una distribución normal? ). Una forma sencilla de condicionar su variable de agrupación es observar un histograma de la variable dependiente, dividiendo los datos en su variable de agrupación.

  2. Las pruebas de normalidad, como la prueba de Shapiro-Wilk, pueden no ser tan informativas. Las pequeñas desviaciones de la normalidad pueden resultar significativas (véase este hilo: ¿Son las pruebas de normalidad "esencialmente inútiles"? ). Sin embargo, dado el pequeño tamaño de la muestra, esto probablemente no sea un problema. No obstante, no importa realmente (en términos prácticos) si la normalidad, sino el grado en que se viola.

  3. Dependiendo de la falta de normalidad de sus datos, probablemente no tenga que preocuparse mucho. El modelo lineal general (del cual el t -) es más robusto a las violaciones del supuesto de normalidad que a otros supuestos (como la independencia de las observaciones). El grado de robustez ya se ha discutido en este sitio web, por ejemplo en este hilo: ¿Qué solidez tiene la prueba t de muestras independientes cuando las distribuciones de las muestras no son normales? . También hay muchos artículos que analizan la solidez de este método frente a las violaciones de la normalidad (como demuestra esta rápida búsqueda en Scholar): https://scholar.google.com/scholar?hl=en&as_sdt=0%2C33&q=t-test+robusto+a+la+normalidad&btnG= ).

  4. También puede realizar una prueba no paramétrica y ver si sus conclusiones difieren; no cuesta prácticamente nada hacerlo. La alternativa más popular es la prueba de Mann-Whitney, que se realiza con el stats::wilcox.test en R ( http://stat.ethz.ch/R-manual/R-devel/library/stats/html/wilcox.test.html ). Hay muchas buenas introducciones a esta prueba en Internet; yo buscaría en Google hasta que una descripción de la misma te convenza. Este vídeo, en el que se calcula la estadística de la prueba a mano, me parece muy intuitivo: https://www.youtube.com/watch?v=BT1FKd1Qzjw . Por supuesto, se utiliza un ordenador para calcular esto, pero me gusta saber lo que pasa por debajo.

1 votos

Tu respuesta (+1) apareció mientras escribía la mía. Comprobaré algunas de tus referencias, y quizá quieras tomar nota de mi referencia a un artículo en el número de TAS que llegó ayer.

0 votos

@BruceET +1 en su respuesta, también. Buena referencia en TAS, también. Tendré que comprobarlo.

1 votos

+1 Muy buen resumen. En tu primer punto, afirmas: "La prueba t no asume la normalidad de la variable independiente; [...]". ¿Te refieres a la "variable dependiente"? Nunca he visto que se afirme que la variable independiente, al ser un indicador de grupo, deba tener una distribución normal.

7voto

manku Puntos 111

Veamos una variable a la vez. Según tengo entendido tienes $n_1 =60$ observaciones de la población 1 que se distribuye $\mathsf{Norm}(\mu_1, \sigma_1)$ y $n_2 =60$ observaciones de la población 2 que se distribuye $\mathsf{Norm}(\mu_2, \sigma_2).$

Quieres probar $H_0: \mu_1 = \mu_2$ contra $H_a: \mu_1 \ne \mu_2.$ Se podría utilizar una prueba t de 2 muestras. A menos que tenga experiencia previa con tales datos que indiquen que $\sigma_1 = \sigma_2,$ se considera bueno práctica utilizar la prueba t de Welch (varianzas separadas), que no requiere $\sigma_1 = \sigma_2.$

En concreto, suponga que tiene los siguientes datos:

sort(x1); summary(x1); sd(x1)
 [1]  78.0  78.5  80.1  80.9  87.2  88.8  89.0  90.1  90.7  92.6  92.9  93.7  94.5  97.3  98.3
[16]  98.3  98.6 100.5 100.9 101.1 101.8 101.9 103.2 103.4 104.0 104.1 104.6 104.9 105.1 105.4
[31] 105.8 107.2 107.6 108.1 108.1 108.2 108.7 109.6 109.6 112.0 112.2 112.7 114.0 114.1 114.7
[46] 114.8 116.6 117.0 118.0 118.4 118.6 119.2 123.1 124.1 124.7 125.5 127.4 127.7 136.4 138.2

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   78.0    98.3   105.6   106.2   114.7   138.2 
[1] 13.55809

.

sort(x2);  summary(x2);  sd(x2)
  [1]  65.3  70.1  76.1  76.8  80.9  81.3  82.4  82.5  84.9  85.0  85.6  86.6  87.7  88.6  89.4
 [16]  89.7  90.3  91.9  92.2  92.5  93.0  93.0  93.5  94.0  94.4  96.1  96.4  96.9  97.3  97.6
 [31]  98.5  98.9  99.7  99.9 100.2 101.3 101.5 101.7 103.3 103.4 103.5 103.6 104.5 104.7 106.0
 [46] 106.2 107.2 107.7 109.2 109.3 110.5 110.7 110.9 111.1 111.3 113.8 114.9 115.2 118.1 118.9

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  65.30   89.62   98.05   97.30  106.05  118.90 
[1] 11.89914

boxplot(x1, x2, notch=T, col="skyblue2", pch=19)

No hay valores atípicos en ninguna de las dos muestras y las muestras parecen más o menos simétricas. Las muescas en los lados de los gráficos de caja son intervalos de confianza no paramétricos aproximados de confianza no paramétricos, que indican que la población medianas difieren.

enter image description here

La prueba t de Welch de 2 muestras muestra una diferencia significativa. [Una prueba t agrupada habría tenido df = 118; debido a una ligera diferencia en las desviaciones estándar de la muestra, la prueba de Welch sólo tiene aproximadamente df = 116].

t.test(x1, x2)

        Welch Two Sample t-test

data:  x1 and x2
t = 3.8288, df = 116.05, p-value = 0.0002092
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
   4.304113 13.529220
sample estimates:
mean of x mean of y 
 106.2117   97.2950 

Ahora, en cuanto a sus preocupaciones específicas:

(1) Para tamaños de muestra de 60, no debe preocuparse por una ligera desviación de normalidad. Si cree que la no normalidad puede ser un problema, puede observar los 120 residuos' de este modelo juntos en una prueba de normalidad. (Los residuos son $X_{1i} - \bar X_1, X_{2i} - \bar X_2.$ para $i=1, 2, \dots, 60.)$

(2) Cualquier diferencia en las varianzas se tiene en cuenta haciendo la prueba t de Welch de 2 muestras.

(3) La prueba no paramétrica de dos muestras de Wilcoxon (signed-rank) podría utilizarse si realmente cree que los datos están lejos de la normalidad. Se trata de una prueba para ver si una población está desplazada de la otra. (Algunos autores lo enmarcan como una prueba de diferencia diferencia de medianas, pero un artículo de la revista El Estadístico Americano se opone a esa interpretación y adopta una visión más amplia de la prueba: Dixon et al. (2018), Vol. 72, Nr. 3, "The Wilcoxon-Mann-Whitney procedure fails as a test of medians"). Para mi ejemplo, esta prueba encuentra una diferencia significativa entre las dos poblaciones, sin suponer que ninguna de ellas es normal.

wilcox.test(x1, x2)

    Wilcoxon rank sum test with continuity correction

data:  x1 and x2
W = 2465, p-value = 0.0004871
alternative hypothesis: true location shift is not equal to 0

(4) Adenda: Un comentario y una pregunta vinculada mencionan las pruebas de permutación, por lo que incluimos una posible prueba de permutación. [Para una discusión elemental de las pruebas de permutación, tal vez se pueda ver Eudey et al. (2010) especialmente la Secc. 3.]

A continuación se muestra el código R para una prueba de permutación utilizando el estadístico t agrupado como "métrica". Si los dos grupos son los mismos, no debería importar si mezclamos aleatoriamente las 120 observaciones en dos grupos de 60. Reconocemos que el estadístico t agrupado es una forma razonable manera de medir la distancia entre dos muestras, pero no asumimos que la estadística tiene la distribución t de Student.

El código supone que los datos x1 y x2 están presentes, hace la codificación con la función sample(gp) y (convenientemente, pero de forma algo ineficiente) utiliza t.test()$stat para obtener la estadística t de las muestras permutadas. El valor P 0,0003 indica el rechazo de la hipótesis nula. (Los resultados pueden variar ligeramente de una ejecución a otra).

all = c(x1, x2);  gp = rep(1:2, each=60)
t.obs = t.test(all ~ gp, var.eq=T)$stat
t.prm = replicate( 10^5,  t.test(all ~ sample(gp), var.eq=T)$stat )
mean(abs(t.prm) > abs(t.obs))
[1] 0.00026

La figura siguiente muestra un histograma de la distribución de permutación simulada. [Resulta que coincide con la curva de densidad (negra) de la distribución t de Student con 118 grados de libertad bastante bien, porque los datos se simularon como normales con SDs casi iguales]. El El valor P es la proporción de estadísticas t permutadas fuera de las líneas punteadas verticales.

enter image description here

Nota: Mis datos fueron generados en R de la siguiente manera:

set.seed(818)
x1 = round(rnorm(60, 107, 15), 1); x2 = round(rnorm(60, 100, 14), 1)

0 votos

Muchas gracias, tengo una preocupación sobre la homogeneidad de la varianza.

1 votos

El ejemplo de la prueba de permutación lo hace realmente útil. En R, las pruebas de permutación/aleatorización son realmente fáciles de hacer (incluso sin utilizar las funciones adicionales de los paquetes complementarios que lo hacen aún más fácil); me sorprende que la gente no las haga más a menudo.

0 votos

@Glen-b: Gracias. Sí, soy un gran fan de las pruebas de permutación. Una precaución, especialmente para las pequeñas $n,$ es utilizar algo como length(unique(t.perm)) al final para asegurarse de que hay muchos valores significativos.

6voto

Guildenstern Puntos 199

Una cosa a tener en cuenta fuera de algunos contextos de la física En la naturaleza, ningún proceso generará datos con una distribución puramente normal (o datos con una distribución particular de buen comportamiento). ¿Qué significa esto en la práctica? Significa que si usted poseyera una prueba omnipotente para la normalidad, la prueba rechazaría el 100% de las veces, porque sus datos esencialmente siempre serán sólo, en el mejor de los casos, aproximadamente normal. Por eso, aprender a determinar la extensión de la normalidad aproximada y sus posibles efectos en la inferencia es tan importante para los investigadores, en lugar de confiar en las pruebas.

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