[R-es] Goodness
J. Miguel Marin
jmmarin en est-econ.uc3m.es
Mar Feb 9 19:19:15 CET 2010
Hola,
leyendo entre líneas yo creo que Daniel busca algo parecido a lo que
tiene Statgraphics, que tiene una batería de distribuciones para
ajustar los datos "a tu gusto".
Lo más parecido que tiene R es justamente el "fitdistr".
En realidad, yo creo que Daniel busca una generalización de un test de
Kolmogorov-Smirnov "para cualquier cosa", aunque me temo que a pesar de
que eso es efectivamente erróneo mucha gente de Ciencias lo usa en plan
ciego.
> Estoy de acuerdo con Rubén.
>
> El planteamiento de Daniel me recuerda a una pregunta típica en
> Médicos, Biólogos, Ingenieros, con poca experiencia en Estadística.
> La pregunta a menudo es: ¿Qué modelo de regresión no lineal será el
> que mejor se ajusta para explicar mis observaciones de Y en función
> de X? y con algo de sorna siempre contesto: "El polinomio con n-1
> datos".
>
> Creo que este caso es equivalente: La distribución que mejor se
> ajuste a una colección de datos no le veo sentido. Suponiendo que se
> han obtenido mediante muestreo, se puede dar un ajuste espúreo a
> cualquier distribución. Algunas convergen bastante bien sobre otras
> bajo determinadas condiciones.
>
> En una distribución creo que es preciso plantear el modelo de
> generación de los datos o si ello no es posible conformarse con una
> estimación de la densidad mediante procedimientos como las
> estimaciones basadas en funciones núcleo. En concreto la función
> "density" del paquete stats estima la densidad de una variable a
> partir de un conjunto de datos mediante algunas de las funciones
> núcleo más habituales.
>
> Proponer una función de distribución con toda su parsimonia en los
> parámetros sin justificación en la generación de los datos a mí me
> parece poco defendible a partir de una mera falta de desajuste de las
> observaciones respecto de un modelo del que no se justifica por qué
> este y no otro.
>
> Si las observaciones proceden de una mezcla de distribuciones, no
> habrá ningún modelo sencillo, del grupo de los que podríamos llamar
> básicos, que realmente prediga las observaciones y no le veo ningún
> sentido a la propuesta de Daniel.
>
>
> Rubén Roa escribió:
>> -----Mensaje original-----
>> De: r-help-es-bounces en r-project.org
>> [mailto:r-help-es-bounces en r-project.org] En nombre de daniel pacheco
>> gomez Enviado el: martes, 09 de febrero de 2010 12:02
>> Para: r-help-es en r-project.org
>> Asunto: [R-es] Goodness
>>
>>
>> Hola,
>>
>> LLevo buscando desde hace tiempo como hacer el Goodness of fit test
>> en R. Es decir, me explico, intento hacer una cosa parecida que se
>> hace en Minitab, por ejemplo, yo tengo un conjunto de datos, y lo
>> que quiero es sabes que tipo de distibución es, en minitab se hace
>> un histograma para ver si se ajusta bien o no a la campana de Gauss,
>> luego vemos si aproximar la distribución de la muestra por una
>> Normal es lícito. Es decir, minitab genera un Probability Plot of
>> Adjusted Value y devuelve el Anderson Darling y el P-Value, al hacer
>> esto se observa que el p-value del contraste de hipótesis utilizado
>> es menor que el nivel de significación estandar(0,05), luego no
>> podemos aceptar que la hipótesis nula de que la muestra provenga de
>> una distribución normal.
>>
>> Es entonces cuando en minitab se le aplica el "Goodness of Fit
>> Test", y se observe que distribución se ajusta mejor a la muestra
>> obtenida. Entonces se le aplica el Process capability según la
>> distribución y se analizan los resultados.
>>
>> Mi duda es, ¿exite alguna función-libreria-paquete, que al pasarle
>> la muestra, te diga que tipo de distribución es?.
>>
>> ---
>> No lo creo, no es está en la filosofía de R una forma tan automática
>> de responder tus preguntas.
>> Lo que tú quieres hacer yo lo hago con fitdistr de MASS, y si tengo
>> dos o mas distribuciones que pueden explicar mis datos, uso el AIC.
>> Lo de qué distribución corresponde (nota la diferencia con 'mejor
>> ajusta') a tus datos, lo puedes elucidar pensando en la naturaleza
>> de tus datos.
>> Son continuos o discretos?, univariados o multivariados?.
>> Si son discretos, son conteos? (Poisson?, binomial negativa?), son
>> binarios? (binomial)?, tienen exceso de ceros? (sobredispersos)?
>> Si son continuos, admiten cero y valores negativos? (normal?), sólo
>> valores positivos? (lognormal {proceso multiplicativo}, gamma {suma
>> de exponenciales}?), son distancias o tiempos entre eventos?
>> (exponencial?), etc.
>>
>>
>> par(mfrow=c(2,1),oma=c(2,2,1,1),mar=c(2,2,1,1))
>>
>> #Ejemplo 1 (solución analítica para los emv):
>>
>> x <- rnorm(250, 5, 3)
>> hist(x, prob=TRUE, ylim=c(0,1.25*max(hist(x,plot=FALSE)$density)))
>> curve(dnorm(x,4.5,3.2,),col="blue",add=TRUE)
>> library(MASS)
>> x.likfit <- fitdistr(x,'normal') #sin proporcionar valores iniciales
>> curve(dnorm(x,mean=x.likfit$estimate[1],sd=x.likfit$estimate[2],),col="red",add=TRUE)
>>
>> #Ejemplo 2 (solución numérica para los emv):
>>
>> x <- rgamma(250, 2, 25)
>> hist(x, prob=TRUE, ylim=c(0,1.25*max(hist(x,plot=FALSE)$density)))
>> curve(dgamma(x,shape=3,rate=30),col="blue",add=TRUE)
>> library(MASS)
>> x.likfit <- fitdistr(x,'gamma',start=list(shape =3, rate=30)) #con
>> valores iniciales
>> curve(dgamma(x,shape=x.likfit$estimate[1],rate=x.likfit$estimate[2],),col="red",add=TRUE)
>>
>> HTH
>> Rubén
>>
>> ____________________________________________________________________________________ Dr. Rubén
>> Roa-Ureta
>> AZTI - Tecnalia / Marine Research Unit
>> Txatxarramendi Ugartea z/g
>> 48395 Sukarrieta (Bizkaia)
>> SPAIN
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
jm~
_______________________________
J. Miguel Marin
http://www.est.uc3m.es/jmmarin
Dep. of Statistics
University Carlos III of Madrid
Spain (E.U.)
Más información sobre la lista de distribución R-help-es