Hola Ruben,
Sà precisamente es lo que comentas, en matemáticas no se suele llamar
bucketización (este término se emplea más en informática) sino datos
agrupados. Pero la idea es la que tu mismo dices.
Respecto a las gráficas que has puesto, me han aclarado mucho sobre el
tema, gracias.
Si realizo lo mismo, por ejemplo con nbucket=1000 sigo obteniendo un
p-valor de 1. Es decir, que casi le pongas lo que le pongas se obtiene
un p-valor de 1.
¿Qué otros test de contraste de hipótesis me podrÃas recomendar?
Porque igual ocurre lo que tu bien has dicho de que el test de K-S no
es precisamente el mejor para este caso.
Un saludo, y ¡¡¡muchas gracias!!!
El 15 de octubre de 2014, 10:50, rubenfcasal <rubenfcasal en gmail.com
<mailto:rubenfcasal en gmail.com>> escribió:
Hola VÃctor,
Te escribo sin tener muy claro lo que quieres hacer (me llamó
la atención lo de "datos bucketizados", es la primera vez que lo
veo en estadÃstica, aunque la terminologÃa me suena a informática...).
Si no entiendo mal, en el segundo caso trabajas con medias de
una distribución lognormal agrupada. Simplemente hacer notar que
la distribución teórica de estas medias no es lognormal y la
varianza no coincide con la de la distribución original (es la
original dividida por el tamaño de las submuestras = n/nbucket).
En cuanto al test KS, ten en cuenta que lo que hace es
comparar funciones de distribución empÃricas:
# La de los datos originales:
curve(ecdf(sample)(x), type="s")
# Esta se parece mucho a la teórica como serÃa de esperar con una
muestra tan grande:
# curve(plnorm(x, meanlog = mean, sdlog = sd), lwd=2,add=TRUE)
# con la de las medias de las submuestras:
curve(ecdf(sample_bucket$mean)(x),type="s",lty = 2, add = TRUE)
Lo que creo que ocurre es que la segunda muestra es muy
pequeña y el test de KS no tiene evidencias para rechazar la H0.
Si consideras un numero mayor de "buckets" deberÃa rechazar. Ten
en cuenta también que el test KS puede no ser el más potente...
Un saludo,
Rubén F.C.
El 15/10/2014 9:59, VÃctor Nalda Castellet escribió:
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