[R-es] Test K-S con distribuciones LogNormales

Víctor Nalda Castellet victor.nalda.castellet en gmail.com
Mie Oct 15 09:59:19 CEST 2014


Hola a todos, ¿que tal?

Os escribo porque llevo varios días con la siguiente duda: quiero realizar
el test de K-S para dos distribuciones lognormales, una de ellas con datos
agrupados (bucketizados).

library(stats)

# Definimos las variables
n <- 1000000 # tamaño de la muestra
mean <- 0 # media de la dist. normal
sd <- 1 # desviación típica de la dist. normal
nbucket <- 10 # numero de buckets

# Generamos la muestra de tamaño n
sample <- sort(rlnorm(n, meanlog = mean, sdlog = sd))
# Función de distribución
df <- plnorm(sample, meanlog = mean, sdlog = sd)
lognorm1 <- data.frame(sample=sample, distfun=df)
# Gráfica de la función de distribución sin bucketizar
plot(lognorm1, type = "l", col = "red")

# Bucketización - Muestra bucketizada
library(plyr)
dt <- data.frame(sample=sample, bucket=rep(1:nbucket, each = n/nbucket))
sample_bucket <- ddply(dt,~bucket,summarise,mean=mean(sample))

# Función de distribución bucketizada
dfb <- plnorm(sample_bucket$mean, meanlog = mean, sdlog = sd)
lognorm2 <- data.frame(sample=sample_bucket$mean, distfun=dfb)
par(new=TRUE)
points(lognorm2, col = "blue")

ks.test(lognorm1$sample, lognorm2$sample) # Obtengo p-valor=1

El problema es que obtengo un p-valor de 1, y creo que debería obtener un
p-valor bastante menor. ¿Sabéis lo que está ocurriendo?
Creo que si una de las distribuciones tiene 1.000.000 de datos y la otra
tiene 10 datos (es la aproximación de la otra), como no se parecen en nada
debería obtener un p-valor muy malo y no es así:

Two-sample Kolmogorov-Smirnov test

data:  lognorm1$sample and lognorm2$sample
D = 0.0683, p-value = 1
alternative hypothesis: two-sided

Respecto al tema de bucketizar, lo tengo que realizar de esa forma.



Un saludo, y muchas gracias.

-- 
Víctor Nalda Castellet

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es