El término dentro de su definición de f
:- sum(-dexp(x,rate=theta,log=T))
NO es la probabilidad, sino otra cosa.
¿Qué es lo que se calcula?
Cuando consideres qué es lo que se está optimizando ahí, también entenderás por qué estás minimizando esa función para maximizar la probabilidad.
Citando su propia álgebra, aquí está la probabilidad:
$\cal{L}(\theta)=\prod_{i=1}^{n}\theta e^{-\theta x_i}=\theta^n e^{-\theta \sum_{i=1}^{n}x_i}$
dexp
con log=TRUE
no devuelve la densidad. Esto es lo que dice la ayuda: log, log.p logical; if TRUE, probabilities p are given as log(p).
... que es cuando dices log=TRUE
se obtiene el logaritmo de la densidad.
La probabilidad en $\theta$ será el producto de las densidades, tomadas en cada punto de datos.
La probabilidad logarítmica es la suma de las densidades logarítmicas, sobre los puntos de datos, evaluadas en un determinado $\theta$ .
Eso es, sum(dexp(x,rate=theta,log=T))
sería el función de probabilidad logarítmica . Querríamos maximizar eso.
Pero tenemos sum(-dexp(x,rate=theta,log=T))
(no me pregunten por qué no escribieron el equivalente obvio pero presumiblemente más rápido -sum(dexp(x,rate=theta,log=T))
).
Es decir, el programa está minimizando la log-verosimilitud negativa, lo que equivale a maximizar la log-verosimilitud. Este es el resultado al llamar a f
en valores theta entre 1 y 3:
Por el contrario, este es el aspecto de la función de probabilidad:
sum(dexp(x,rate=theta,log=T))
está calculando $θ^ne^{−θ∑^n_{i=1}x_i}$ ?
Está calculando el logaritmo de esa cantidad.
Pero aquí veo que tengo el signo menos en todos los programas relacionados con la MLE en mi hoja de lectura.
Minimizar en lugar de maximizar es una convención. No hay ninguna necesidad particular de ello.
La documentación de R dice que en optim
función par Initial values for the parameters to be optimized over
. ¿Cómo puedo seleccionar los valores iniciales?
¿Podría decirme cómo puedo relacionar este programa
fexp = function(theta, x){ prod(dexp(x,rate=(1/theta))) }
res3<-optimize(f=fexp,interval=c(0,50), maximum=T, x=x)
res3
con mi programa anterior que he publicado en la pregunta?
Por qué aquí está el prod
¿se llama a la función?
Porque la probabilidad es un producto.
¿Y por qué aquí hemos mencionado máximo=T?
Porque está calculando la probabilidad, que queremos maximizar.
Edición: Me he dado cuenta de otro problema con el código anterior: dice rate = 1/theta
. Eso implica que el theta
no es el parámetro de tasa de sus matemáticas y código anteriores, sino que es de hecho un parámetro de escala . Tenga cuidado con eso. Otra cosa que hay que tener en cuenta es que los cálculos de probabilidad suelen tener problemas de desbordamiento (y a veces, de desbordamiento).