22 votos

Comprensión de la prueba de Kolmogorov-Smirnov en R

Intento comprender la salida de la función de prueba de Kolmogorov-Smirnov (dos muestras, dos caras). Aquí está una prueba simple.

x <- c(1,2,2,3,3,3,3,4,5,6)
y <- c(2,3,4,5,5,6,6,6,6,7)
z <- c(12,13,14,15,15,16,16,16,16,17)

ks.test(x,y)

#   Two-sample Kolmogorov-Smirnov test
#
#data:  x and y
#D = 0.5, p-value = 0.1641
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, y) : cannot compute exact p-value with ties

ks.test(x,z)

#Two-sample Kolmogorov-Smirnov test

#data:  x and z
#D = 1, p-value = 9.08e-05
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, z) : cannot compute exact p-value with ties

ks.test(x,x)

#Two-sample Kolmogorov-Smirnov test

#data:  x and x
#D = 0, p-value = 1
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, x) : cannot compute exact p-value with ties

Hay algunas cosas que no entiendo aquí.

  1. Desde el ayuda parece que el valor p se refiere a la hipótesis var1=var2 . Sin embargo, aquí eso significaría que la prueba dice ( p<0.05 ):

    a. No se puede decir que X = Y ;

    b. Puede decir que X = Z ;

    c. No se puede decir que X = X (!)

Además de parecer que x es diferente de sí mismo (¡!), también me resulta bastante extraño que x=z ya que las dos distribuciones tienen soporte cero. ¿Cómo es posible?

  1. Según la definición de la prueba, D debería ser la máxima diferencia entre las dos distribuciones de probabilidad, pero por ejemplo en el caso (x,y) debería ser D = Max|P(x)-P(y)| = 4 (en caso de que P(x) , P(y) no están normalizados) o D=0.3 (si están normalizados). ¿Por qué D es diferente?

  2. He puesto intencionadamente un ejemplo con muchos corbatas ya que los datos con los que trabajo tienen muchos valores idénticos. ¿Por qué confunde esto a la prueba? Pensaba que calculaba una distribución de probabilidad que no debería verse afectada por valores repetidos. ¿Alguna idea?

27voto

aron Puntos 174

La prueba KS se basa en la comprobación de la "igualdad" de dos muestras independientes de una misma muestra. continuo (como indica la página de ayuda). Si es así, la probabilidad de empates debería ser asombrosamente pequeña (como también se indica). El estadístico de prueba es la distancia máxima entre las ECDF de las dos muestras. El valor p es la probabilidad de ver un estadístico de prueba tan alto o más que el observado si las dos muestras se extrajeron de la misma distribución. (No es la "probabilidad de que var1 = var2". Y además, 1-valor p tampoco es esa probabilidad). Los valores p altos dicen que no puede reclaman apoyo estadístico para una diferencia, pero los valores p bajos no son prueba de igualdad. Los valores p bajos pueden darse con tamaños de muestra bajos (como en su ejemplo) o la presencia de diferencias interesantes pero pequeñas, por ejemplo, perturbaciones oscilatorias superpuestas. Si está trabajando con situaciones con un gran número de empates, esto sugiere que puede necesitar utilizar una prueba que se ajuste más a la situación de sus datos.

Mi explicación de por qué los empates eran una violación de los supuestos no era una afirmación de que los empates invalidaban los resultados. Las propiedades estadísticas de la prueba KS en la práctica son relativamente resistentes o robustas al incumplimiento de ese supuesto. En mi opinión, el principal problema de la prueba KS es que es excesivamente general y, en consecuencia, tiene poca potencia para identificar diferencias significativas de naturaleza interesante. La prueba KS es una prueba muy general y tiene una potencia bastante baja para hipótesis más específicas.

Por otra parte, también veo que se utiliza la prueba KS (o la prueba "aún más potente" de Anderson Darling o Lillefors) para comprobar la "normalidad" en situaciones en las que dicha prueba no está justificada, como la comprobación de la normalidad de las variables que se utilizan como predictores en un modelo de regresión antes del ajuste. Uno podría legítimamente querer probar la normalidad de el residuos ya que eso es lo que se supone en la teoría del modelado. Incluso en ese caso, las desviaciones modestas de la normalidad de los residuos no suelen cuestionar la validez de los resultados. Sería mejor utilizar métodos robustos para comprobar el importante impacto de la "no normalidad" en las conclusiones sobre la significación estadística.

¿Quizás debería consultar con un estadístico local? Podría ayudarle a definir la cuestión estadística con un poco más de precisión y, por lo tanto, tendría más posibilidades de identificar una diferencia si realmente existe. Eso evitaría un "error de tipo II": no apoyar una conclusión de diferencia cuando tal diferencia está presente.

8voto

Gregoire Puntos 1

Para calcular la D (de ks.test código):

ks.test(x,y)

    Two-sample Kolmogorov-Smirnov test

data:  x and y
D = 0.5, p-value = 0.1641
alternative hypothesis: two-sided

alternative <- "two.sided"
x <- x[!is.na(x)]
n <- length(x)
  y <- y[!is.na(y)]
  n.x <- as.double(n)
  n.y <- length(y)
  w <- c(x, y)
  z <- cumsum(ifelse(order(w) <= n.x, 1/n.x, -1/n.y))
  z <- z[c(which(diff(sort(w)) != 0), n.x + n.y)] #exclude ties
  STATISTIC <- switch(alternative, two.sided = max(abs(z)), 
                      greater = max(z), less = -min(z))
  STATISTIC

[1] 0.5

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