15 votos

¿Puedo utilizar la prueba de Kolmogorov-Smirnov y estimar los parámetros de la distribución?

He leído que la prueba de Kolmogorov-Smirnov no debe utilizarse para comprobar la bondad del ajuste de una distribución cuyos parámetros se han estimado a partir de la muestra.

¿Tiene sentido dividir mi muestra en dos y utilizar la primera mitad para la estimación de parámetros y la segunda para la prueba KS?

Gracias de antemano

1 votos

¿Con qué distribución quiere probar y por qué?

0 votos

Sospecho que los datos siguen una distribución exponencial.

16voto

Eero Puntos 1612

El mejor enfoque es calcular el valor crítico del valor p por simulación. El problema es que cuando se estiman los parámetros a partir de los datos en lugar de utilizar los valores hipotéticos, la distribución del estadístico KS no sigue la distribución nula.

En su lugar, puede ignorar los valores p de la prueba KS y simular un grupo de conjuntos de datos de la distribución candidata (con un conjunto significativo de parámetros) del mismo tamaño que sus datos reales. A continuación, para cada conjunto, estime los parámetros y realice la prueba KS utilizando los parámetros estimados. Su valor p será la proporción de estadísticas de prueba de los conjuntos simulados que son más extremas que las de sus datos originales.

Ejemplo añadido

Aquí hay un ejemplo usando R (espero que sea legible/comprensible para la gente que usa otros programas).

Un ejemplo sencillo utilizando la distribución normal como hipótesis nula:

tmpfun <- function(x, m=0, s=1, sim=TRUE) {
  if(sim) {
    tmp.x <- rnorm(length(x), m, s)
  } else {
    tmp.x <- x
  }
  obs.mean <- mean(tmp.x)
  obs.sd <- sd(tmp.x)
  ks.test(tmp.x, 'pnorm', mean=obs.mean, sd=obs.sd)$statistic
}

set.seed(20200319)
x <- rnorm(25, 100, 5)

out <- replicate(1000, tmpfun(x))

hist(out)
abline(v=tmpfun(x, sim=FALSE))
mean(out >= tmpfun(x, sim=FALSE))

La función calculará el estadístico de prueba KS a partir de los datos reales (sim=FALSE) o simulará un nuevo conjunto de datos del mismo tamaño a partir de una distribución normal con media y sd especificadas. Entonces, en cualquiera de los dos casos, calculará el estadístico de prueba comparándolo con una distribución normal con la misma media y sd que la muestra (original o simulada).

A continuación, el código ejecuta 1.000 simulaciones (siéntase libre de cambiar y volver a ejecutar) para obtener/aproximar la distribución del estadístico de prueba bajo el NULL (pero con parámetros estimados) y, finalmente, compara el estadístico de prueba para los datos originales con esta distribución NULL.

Podemos simular todo el proceso (simulaciones dentro de simulaciones) para ver cómo se compara con los valores p por defecto:

tmpfun2 <- function(B=1000) {
  x <- rnorm(25, 100, 5)
  out <- replicate(B, tmpfun(x))
  p1 <- mean(out >= tmpfun(x, sim=FALSE))
  p2 <- ks.test(x, 'pnorm', mean=mean(x), sd=sd(x))$p.value
  return(c(p1=p1, p2=p2))
}

out <- replicate(1000, tmpfun2())

par(mfrow=c(2,1))
hist(out[1,])
hist(out[2,])

Para mi simulación, el histograma de los valores p basados en la simulación es bastante uniforme (lo que debería ser ya que el NULL es verdadero), pero los valores p para el ks.test función se agrupan mucho más contra el 1.0.

Se puede cambiar cualquier cosa en las simulaciones para estimar la potencia haciendo que los datos originales provengan de una distribución diferente, o utilizando una distribución Nula diferente, etc. La normal es probablemente la más sencilla ya que la media y la varianza son independientes, puede ser necesario un mayor ajuste para otras distribuciones.

3 votos

La solución me parece un poco confusa (al menos para mí); ¿qué quieres decir con "un conjunto significativo de parámetros" para la distribución candidata? Inicialmente no conoces los parámetros de la distribución candidata, ¿cómo podrías saber qué es un "conjunto significativo de parámetros"?

0 votos

Puedes probar diferentes conjuntos de parámetros para ver si hay diferencia o no (para la normal no la hay, pero algunas distribuciones sí). A continuación, piensa en la ciencia que hay detrás de tus datos, o habla con un experto en la materia, deberías poder hacerte una idea general de por dónde empezar, por ejemplo, no tengo ni idea de cuál es la altura media de los hombres adultos en Nigeria, pero estoy bastante seguro de que es positiva y menor de 3 metros.

0 votos

@GregSnow Me encontré con este post ya que es relevante para mi trabajo actual. Me preguntaba si hay alguna justificación teórica para el método que sugieres. Es decir, ¿cómo sabemos que el "valor p" propuesto está realmente distribuido uniformemente de 0 a 1? El valor p propuesto no parece ser el valor p convencional porque la hipótesis nula es ahora un conjunto de distribuciones

8voto

AdamSane Puntos 1825

La división de la muestra puede reducir el problema de la distribución de la estadística, pero no lo elimina.

Tu idea evita el problema de que las estimaciones estarán "demasiado cerca" de los valores de la población porque se basan en la misma muestra.

No estás evitando el problema de que siguen siendo estimaciones. La distribución de la estadística de prueba no es la tabulada.

En este caso aumenta la tasa de rechazo bajo el nulo, en lugar de reducirla drásticamente.

Una mejor opción es utilizar una prueba en la que los parámetros no se den por conocidos, como un Shapiro Wilk.

Si está acostumbrado a una prueba del tipo Kolmogorov-Smirnov, puede adoptar el enfoque de la prueba de Lilliefors.

Es decir, para utilizar el estadístico KS pero que la distribución del estadístico de prueba refleje el efecto de la estimación de los parámetros - simular la distribución del estadístico de prueba bajo la estimación de los parámetros. (Ya no es libre de distribución, por lo que necesita nuevas tablas para cada distribución).

http://en.wikipedia.org/wiki/Lilliefors_test

Liliefors utilizó la simulación para el caso normal y el exponencial, pero se puede hacer fácilmente para cualquier distribución específica; en algo como R es cuestión de momentos simular 10.000 o 100.000 muestras y obtener una distribución del estadístico de prueba bajo la nula.

[Una alternativa podría ser considerar el Anderson-Darling, que tiene el mismo problema, pero que - a juzgar por el libro de D'Agostino y Stephens ( Técnicas de bondad de ajuste ) parece ser menos sensible a ella. Podrías adaptar la idea de Lilliefors, pero ellos sugieren un ajuste relativamente sencillo que parece funcionar bastante bien].

Pero aún existen otros enfoques; hay familias de pruebas suaves de bondad de ajuste, por ejemplo (véase el libro de Rayner y Best) que en una serie de casos específicos pueden ocuparse de la estimación de parámetros.

* el efecto puede seguir siendo bastante grande, tal vez mayor de lo que normalmente se consideraría aceptable; Momo tiene razón al expresar su preocupación al respecto. Si una tasa de error de tipo I más alta (y una curva de potencia más plana) es un problema, entonces esto puede no ser una mejora.

1 votos

¿podría explicar cómo "la división de la muestra resolvería el problema de la distribución del estadístico"? En mi opinión, los parámetros se estimarían a partir de una submuestra y luego se introducirían en la prueba KS de la segunda submuestra, pero los parámetros seguirían estando asociados a un error de muestreo que no se tiene en cuenta en la distribución nula. Esto me suena como si uno pudiera con una idea similar dividir una muestra de una distribución normal, estimar las desviaciones estándar en una submuestra y llevar a cabo una comparación de medias con la normal estándar en lugar de la t-dist en la segunda submuestra.

1 votos

@Momo 'resolver' es demasiado fuerte; 'reducir' es mejor. Si los parámetros se estiman a partir de las mismas observaciones que estás probando, entonces -a menos que tengas en cuenta ese efecto- las desviaciones de la muestra con respecto a la distribución serán 'demasiado pequeñas' -la tasa de rechazo va waay hacia abajo. El uso de otra muestra elimina ese efecto. Los valores de los parámetros resultantes de la estimación de una segunda muestra siguen sufriendo un error de muestreo. Esto tendrá algún impacto en la prueba (aumenta la tasa de error de tipo I), pero no tendrá el efecto dramático de sesgo que tiene el uso de los mismos datos para ambos.

0 votos

@Momo He editado mi comentario para eliminar "resolver" y sustituirlo por alguna explicación

6voto

Momo Puntos 5125

Me temo que eso no resolvería el problema. Creo que el problema no es que los parámetros se estimen a partir de la misma muestra sino de cualquier muestra en absoluto. La derivación de la distribución nula habitual de la prueba KS no tiene en cuenta ningún error de estimación en los parámetros de la distribución de referencia, sino que los considera dados. Véase también Durbin 1973 que analiza en profundidad esta cuestión y ofrece soluciones.

2 votos

En realidad, se trata de dos problemas distintos. Si se utilizan los mismos datos para estimar los parámetros y para hacer la prueba KS, generalmente se verá inflado p-valores, porque esencialmente adaptar la distribución a los datos antes de comprobarla. Sin embargo, si se utilizan dos conjuntos de muestras independientes, esto no es así. Sin embargo, las estimaciones imprecisas de los parámetros podrían disminuir los valores p que se obtienen en este caso, porque ahora se está probando esencialmente contra un (ligeramente) equivocada distribución.

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