[R-es] Ajuste con exponencial
Francisco Rodríguez
fjroar en hotmail.com
Mie Ene 28 13:22:34 CET 2015
Hola Hector, buenos días:
Hay un método generalista para maximizar funciones en R que quizás te valga, prueba lo siguiente a ver qué tal (por supuesto, si te fijas en la definición de la función de verosimilitud, ves que la "he cuadrado a mano" al intervalo que tratas"
library(optimx)
muestra <- c(50, 20, 31, 40, 10)
funcionExpTrun <- function(l, x){ n <- length(x) f <- rep(0, n) for (i in 1:n) { f[i]<- -log(l*exp(-l*x[i])/(exp(-10*l)-exp(-60*l))) } sumaf <- sum(f) return (sumaf) }
resultado <- optim(par = c(0.1), fn = funcionExpTrun, method = c("L-BFGS-B"), lower = c(-Inf, 0), upper = c(Inf, Inf), x = muestra)
El código lo he sacado (con alguna adaptación por mi parte) de:
http://www.mat.uda.cl/jolivares/probabilidades/EMV.pdf
El parámetro al que converge sería:
$par[1] 0.02356897
Un saludo
From: hector3 en gmx.es
To: cgb en datanalytics.com; r-help-es en r-project.org
Date: Wed, 28 Jan 2015 12:27:56 +0100
Subject: Re: [R-es] Ajuste con exponencial
Saludos cordiales.
Lamentablemente lo que dice Carlos no es correcto. Cuando la distribución exponencial la truncamos en un intervalo la constante de la función de densidad (para que integre 1) tiene una dependencia (complicada) del parámetro que multiplica al exponente, con lo cual la ecuación de verosimilitud no es nada sencila ni se puede resolver exactamente . La estimación maximo-verosímil requeriría de algoritmos numéricos y por tanto de software para su cálculo. Yo creo que esta no debe ser la mejor solución, y me sorprende no haber encontrado (puede que por mi torpeza) nada para ello en el R. De aquí la pregunta que hacia en este foro.
Héctor Gómez
Enviar: martes 27 de enero de 2015 a las 22:07
De: "Carlos J. Gil Bellosta " <cgb en datanalytics.com>
Para: "Hector Gómez Fuerte" <hector3 en gmx.es>
CC: "Lista R" <r-help-es en r-project.org>
Asunto: Re: [R-es] Ajuste con exponencial
Hola, ¿qué tal?
Creo que el ajuste (por máxima verosimilitud) de lambda es el inverso
de la media de tus datos. Tu densidad en el intervalo de interés es
como la de la exponencial (dividida por una constante de
normalización). El logaritmo de la verosimitud es, por lo tanto, como
el de la exponencial sin truncar más una constante.
Luego la teoría habitual (de cómo el inverso de la media es el
estimador por MV de lambda) aplica con cambios mínimos.
Un saludo,
Carlos J. Gil Bellosta
http://www.datanalytics.com
El día 27 de enero de 2015, 19:53, "Hector Gómez Fuerte"
<hector3 en gmx.es> escribió:
> Buenas tardes,
> ¿cómo puedo con el R ajustar una distribución exponencial truancada (en el
> intervalo [10,60]) a un vector de datos?
> Muchas gracias.
> Héctor Gómez
>
> _______________________________________________
> 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
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es