La prueba de Kolmogorov-Smirnoves un tipo de prueba no paramétrica de la igualdad de discontinuo y continuo de una distribución de probabilidad 1D que se utiliza para comparar la muestra con la prueba de probabilidad de referencia (conocida como prueba KS de una muestra) o entre dos muestras (conocida como prueba de dos muestras). muestra de prueba KS). Una prueba KS cuantifica una distancia entre la función de distribución acumulativa de la distribución de referencia dada y las distribuciones empíricas de dos muestras dadas, o entre la distribución empírica de dos muestras dadas. En una prueba KS de una muestra, la distribución que se considera bajo una hipótesis nula puede ser puramente discreta, continua o mixta. En la prueba KS de dos muestras, la distribución considerada bajo la hipótesis nula es generalmente una distribución continua, pero no está restringida por lo demás. La prueba de Kolmogorov-Smirnov se puede hacer muy fácilmente enProgramación R.
Fórmula de prueba de Kolmogorov-Smirnov
La fórmula para la prueba de Kolmogorov-Smirnov se puede dar como:
dónde,
sup x : el supremo del conjunto de distancias
F n (x) : la función de distribución empírica para n id observaciones X i
La función de distribución empírica es una función de distribución que está asociada con las medidas empíricas de la muestra elegida. Al ser una función escalonada, esta distribución acumulativa salta en un paso de 1/n en todos y cada uno de los n puntos de datos.
Implementación en R
La prueba KS se puede realizar usando la función ks.test() en R.
Sintaxis:
ks.text(x, y, …, alternativa = c(“dos.lados”, “menor”, “mayor”), exacto= NULL, tol= 1e-8, simular.p.valor = FALSO,
B=2000 )Parámetros:
x: vector numérico de valores de datos
y: vector numérico de valores de datos o una string de caracteres que se utiliza para nombrar una función de distribución acumulativa.
…: los parámetros que están definidos por el valor yalternativa: se utiliza para indicar la hipótesis alternativa.
exacto: generalmente NULL o indica una lógica que debe calcularse un valor p exacto.tol: un límite superior utilizado para redondear errores en los valores de los datos.
simular.p.valor: una lógica que verifica si se debe usar el método Monte Carlo para calcular el valor p.
B: un valor entero que indica el número de réplicas que se crearán al usar el método de Monte Carlo.
Comprendamos cómo ejecutar una prueba KS paso a paso usando un ejemplo de una prueba KS de dos muestras.
- Paso 1: primero instale los paquetes necesarios . Para realizar la prueba de KS necesitamos instalar el paquete “ dgof ” usando la función install.packages() desde la consola R.
install.packages("dgof")
- Paso 2: después de una instalación exitosa del paquete, cargue el paquete requerido en nuestro R Script. para ese propósito, use la función library() de la siguiente manera:
R
# loading the required package library("dgof")
- Paso 3: use la función rnorm() y la función runif() para generar muestras, digamos x e y. La función rnorm() se usa para generar variables aleatorias, mientras que la función runif() se usa para generar desviaciones aleatorias.
R
# loading the required package library(dgof) # generating random variate # sample 1 x <- rnorm(50) # generating random deviates # sample 2 y <- runif(30)
- Paso 4: Ahora realice la prueba KS en estas dos muestras. Para ese propósito, use ks.test() del paquete dgof .
R
# loading the required package library(dgof) # generating random variate # sample 1 x <- rnorm(50) # generating random deviates # sample 2 y <- runif(30) # performing the K-S Test # Do x and y come from # the same distribution? ks.test(x, y)
Producción:
Two-sample Kolmogorov-Smirnov test data: x and y D = 0.84, p-value = 5.151e-14 alternative hypothesis: two-sided
Visualización del Test de Kolmogorov-Smirnov en R
Siendo bastante sensible a la diferencia de forma y ubicación de la distribución acumulativa empírica de las dos muestras elegidas, la prueba KS de dos muestras es eficiente y una de las pruebas no paramétricas más generales y útiles. Por lo tanto, veremos cómo el gráfico representa la diferencia entre las dos muestras.
Ejemplo:
Aquí estamos generando ambas muestras usando las funciones rnorm() y luego graficarlas.
R
# loading the required package library(dgof) # sample 1 # generating a random variate x <- rnorm(50) # sample 2 # generating a random variate x2 <- rnorm(50, -1) # plotting the result # visualization plot(ecdf(x), xlim = range(c(x, x2)), col = "blue") plot(ecdf(x2), add = TRUE, lty = "dashed", col = "red") # performing the K-S # Test on x and x2 ks.test(x, x2, alternative = "l")
Producción:
Two-sample Kolmogorov-Smirnov test data: x and x2 D^- = 0.34, p-value = 0.003089 alternative hypothesis: the CDF of x lies below that of y