Carlos J. Gil Bellosta
2009-Apr-29 21:15 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Hola, ¿qué tal? Tengo una pregunta de esta
Carlos J. Gil Bellosta
2009-Apr-29 21:26 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Hola, ¿qué tal? Tengo una pregunta de estadística (marginalmente relacionada con R). Me llegan unos datos y quiero ajustarlos vía máxima verosimilitud. Sin embargo, no tengo una sóla familia de distribuciones (por ejemplo, N(mu, sigma) sino varias, media docena de ellas. Y se me pide que encuentre "la que mejor se ajusta a los datos". Ordenar por el p-valor de un test de bondad de ajuste (que es lo que he heredado) me parece problemático: unas distribuciones son más "parsimoniosas" que otras y no he oído de algún equivalente al AIC para este problema. Se me ocurre alguna idea peregrina (como un "bootstrap" en los datos originales para estimar la variabilidad de la bondad del ajuste sobre las submuestras. Pero me gustaría saber si alguien conoce alguna referencia acerca de este problema. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com
Olivier Nuñez
2009-Apr-30 10:22 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Una posible solución a tu problema consiste en construir el cierre convexo de estas familias de distribuciones. Supongamos que tengas sólo dos familias: N(m,s) y T(z) . Entonces, el cierre convexo de ambas familias sería la familia parametrica: C(p,m,s,z) = p*N(m,s) + (1-p)*T(z) donde p es un parametro que toma valores entre 0 y 1. En este caso, podrías aplicar el test de maxima verosimilitud para tomar una decisión sobre p. El package adecuado para este tipo de modelo debería ser flexmix. Un saludo. Olivier -- -- ____________________________________ Olivier G. Nuñez Email: onunez@iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ El 29/04/2009, a las 23:26, Carlos J. Gil Bellosta escribió:> Hola, ¿qué tal? > > Tengo una pregunta de estadística (marginalmente relacionada con R). > > Me llegan unos datos y quiero ajustarlos vía máxima verosimilitud. Sin > embargo, no tengo una sóla familia de distribuciones (por ejemplo, N > (mu, > sigma) sino varias, media docena de ellas. Y se me pide que encuentre > "la que mejor se ajusta a los datos". > > Ordenar por el p-valor de un test de bondad de ajuste (que es lo > que he > heredado) me parece problemático: unas distribuciones son más > "parsimoniosas" que otras y no he oído de algún equivalente al AIC > para > este problema. > > Se me ocurre alguna idea peregrina (como un "bootstrap" en los datos > originales para estimar la variabilidad de la bondad del ajuste sobre > las submuestras. Pero me gustaría saber si alguien conoce alguna > referencia acerca de este problema. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2009-Apr-30 13:41 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Hola, ¿qué tal? Agradezco las dos respuestas anteriores. Pero creo que voy a tener que redefinir mi pregunta por medio de un "experimento mental". Es el siguiente: Alguien nos da dos cosas: 1) Un vector de 100 números, X. 2) Un "menú" de distribuciones de probabilidad (exponencial, lognormal, gamma, weibull, etc.) Y nos hace una pregunta: ¿con cuál de las anteriores distribuciones (y con qué parámetros) he generado aleatoriamente X? Uno dice: para cada una de las distribuciones de mi "menú", ajusto vía máxima verosimilitud los parámetros, aplico un test de bondad de ajuste y ordeno los p-valores de menor a mayor. Una cuestión que surge es: imaginemos que X procede de una exponencial. Sabemos que la distribución exponencial es un caso particular de la weibull, sólo que más "parsimoniosa". Por eso, uno espera que siempre se ajuste mejor a los datos (lo que pasaría al comparar dos modelos anidados, vamos). De alguna manera me gustaría penalizar la complejidad adicional de la weibul para, al menos, poder en algunas ocasiones preferir la exponencial a ella. Pero no he visto referencias en este ámbito... ¿algún cable? Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 30 de abril de 2009 12:22, Olivier Nuñez <onunez en iberstat.es> escribió:> Una posible solución a tu problema consiste en construir el cierre convexo > de estas familias de distribuciones. > Supongamos que tengas sólo dos familias: N(m,s) y T(z) . > Entonces, el cierre convexo de ambas familias sería la familia parametrica: > C(p,m,s,z) = p*N(m,s) + (1-p)*T(z) > donde p es un parametro que toma valores entre 0 y 1. > En este caso, podrías aplicar el test de maxima verosimilitud para tomar una > decisión sobre p. > El package adecuado para este tipo de modelo debería ser flexmix. > Un saludo. Olivier > -- > -- > ____________________________________ > Olivier G. Nuñez > Email: onunez en iberstat.es > Tel : +34 663 03 69 09 > Web: http://www.iberstat.es > ____________________________________ > > > > El 29/04/2009, a las 23:26, Carlos J. Gil Bellosta escribió: > > Hola, ¿qué tal? > Tengo una pregunta de estadística (marginalmente relacionada con R). > Me llegan unos datos y quiero ajustarlos vía máxima verosimilitud. Sin > embargo, no tengo una sóla familia de distribuciones (por ejemplo, N(mu, > sigma) sino varias, media docena de ellas. Y se me pide que encuentre > "la que mejor se ajusta a los datos". > Ordenar por el p-valor de un test de bondad de ajuste (que es lo que he > heredado) me parece problemático: unas distribuciones son más > "parsimoniosas" que otras y no he oído de algún equivalente al AIC para > este problema. > Se me ocurre alguna idea peregrina (como un "bootstrap" en los datos > originales para estimar la variabilidad de la bondad del ajuste sobre > las submuestras. Pero me gustaría saber si alguien conoce alguna > referencia acerca de este problema. > Un saludo, > Carlos J. Gil Bellosta > http://www.datanalytics.com > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Olivier Nuñez
2009-Apr-30 14:05 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Si no tienes un modelo "nested" el criterio de parsimonía es de difícil aplicación. Te aconsejo pues, utilizar una distribución gamma extendida (incluye la lognormal, la weibull y la exponencial), y realizar un contraste sobre el tercer parámetro (utilizar package "lmom") Un saludo. Olivier -- ____________________________________ Olivier G. Nuñez Email: onunez@iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ El 30/04/2009, a las 15:41, Carlos J. Gil Bellosta escribió:> Hola, ¿qué tal? > > Agradezco las dos respuestas anteriores. Pero creo que voy a tener que > redefinir mi pregunta por medio de un "experimento mental". Es el > siguiente: > > Alguien nos da dos cosas: > > 1) Un vector de 100 números, X. > > 2) Un "menú" de distribuciones de probabilidad (exponencial, > lognormal, gamma, weibull, etc.) > > Y nos hace una pregunta: ¿con cuál de las anteriores distribuciones (y > con qué parámetros) he generado aleatoriamente X? > > Uno dice: para cada una de las distribuciones de mi "menú", ajusto vía > máxima verosimilitud los parámetros, aplico un test de bondad de > ajuste y ordeno los p-valores de menor a mayor. > > Una cuestión que surge es: imaginemos que X procede de una > exponencial. Sabemos que la distribución exponencial es un caso > particular de la weibull, sólo que más "parsimoniosa". Por eso, uno > espera que siempre se ajuste mejor a los datos (lo que pasaría al > comparar dos modelos anidados, vamos). > > De alguna manera me gustaría penalizar la complejidad adicional de la > weibul para, al menos, poder en algunas ocasiones preferir la > exponencial a ella. Pero no he visto referencias en este ámbito... > ¿algún cable? > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > > > El día 30 de abril de 2009 12:22, Olivier Nuñez > <onunez@iberstat.es> escribió: >> Una posible solución a tu problema consiste en construir el cierre >> convexo >> de estas familias de distribuciones. >> Supongamos que tengas sólo dos familias: N(m,s) y T(z) . >> Entonces, el cierre convexo de ambas familias sería la familia >> parametrica: >> C(p,m,s,z) = p*N(m,s) + (1-p)*T(z) >> donde p es un parametro que toma valores entre 0 y 1. >> En este caso, podrías aplicar el test de maxima verosimilitud para >> tomar una >> decisión sobre p. >> El package adecuado para este tipo de modelo debería ser flexmix. >> Un saludo. Olivier >> -- >> -- >> ____________________________________ >> Olivier G. Nuñez >> Email: onunez@iberstat.es >> Tel : +34 663 03 69 09 >> Web: http://www.iberstat.es >> ____________________________________ >> >> >> >> El 29/04/2009, a las 23:26, Carlos J. Gil Bellosta escribió: >> >> Hola, ¿qué tal? >> Tengo una pregunta de estadística (marginalmente relacionada con R). >> Me llegan unos datos y quiero ajustarlos vía máxima verosimilitud. >> Sin >> embargo, no tengo una sóla familia de distribuciones (por ejemplo, >> N(mu, >> sigma) sino varias, media docena de ellas. Y se me pide que encuentre >> "la que mejor se ajusta a los datos". >> Ordenar por el p-valor de un test de bondad de ajuste (que es lo >> que he >> heredado) me parece problemático: unas distribuciones son más >> "parsimoniosas" que otras y no he oído de algún equivalente al AIC >> para >> este problema. >> Se me ocurre alguna idea peregrina (como un "bootstrap" en los datos >> originales para estimar la variabilidad de la bondad del ajuste sobre >> las submuestras. Pero me gustaría saber si alguien conoce alguna >> referencia acerca de este problema. >> Un saludo, >> Carlos J. Gil Bellosta >> http://www.datanalytics.com >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >>[[alternative HTML version deleted]]
Jorge Ivan Velez
2009-Apr-30 15:22 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Buenos dias Carlos, Creo que con las respuestas enviadas por Olivier tienes suficientes elementos para trabajar. Sin embargo, aquí van mis $0.02: 1. Usar bootstrap a. Estimar los parámetros de la gama de distribuciones que tienes disponibles. Supongamos que estimas los parámetros para F*. Para ello la functión fitditr() en MASS puede ser de gran ayuda. b. Generar N muestras de tamaño n a partir de F*. N es el número de simulaciones (digamos 10000) y n la longitud de tu vector de datos. c. Determinar si la distribución de tus datos es similar a los datos generados por F* en cada una de las N simulaciones. En este caso la función ks.test() sería de utilidad. Te recomiendo extraer el valor p y determinar la proporción de veces que p > alpha, con alpha algún nivel de significancia (pre-especificado, por ejemplo). d. Repetir a, b y c para las demás distribuciones. Al final, la mejor distribución es la cual la proporción de valores p > alpha sea mayor. 2. Utilizar la función sm.density.compare en la libreria sm para comparar las funciones de densidad de tus datos con cada una de las funciones de densidad que quieres ajustar (por ejemplo F*). Este procedimiento usa simulación para comparar los kernels de tus datos con los de F*. Nuevamente necesitas simular algunas observaciones de F*. Espero sea de utilidad, Jorge Ivan Velez 2009/4/29 Carlos J. Gil Bellosta <cgb@datanalytics.com>> Hola, ¿qué tal? > > Tengo una pregunta de estadística (marginalmente relacionada con R). > > Me llegan unos datos y quiero ajustarlos vía máxima verosimilitud. Sin > embargo, no tengo una sóla familia de distribuciones (por ejemplo, N(mu, > sigma) sino varias, media docena de ellas. Y se me pide que encuentre > "la que mejor se ajusta a los datos". > > Ordenar por el p-valor de un test de bondad de ajuste (que es lo que he > heredado) me parece problemático: unas distribuciones son más > "parsimoniosas" que otras y no he oído de algún equivalente al AIC para > este problema. > > Se me ocurre alguna idea peregrina (como un "bootstrap" en los datos > originales para estimar la variabilidad de la bondad del ajuste sobre > las submuestras. Pero me gustaría saber si alguien conoce alguna > referencia acerca de este problema. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2009-Apr-30 15:25 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Muchas gracias por la contestación (y bienvenido a la lista). Pensé en utilizar AIC pero me da algo de miedo cuando los modelos no están anidados (la exponencial lo está, en cierto modo, en la weibull), pero, en general... ¿Has probado a experimentar con tu código y a probar distintos valores del número de datos y de distribuciones con los que los generas? Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 30 de abril de 2009 16:23, Pablo Emilio Verde <PabloEmilio.Verde en uni-duesseldorf.de> escribió:> Este ejemplo te puede servir. Utilizo las distribuciones que estan la > funcion survreg() del paquete survival y extraigo en AIC con la > funcion extractAIC() del paquete MASS. > > ################################################# > set.seed(123) > x <- rweibull(100, shape = 2, scale = 10) > > library(MASS) # para aplicar extractAIC > library(survival) # para survreg > > distrib <-c("weibull", "exponential", "gaussian", "logistic", > "lognormal", "loglogistic") > > for( Dis in distrib){ tmpf <-extractAIC(survreg(Surv(x)~1, dist=Dis)) > cat(Dis, ", AIC = ",tmpf[2], "\n") > } > ################################################# > > El menor valor de AIC indica la distribucion de probabiliad que > potencialmente genero los datos. > > Pablo
Carlos J. Gil Bellosta
2009-Apr-30 16:23 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Muchísimas gracias... voy a echarle un vistazo a ver qué tal se comporta... El día 30 de abril de 2009 18:20, Jorge Ivan Velez <jorgeivanvelez en gmail.com> escribió:> > Carlos, > Esta es mi propuesta: > # Librerias > require(MASS) > require(survival) > require(sm) > # Distribuciones comunes en MASS y survival > dis <- c("exponential", "lognormal", "logistic", "weibull") > # Vector de datos > set.seed(123) > x <- rweibull(100, shape = 2, scale = 10) > n <- length(x) > # Ejemplo para la weibull > param <- fitdistr(x,dis[4])[[1]] > simu <- rweibull(n, param[1], param[2]) > # AIC > tmpf <- extractAIC(survreg(Surv(x)~1, dist=dis[4]))[2] > tmpf #[1] 579.6235 > # Densidades > ddx <- density(x) > ddsimu <- density(simu) > plot(ddx, xlim=range(ddx$x, ddsimu$x), ylim=range(ddx$y, ddsimu$y)) > points(ddsimu, type='l', col=2) > legend('topleft',c('Real','Simulados'), col=1:2, lty=1) > > # Ahora comparemos las densidades via sm.density.compare en sm > # Preparando los datos > y <- c(x, simu) > gr <- rep(c(1,2), each = n) > sm.density.compare(y, gr, model="equal") # Test of equal densities: > p-value = 0.56 > Lo que quedaria faltando es la implementación del bootstrap para el AIC, > pero creo que ya es un poco más fácil. Podrías contruir todo lo anterior en > una función y luego usar replicate(). > Otra opción es usar ks.test() para comparar la distribución de x con la > distribución de los datos generados via simulación: > > # Esto es SOLO para la weibull > # -- habria que modificarlo para las demas > estimeKS <- function(x, alpha=0.05){ > > # Estimación de la distribución (dist) y cálculo del AIC > n <- length(x) > param <- fitdistr(x,dis[4])[[1]] > simu <- rweibull(n, param[1], param[2]) > # KS > tmpf <- ks.test(x, simu)$p.value > tmpf > alpha # Acepto Ho: F(x) = G(simu)? > } > # -------- > # Ejemplo > # -------- > # Datos > set.seed(123) > x <- rweibull(100, shape = 2, scale = 10) > KSs <- replicate(1000, estimeKS(x)) > sum(KSs)/1000 # [1] 0.998 > > Un saludo, > Jorge Ivan Velez > > > 2009/4/30 Jorge Ivan Velez <jorgeivanvelez en gmail.com> >> >> Hola Carlos, >> Podrías hacer las simulaciones con diferentes tamaños de muestra (n) >> cuando generas las observaciones de la distribución específica. Lo común es >> usar n como la longitud del vector que quieres ajustar a determinada >> distribución; sin embargo, esto no quiere decir que no puedes utilizar algún >> otro valor. >> Ten en cuenta que bootstrap es importante para validar que efectivamente >> la distribución que ajustas es "la que potencialmente" generó los datos como >> dice Pablo. >> >> En cuanto al programa, sería algo como lo siguiente ( en palabras :-( ): >> 1. Tomar el vector de observaciones (digamos x) y ajustar una distribución >> (digamos F*) dentro de la gama de posibilidades usando, por ejemplo, >> fitdistr en MASS. >> 2. Generar n (o más) observaciones de F* y calcular el AIC. (Deberías usar >> el código de Pablo :-) ). >> 3. Repetir el paso anterior N veces y construir, por ejemplo, un intervalo >> de confianza para el AIC estimado. Para ello puedes usar la función boot en >> la libreria boot. >> 4. Repetir 1-3 para las demás distribuciones en tu gamma. >> 5. Reportar los resultados y comparar. >> Pablo: Muchas gracias por el código que envías; es fácil de implementar y >> entender. Alguna idea de cómo extenderlo, por ejemplo a la distribución >> gamma? >> Un saludo a ambos, >> Jorge Ivan Velez >> >> 2009/4/30 Carlos J. Gil Bellosta <cgb en datanalytics.com> >>> >>> Muchas gracias por la contestación (y bienvenido a la lista). >>> >>> Pensé en utilizar AIC pero me da algo de miedo cuando los modelos no >>> están anidados (la exponencial lo está, en cierto modo, en la >>> weibull), pero, en general... >>> >>> ¿Has probado a experimentar con tu código y a probar distintos valores >>> del número de datos y de distribuciones con los que los generas? >>> >>> Un saludo, >>> >>> Carlos J. Gil Bellosta >>> http://www.datanalytics.com >>> >>> El día 30 de abril de 2009 16:23, Pablo Emilio Verde >>> <PabloEmilio.Verde en uni-duesseldorf.de> escribió: >>> > Este ejemplo te puede servir. Utilizo las distribuciones que estan la >>> > funcion survreg() del paquete survival y extraigo en AIC con la >>> > funcion extractAIC() del paquete MASS. >>> > >>> > ################################################# >>> > set.seed(123) >>> > x <- rweibull(100, shape = 2, scale = 10) >>> > >>> > library(MASS) # para aplicar extractAIC >>> > library(survival) # para survreg >>> > >>> > distrib <-c("weibull", "exponential", "gaussian", "logistic", >>> > "lognormal", "loglogistic") >>> > >>> > for( Dis in distrib){ tmpf <-extractAIC(survreg(Surv(x)~1, dist=Dis)) >>> > cat(Dis, ", AIC = ",tmpf[2], "\n") >>> > } >>> > ################################################# >>> > >>> > El menor valor de AIC indica la distribucion de probabiliad que >>> > potencialmente genero los datos. >>> > >>> > Pablo >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es en r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > >
Kjetil Halvorsen
2009-Apr-30 16:23 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
2009/4/30 Carlos J. Gil Bellosta <cgb@datanalytics.com>> Muchas gracias por la contestación (y bienvenido a la lista). > > Pensé en utilizar AIC pero me da algo de miedo cuando los modelos no > están anidados (la exponencial lo está, en cierto modo, en la > weibull), pero, en general... >No tienes porque tener miedo porque las distribuciones n o estan encajonadas! y el exponencial esta encajonada dentro del weibull, que quiere decir "en cierto modo"? Lo de modelos anidados se usan como supuesto para probar algunos resultados asintóticoa para AIC. Pero AIC se puede justificar solo, sin teoria asintótica! Primero, el estimador máximo verósimil esta estimando ("es consistente para") el parámetro menos falso, definido como el parámetro del modelo M que minimiza la distancia Kullback-Leibler (KL) de la distribución verdadero al modelo M. Y se puede mostrar que el criterio AIC esta estimando la distancia KL de la distribución verdadera al modelo M! Esto es válido para cada uno de varioa clases de modelos M1, M2, M3, ... y elijiendo el modelo que minimiza AIC1, AIC2, ... es elegir el modelo más cerca del modelo verdadero (estimado), en el sentido de KL. Finalmente, para matar la relevancia del criterio "anidado", considerar el uso común de AIC para elegir entre covariables en modelos de regresion. Supón que tenemos covariables}x1, x2, x3, ... y escribimos el modelo usando covariables x1 y x3 solo como M13, etc. Los modelos M1 y M3 son claramente no anidados, sin embargo todo el mundo usa AIC para elegir entre ellos. Kjetil> > ¿Has probado a experimentar con tu código y a probar distintos valores > del número de datos y de distribuciones con los que los generas? > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > El día 30 de abril de 2009 16:23, Pablo Emilio Verde > <PabloEmilio.Verde@uni-duesseldorf.de> escribió: > > Este ejemplo te puede servir. Utilizo las distribuciones que estan la > > funcion survreg() del paquete survival y extraigo en AIC con la > > funcion extractAIC() del paquete MASS. > > > > ################################################# > > set.seed(123) > > x <- rweibull(100, shape = 2, scale = 10) > > > > library(MASS) # para aplicar extractAIC > > library(survival) # para survreg > > > > distrib <-c("weibull", "exponential", "gaussian", "logistic", > > "lognormal", "loglogistic") > > > > for( Dis in distrib){ tmpf <-extractAIC(survreg(Surv(x)~1, dist=Dis)) > > cat(Dis, ", AIC = ",tmpf[2], "\n") > > } > > ################################################# > > > > El menor valor de AIC indica la distribucion de probabiliad que > > potencialmente genero los datos. > > > > Pablo > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- "Mathematics is not the rigid and rigidity-producing schema that the layman thinks it is; rather, in it we find ourselves at that meeting point of constraint and freedom that is the very essence of human nature." - Hermann Weyl [[alternative HTML version deleted]]
Olivier Nuñez
2009-Apr-30 16:53 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
El problema del uso del AIC en modelos no anidados es simplemente que es menos preciso (varía más). Y por lo tanto es un estimador menos fiable de la distancia de KL. Utilizar un modelo de regresión basado en la gamma extendida, debería aumentar sustancialmente la fiabilidad de la decisión. Un saludo. Olivier -- ____________________________________ Olivier G. Nuñez Email: onunez@iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ El 30/04/2009, a las 18:23, Kjetil Halvorsen escribió:> 2009/4/30 Carlos J. Gil Bellosta <cgb@datanalytics.com> > >> Muchas gracias por la contestación (y bienvenido a la lista). >> >> Pensé en utilizar AIC pero me da algo de miedo cuando los modelos no >> están anidados (la exponencial lo está, en cierto modo, en la >> weibull), pero, en general... >> > > No tienes porque tener miedo porque las distribuciones n o estan > encajonadas! y el exponencial esta encajonada dentro > del weibull, que quiere decir "en cierto modo"? > > Lo de modelos anidados se usan como supuesto para probar algunos > resultados > asintóticoa para AIC. Pero AIC se puede justificar solo, sin teoria > asintótica! > > Primero, el estimador máximo verósimil esta estimando ("es consistente > para") el > parámetro menos falso, definido como el parámetro del modelo M que > minimiza > la distancia Kullback-Leibler (KL) de la distribución verdadero al > modelo M. > > > Y se puede mostrar que el criterio AIC esta estimando la distancia KL > de la distribución verdadera al modelo M! Esto es válido para cada > uno de > varioa clases de modelos M1, M2, M3, ... > y elijiendo el modelo que minimiza AIC1, AIC2, ... es elegir el > modelo más > cerca > del modelo verdadero (estimado), en el sentido de KL. > > Finalmente, para matar la relevancia del criterio "anidado", > considerar el > uso común de AIC para elegir entre > covariables en modelos de regresion. Supón que tenemos covariables} > x1, x2, > x3, ... y escribimos el modelo > usando covariables x1 y x3 solo como M13, etc. Los modelos M1 y M3 son > claramente > no anidados, sin embargo todo el mundo usa AIC para elegir entre > ellos. > > Kjetil > > >> >> ¿Has probado a experimentar con tu código y a probar distintos >> valores >> del número de datos y de distribuciones con los que los generas? >> >> Un saludo, >> >> Carlos J. Gil Bellosta >> http://www.datanalytics.com >> >> El día 30 de abril de 2009 16:23, Pablo Emilio Verde >> <PabloEmilio.Verde@uni-duesseldorf.de> escribió: >>> Este ejemplo te puede servir. Utilizo las distribuciones que >>> estan la >>> funcion survreg() del paquete survival y extraigo en AIC con la >>> funcion extractAIC() del paquete MASS. >>> >>> ################################################# >>> set.seed(123) >>> x <- rweibull(100, shape = 2, scale = 10) >>> >>> library(MASS) # para aplicar extractAIC >>> library(survival) # para survreg >>> >>> distrib <-c("weibull", "exponential", "gaussian", "logistic", >>> "lognormal", "loglogistic") >>> >>> for( Dis in distrib){ tmpf <-extractAIC(survreg(Surv(x)~1, >>> dist=Dis)) >>> cat(Dis, ", AIC = ",tmpf[2], "\n") >>> } >>> ################################################# >>> >>> El menor valor de AIC indica la distribucion de probabiliad que >>> potencialmente genero los datos. >>> >>> Pablo >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > > -- > "Mathematics is not the rigid and rigidity-producing schema that > the layman > thinks it is; rather, in it we find ourselves at that meeting point of > constraint and freedom that is the very essence of human nature." > - Hermann Weyl > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]
Kjetil Halvorsen
2009-Apr-30 18:47 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
009/4/30 Olivier Nuñez <onunez@iberstat.es>> El problema del uso del AIC en modelos no anidados es simplemente que es > menos preciso (varía más). > Y por lo tanto es un estimador menos fiable de la distancia de KL. > Utilizar un modelo de regresión basado en la gamma extendida, > debería aumentar sustancialmente la fiabilidad de la decisión. > Un saludo. Olivier >Bién. Lo que yo he dicho es que AIC es _ correcto_ también el el caso sin modelos anidados. Puede ser que en un caso particular existen mejores métodos, pero el miedo de usar AIC en esta situación no tiene fundamento. Olivier dice que en esta situacion, AIC es peor como estimador de la distancia KL. Puede ser, ¿tienes un mejor estimador? De todos modos, me gustaria una referencia!! Kjetil> ____________________________________ > > Olivier G. Nuñez > Email: onunez@iberstat.es > Tel : +34 663 03 69 09 > Web: http://www.iberstat.es > > ____________________________________ > > > > > El 30/04/2009, a las 18:23, Kjetil Halvorsen escribió: > > 2009/4/30 Carlos J. Gil Bellosta <cgb@datanalytics.com> > > Muchas gracias por la contestación (y bienvenido a la lista). > > Pensé en utilizar AIC pero me da algo de miedo cuando los modelos no > están anidados (la exponencial lo está, en cierto modo, en la > weibull), pero, en general... > > > No tienes porque tener miedo porque las distribuciones n o estan > encajonadas! y el exponencial esta encajonada dentro > del weibull, que quiere decir "en cierto modo"? > > Lo de modelos anidados se usan como supuesto para probar algunos resultados > asintóticoa para AIC. Pero AIC se puede justificar solo, sin teoria > asintótica! > > Primero, el estimador máximo verósimil esta estimando ("es consistente > para") el > parámetro menos falso, definido como el parámetro del modelo M que minimiza > la distancia Kullback-Leibler (KL) de la distribución verdadero al modelo > M. > > > Y se puede mostrar que el criterio AIC esta estimando la distancia KL > de la distribución verdadera al modelo M! Esto es válido para cada uno de > varioa clases de modelos M1, M2, M3, ... > y elijiendo el modelo que minimiza AIC1, AIC2, ... es elegir el modelo más > cerca > del modelo verdadero (estimado), en el sentido de KL. > > Finalmente, para matar la relevancia del criterio "anidado", considerar el > uso común de AIC para elegir entre > covariables en modelos de regresion. Supón que tenemos covariables}x1, x2, > x3, ... y escribimos el modelo > usando covariables x1 y x3 solo como M13, etc. Los modelos M1 y M3 son > claramente > no anidados, sin embargo todo el mundo usa AIC para elegir entre ellos. > > Kjetil > > > > ¿Has probado a experimentar con tu código y a probar distintos valores > del número de datos y de distribuciones con los que los generas? > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > El día 30 de abril de 2009 16:23, Pablo Emilio Verde > <PabloEmilio.Verde@uni-duesseldorf.de> escribió: > > Este ejemplo te puede servir. Utilizo las distribuciones que estan la > funcion survreg() del paquete survival y extraigo en AIC con la > funcion extractAIC() del paquete MASS. > > ################################################# > set.seed(123) > x <- rweibull(100, shape = 2, scale = 10) > > library(MASS) # para aplicar extractAIC > library(survival) # para survreg > > distrib <-c("weibull", "exponential", "gaussian", "logistic", > "lognormal", "loglogistic") > > for( Dis in distrib){ tmpf <-extractAIC(survreg(Surv(x)~1, dist=Dis)) > cat(Dis, ", AIC = ",tmpf[2], "\n") > } > ################################################# > > El menor valor de AIC indica la distribucion de probabiliad que > potencialmente genero los datos. > > Pablo > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > "Mathematics is not the rigid and rigidity-producing schema that the layman > thinks it is; rather, in it we find ourselves at that meeting point of > constraint and freedom that is the very essence of human nature." > - Hermann Weyl > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >-- "Mathematics is not the rigid and rigidity-producing schema that the layman thinks it is; rather, in it we find ourselves at that meeting point of constraint and freedom that is the very essence of human nature." - Hermann Weyl [[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2009-Apr-30 19:39 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Hola, ¿qué tal? Tengo que emitir una excusa parcial por haberle temido al AIC y por hablerme temblado la mano al teclear "anidado". Ahora cuento por qué. Estoy leyendo (y haciendo cosas relacionadas con) el siguiente artículo: http://mpra.ub.uni-muenchen.de/10423/1/MPRA_paper_10423.pdf En él se buscan distribuciones que mejor ajustan un vector de datos (pérdidas económicas por catástrofes). Entre las distribuciones candidatas están la Weibull y la exponencial. En este ámbito, más que "anidadas", prefiero decir que la una es una caso particular de la otra. ¿Cómo se ajustan las distribuciones? Por máxima verosimilitud. ¿Cómo se elige la "mejor"? Aplicando (versiones de) los tests de bondad de ajuste habituales (Kolmogorov-Smirnov, Anderson-Darling, etc.). Y yo me planteé lo siguiente: si la exponencial es un caso particular de la Weibull, aplicando este procedimiento, "siempre" se va a preferir la segunda. Alguien que había hecho las cuentas me lo corroboró (¡incluso cuando los datos proceden de una exponencial!). Fue por eso que escribí a la lista: ¿existe algún modo de penalizar por complejidad? Mi primera referencia al AIC vino por analogía (dado que la mayor parte de nosotros lo habrá utilizado al elegir modelos más que para comparar el ajuste de dos distribuciones, dejando de lado las discusiones sobre si, en el fondo, es o no lo mismo). Por ejemplo, ahora podríamos discutir, si a la luz de los comentarios de Kjetil, el AIC es en sí una medida de bondad de ajuste (por su relación con la distancia de KL, etc.). No he visto que nadie lo use como tal en este campo que me ocupa. Pero igual es válido: el que nadie haga algo no significa que no sea factible. Y, bueno, agradezco a todos los que han participado en este hilo el interés por mi cuestión. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com
Olivier Nuñez
2009-Apr-30 20:17 UTC
[R-es] Una pregunta de estadística (marginalmente relacionada con R)
Kjetil, no creo que Carlos le tenga realmente "miedo" al AIC. Fue sólo una manera de expresar dudas sobre la eficiencia de este enfoque. En cuanto a la referencia, puedes echar un vistazo a la charla de Ripley http://www.stats.ox.ac.uk/~ripley/Nelder80.pdf Pero, es un hecho bastante conocido y no creo que tengas muchas dificultad en encontrar referencias con más detalles. Ahora bien, ¿Existe un mejor estimador? No lo sé. Pero si sé, que si utilizas una familia bastante general como la gamma extendida, el uso del AIC debería ser más eficiente. Sin embargo, hay que reconocer que aplicar directamente el criterio del AIC para decidir cual familia de distribución se ajusta mejor a los datos, resulta bastante cómodo y da por lo visto buenos resultados. Así que, es muy probable que el método que propones sea el mejor compromiso entre eficiencia y facilidad de implementación. Un saludo. Olivier El 30/04/2009, a las 20:47, Kjetil Halvorsen escribió:> 009/4/30 Olivier Nuñez <onunez@iberstat.es> > El problema del uso del AIC en modelos no anidados es simplemente > que es menos preciso (varía más). > Y por lo tanto es un estimador menos fiable de la distancia de KL. > Utilizar un modelo de regresión basado en la gamma extendida, > debería aumentar sustancialmente la fiabilidad de la decisión. > Un saludo. Olivier > > Bién. Lo que yo he dicho es que AIC es _ correcto_ también el el caso > sin modelos anidados. Puede ser que en un caso particular existen > mejores métodos, > pero el miedo de usar AIC en esta situación no tiene fundamento. > Olivier dice que en esta situacion, AIC es peor como estimador de la > distancia KL. Puede ser, ¿tienes un mejor estimador? De todos modos, > me gustaria una referencia!! > > Kjetil > > > > > ____________________________________ > > Olivier G. Nuñez > Email: onunez@iberstat.es > Tel : +34 663 03 69 09 > Web: http://www.iberstat.es > > ____________________________________ > > > > > El 30/04/2009, a las 18:23, Kjetil Halvorsen escribió: > >> 2009/4/30 Carlos J. Gil Bellosta <cgb@datanalytics.com> >> >>> Muchas gracias por la contestación (y bienvenido a la lista). >>> >>> Pensé en utilizar AIC pero me da algo de miedo cuando los modelos no >>> están anidados (la exponencial lo está, en cierto modo, en la >>> weibull), pero, en general... >>> >> >> No tienes porque tener miedo porque las distribuciones n o estan >> encajonadas! y el exponencial esta encajonada dentro >> del weibull, que quiere decir "en cierto modo"? >> >> Lo de modelos anidados se usan como supuesto para probar algunos >> resultados >> asintóticoa para AIC. Pero AIC se puede justificar solo, sin teoria >> asintótica! >> >> Primero, el estimador máximo verósimil esta estimando ("es >> consistente >> para") el >> parámetro menos falso, definido como el parámetro del modelo M que >> minimiza >> la distancia Kullback-Leibler (KL) de la distribución verdadero al >> modelo M. >> >> >> Y se puede mostrar que el criterio AIC esta estimando la distancia KL >> de la distribución verdadera al modelo M! Esto es válido para cada >> uno de >> varioa clases de modelos M1, M2, M3, ... >> y elijiendo el modelo que minimiza AIC1, AIC2, ... es elegir el >> modelo más >> cerca >> del modelo verdadero (estimado), en el sentido de KL. >> >> Finalmente, para matar la relevancia del criterio "anidado", >> considerar el >> uso común de AIC para elegir entre >> covariables en modelos de regresion. Supón que tenemos covariables} >> x1, x2, >> x3, ... y escribimos el modelo >> usando covariables x1 y x3 solo como M13, etc. Los modelos M1 y M3 >> son >> claramente >> no anidados, sin embargo todo el mundo usa AIC para elegir entre >> ellos. >> >> Kjetil >> >> >>> >>> ¿Has probado a experimentar con tu código y a probar distintos >>> valores >>> del número de datos y de distribuciones con los que los generas? >>> >>> Un saludo, >>> >>> Carlos J. Gil Bellosta >>> http://www.datanalytics.com >>> >>> El día 30 de abril de 2009 16:23, Pablo Emilio Verde >>> <PabloEmilio.Verde@uni-duesseldorf.de> escribió: >>>> Este ejemplo te puede servir. Utilizo las distribuciones que >>>> estan la >>>> funcion survreg() del paquete survival y extraigo en AIC con la >>>> funcion extractAIC() del paquete MASS. >>>> >>>> ################################################# >>>> set.seed(123) >>>> x <- rweibull(100, shape = 2, scale = 10) >>>> >>>> library(MASS) # para aplicar extractAIC >>>> library(survival) # para survreg >>>> >>>> distrib <-c("weibull", "exponential", "gaussian", "logistic", >>>> "lognormal", "loglogistic") >>>> >>>> for( Dis in distrib){ tmpf <-extractAIC(survreg(Surv(x)~1, >>>> dist=Dis)) >>>> cat(Dis, ", AIC = ",tmpf[2], "\n") >>>> } >>>> ################################################# >>>> >>>> El menor valor de AIC indica la distribucion de probabiliad que >>>> potencialmente genero los datos. >>>> >>>> Pablo >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >> >> >> >> -- >> "Mathematics is not the rigid and rigidity-producing schema that >> the layman >> thinks it is; rather, in it we find ourselves at that meeting >> point of >> constraint and freedom that is the very essence of human nature." >> - Hermann Weyl >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > "Mathematics is not the rigid and rigidity-producing schema that > the layman thinks it is; rather, in it we find ourselves at that > meeting point of constraint and freedom that is the very essence of > human nature." > - Hermann Weyl > >[[alternative HTML version deleted]]