#r #parameters #nonlinear-optimization #estimation #non-linear
Вопрос:
Я работаю с оценкой шести параметров распределения, используя функцию gosolnp. Но результаты очень странные.
Это функция, которую я хочу оценить:
LV_EGEDD<-function(x,theta, teta = NULL){
alpha <- ifelse('Alpha' %in% teta, 1, theta[1])
sigma <- ifelse('Sigma' %in% teta, 1, theta[2 - sum('Alpha' %in% teta )])
delta <- ifelse('Delta' %in% teta, 1, theta[3 - sum(c('Alpha','Sigma') %in% teta)])
eta <- ifelse('Eta' %in% teta, 1, theta[4 - sum(c('Alpha','Sigma', 'Delta') %in% teta)])
gama <- ifelse('Gama' %in% teta, 1, theta[5 - sum(c('Alpha','Sigma', 'Delta', 'Eta') %in% teta)])
lambda <- ifelse('Lambda' %in% teta, 1, theta[6 - sum(c('Alpha','Sigma', 'Delta', 'Eta', 'Gama') %in% teta)])
A<-(1 alpha*(x^(-delta)))^(-sigma-1)
B<-1-(1 alpha*(x^(-delta)))^(-sigma)
fxn<- -sum(log(lambda*alpha*sigma*delta*eta*gama*
(x^(-delta-1))*A*(B^(gama-1))*
((1-(B^gama))^(eta-1))*((1-(1-(B^gama))^eta)^(lambda-1))))
return(fxn)
}
То есть я хочу оценить Альфа, Сигма, Дельта, Эта, Гама и Лямбда.
Иногда мне приходится исправлять какой-то параметр, но «исправлено» функции gosolnp работает не очень хорошо.
Выборка сгенерирована следующим образом: (случайным образом)
x<-reged(1000,alpha=3.5,lambda=11.2,sigma=3,delta=0.9,eta=5,gama=3)
Госолнп:
out<-gosolnp(fun=LV_EGEDD,n.restarts=nsp,LB=inf,UB=sup,n.sim=mint,x=x)
из:
$pars
[1] 13.9548298 14.5500550 1.9030426 0.4334163
[5] 9.8731060 1.2410888
Обратите внимание, что параметры не очень хорошо оценены, и я не знаю, какие значения $pars эквивалентны Альфа, Сигма, Дельта, Эта, Гама или Лямбда.
Поэтому я хотел бы знать, есть ли способ узнать, на какой параметр ссылаются значения «pars», как правильно использовать «фиксированную» функцию gosolnp и есть ли способ улучшить эту оценку.