pruebas - shapiro test r interpretacion
Realizar una prueba de normalidad Shapiro-Wilk. (3)
Quiero realizar una prueba de normalidad Shapiro-Wilk. Mis datos son en formato csv
. Se parece a esto:
> heisenberg
HWWIchg
1 -15.60
2 -21.60
3 -19.50
4 -19.10
5 -20.90
6 -20.70
7 -19.30
8 -18.30
9 -15.10
Sin embargo, cuando realizo la prueba, me sale:
> shapiro.test(heisenberg)
Error in `[.data.frame`(x, complete.cases(x)) :
undefined columns selected
¿Por qué no está seleccionando la columna correcta y cómo hacerlo? Gracias por su respuesta!
Está aplicando shapiro.test () a un marco de datos en lugar de a la columna. Intenta lo siguiente:
shapiro.test(heisenberg$HWWIchg)
No pudo especificar las columnas exactas (datos) para probar la normalidad. Usa esto en su lugar
shapiro.test(heisenberg$HWWIchg)
¿Qué hace shapiro.test?
shapiro.test
prueba la hipótesis nula de que "las muestras provienen de una distribución Normal" y la hipótesis alternativa "las muestras no provienen de una distribución Normal".
¿Cómo realizar shapiro.test en R?
La página de ayuda R para ?shapiro.test
da,
x - a numeric vector of data values. Missing values are allowed,
but the number of non-missing values must be between 3 and 5000.
Es decir, shapiro.test
espera un vector numérico como entrada, que corresponde a la muestra que desea probar y es la única entrada requerida. Como tiene un data.frame , deberá pasar la columna deseada como entrada a la función de la siguiente manera:
> shapiro.test(heisenberg$HWWIchg)
# Shapiro-Wilk normality test
# data: heisenberg$HWWIchg
# W = 0.9001, p-value = 0.2528
Interpretando los resultados de shapiro.test:
Primero, le sugiero que lea esta excelente respuesta de Ian Fellows sobre las testing for normality
.
Como se muestra arriba, el shapiro.test
prueba la hipótesis shapiro.test
que las muestras provienen de una distribución Normal. Esto significa que si su valor de p <= 0.05 , entonces rechazaría la hipótesis NULA de que las muestras provienen de una distribución Normal. Como Ian Fellows lo expresó muy bien, está probando contra la suposición de normalidad ". En otras palabras (corríjame si me equivoco), sería mucho mejor si uno prueba la hipótesis NULA de que las muestras no provienen de una distribución normal. ¿Por qué? Porque rechazar una hipótesis NULA no es lo mismo que aceptar la hipótesis alternativa.
En el caso de la hipótesis nula de shapiro.test
, un valor de p <= 0.05 rechazaría la hipótesis nula de que las muestras provienen de una distribución normal. En pocas palabras, existe la posibilidad de que las muestras provengan de una distribución normal. El efecto secundario de esta prueba de hipótesis es que esta rara posibilidad ocurre muy raramente . Para ilustrar, tomemos por ejemplo:
set.seed(450)
x <- runif(50, min=2, max=4)
shapiro.test(x)
# Shapiro-Wilk normality test
# data: runif(50, min = 2, max = 4)
# W = 0.9601, p-value = 0.08995
Por lo tanto, este runif(50, min=2, max=4)
muestra (en particular) runif(50, min=2, max=4)
proviene de una distribución normal de acuerdo con esta prueba. Lo que estoy tratando de decir es que hay muchos casos en los que los requisitos "extremos" (p <0.05) no se satisfacen, lo que conduce a la aceptación de la "hipótesis NULA" la mayoría de las veces, lo que puede ser engañoso.
Otro tema que me gustaría citar aquí de @PaulHiemstra de debajo de los comentarios sobre los efectos en el tamaño de muestra grande:
Un problema adicional con la prueba de Shapiro-Wilk es que cuando le das más datos, las posibilidades de que se rechace la hipótesis nula son mayores. Entonces, lo que sucede es que para grandes cantidades de datos, incluso se pueden detectar desviaciones muy pequeñas de la normalidad, lo que lleva al rechazo del evento de hipótesis nula, aunque para fines prácticos, los datos son más de lo normal.
Aunque también señala que el límite de tamaño de datos de R protege esto un poco:
Afortunadamente, shapiro.test protege al usuario del efecto descrito anteriormente al limitar el tamaño de los datos a 5000.
Si la hipótesis NULA fuera la opuesta, es decir, las muestras no provienen de una distribución normal y obtienes un valor de p <0.05 , entonces concluyes que es muy raro que estas muestras no provengan de una distribución normal (rechazar la hipótesis nula). Eso se traduce de forma general en: es muy probable que las muestras se distribuyan normalmente (aunque a algunos estadísticos no les guste esta forma de interpretación). Creo que esto es lo que Ian Fellows también trató de explicar en su publicación. ¡Por favor corrígeme si me sale algo mal!
@PaulHiemstra también comenta sobre situaciones prácticas (por ejemplo, regresión) cuando se encuentra este problema de prueba de normalidad:
En la práctica, si un análisis asume normalidad, p. Ej. Lm, no haría esta prueba de Shapiro-Wilk, sino que realizaría el análisis y analizaría las gráficas de diagnóstico del resultado del análisis para juzgar si alguna de las suposiciones del análisis violaba demasiado. Para la regresión lineal con lm, esto se hace observando algunas de las gráficas de diagnóstico que obtiene usando plot (lm ()). Las estadísticas no son una serie de pasos que arrojan unos pocos números (¡eh, p <0.05!) Pero requieren mucha experiencia y habilidad para juzgar cómo analizar sus datos correctamente.
Aquí, encuentro la respuesta de Ian Fellows al comentario de Ben Bolker bajo la misma pregunta que ya se ha vinculado anteriormente, igualmente (si no más) informativa:
Para regresión lineal,
No te preocupes mucho por la normalidad. El CLT toma el control rápidamente y si tiene todos los tamaños de muestra menos el más pequeño y un histograma de aspecto incluso remotamente razonable, está bien.
Preocupación por las varianzas desiguales (heteroscedasticidad). Me preocupa esto hasta el punto de (casi) usar pruebas HCCM por defecto. Una gráfica de ubicación de escala dará una idea de si está roto, pero no siempre. Además, no existe una razón a priori para asumir varianzas iguales en la mayoría de los casos.
Outliers. Una distancia de cocina de> 1 es causa razonable de preocupación.
Esos son mis pensamientos (FWIW).
Espero que esto aclare las cosas un poco.