求各位高手帮忙……
这是一个求MLE的程序,但是我的程序现在存在两个问题。
1. fmincon函数执行不了
2. 可能MLE的程序与图片中的方程不一样,但是我不知道问题在哪……
loglik1~5分别表示图片中的5个非线性方程组,好像我写的这部分不对,但是我自己又找不出问题出在哪(用红色标出来了),所以求各位帮个忙……
小弟新来的,论坛币不多,还请各位帮忙……
%MLE
function loglik = nmw_mle(u)
alpha=u(1);
beta=u(2);
gama=u(3);
theta=u(4);
lambda=u(5);
% MLE The log-likelihood function of the power model
global x;
loglik11 = (theta*x.^(theta-1))/nmwhazard(x,alpha,beta,gama,theta,lambda);
loglik12 = x.^(theta);
loglik21 = ((gama+lambda*x).*x.^(gama-1).*exp(lambda*x))/nmwhazard(x,alpha,beta,gama,theta,lambda);
loglik22 = x.^(gama).*exp(lambda*x);
loglik31 = (alpha*x.^(theta-1).*(1+theta*log(x)))/nmwhazard(x,alpha,beta,gama,theta,lambda);
loglik32 = x.^(theta).*log(x);
loglik41 = (x.^(gama-1).*exp(lambda*x).*((gama+lambda*x).*log(x)+1))/nmwhazard(x,alpha,beta,gama,theta,lambda);
loglik42 = x.^(gama).*exp(lambda*x).*log(x);
loglik51 = ((1+gama+lambda*x).*x.^(theta).*exp(lambda*x))/nmwhazard(x,alpha,beta,gama,theta,lambda);
loglik52 = x.^(gama+1).*exp(lambda*x);
loglik1 = sum(loglik11)-sum(loglik12);
loglik2 = sum(loglik21)-sum(loglik22);
loglik3 = sum(loglik31)-alpha*sum(loglik32);
loglik4 = sum(loglik41)-sum(loglik42);
loglik5 = sum(loglik51)-sum(loglik52);
% minus log-likelihood for individual observations
loglik = [loglik1 loglik2 loglik3 loglik4 loglik5];% overall minus log-likelihood being minimized
_________________________________________________________________________
%main
global x
x=[275 13 147 23 181 30 65 10 300 173 106 300 300 212 300 300 300 2 261 293 88 247 28 143 300 23 300 80 245 266];
init_w=[1 8e-06 0.1,0.5 0.1];% starting parameter values
low_w=zeros(5,1);% parameter lower bounds
up_w=[1 1 1 1 1];% parameter upper bounds
[w1,lik1,exit1]=fmincon('nmw_mle',init_w,[],[],[],[],low_w,up_w,[]);