Hola Ruben, Gracias por los paquetes que me comentas para realizar los contrastes de bondad de ajuste.
Voy a seguir variando parámetros para ver los resultados que obtengo. Un saludo y muchas gracias. El 15 de octubre de 2014, 14:54, rubenfcasal <rubenfca...@gmail.com> escribió: > Hola de nuevo, > > En cuanto a otro tipo de contrastes de bondad de ajuste, podrías > pensar en emplear por ejemplo el test de Anderson-Darling (podríamos decir > que es una mejora del KS, mira p.e. > http://en.wikipedia.org/wiki/Anderson%E2%80%93Darling_test). Creo que > está implementado en R (p.e. paquete goftest). Para contrastes de bondad de > ajuste, yo tengo empleado el paquete fitdistrplus y otros asociados al > paquete distr (el distrMod creo recordar...) . > > Una duda que tengo es porque comparas la distribución de las medias > con la de los datos originales (ten también en cuenta que hay dependencia > entre estas muestras, p.e su media muestral es exactamente la misma). Si > tienes una distribución teórica, sería más eficiente comparar directamente > con esta distribución, e.g.: > ks.test(lognorm2$sample, "plnorm", meanlog = mean, sdlog = sd ) > Aunque sigo obteniendo p-valor=1 con tu ejemplo. > Prueba también a variar los parámetros... > > Un saludo, > Rubén F.C. > > El 15/10/2014 11:26, Víctor Nalda Castellet escribió: > > 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 <rubenfca...@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 > > > -- Víctor Nalda Castellet [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es