#r #estimation #mle
#r #оценка #mle
Вопрос:
Я попытался запустить кодировки MLE для R, но на выходе «начальное значение вне диапазона»
library(maxLik)
# -log-likelihood function of the Weibull Burr X fixed covariate distribution.
likelihood<-function(par){
x<-data2$x; yi<-data2$yi;
alpha<-par[1];beta<-par[2];theta<-par[3];tau0<-par[4];tau1<-par[5];
n<-nrow(data2)
a<-sum(((exp(tau0 tau1*yi))*x)^2)
b<-sum(log(x))
c<-sum(log(1-exp(-((exp(tau0 tau1*yi))*x)^2))^theta)
d<-sum(log(1-(1-exp(-(exp(tau0 tau1*yi))*x)^2)^theta))
e<-sum((((1-exp(-((exp(tau0 tau1*yi))*x)^2))^(theta*beta))/
((1-(1-exp(-((exp(-(tau0 tau1*yi)))*x)^2))^theta))^beta))
#n = 30
logL<-n*log(2*alpha*beta*((exp(tau0 tau1*yi))^2)*theta)- a
b (theta*beta-1)*c
-(beta-1)*d
-alpha*log(e)
return(logL)
}
max<-maxLik(likelihood,start=c(1.1,4.15,0.25,0.03,0.02))
summary(max)
Как это исправить, чтобы оценить параметры?
Ответ №1:
Я бы рекомендовал сначала вычислить логарифмическую вероятность аналитически, где вы обращаете внимание на то, чтобы максимально упростить ее, прежде чем вводить ее в свою функцию R. Обычно это позволяет избежать возникновения числовых проблем. Например, использование простого log(exp (x)) на компьютере может привести к числовым проблемам для очень большого x, но log(exp (x)) = x не будет.
Во-вторых, вы пытались подключить свои начальные значения в своей функции, чтобы узнать, возвращается ли разумное значение?