根据李子奈老师的《高级应用计量经济学》P39—41,用Mata的option()函数与了一个异方差条件下的最大似然估计,初始值设教材估计结果而设,但stata提示:初始值不可行。不知是哪儿出错了,特向大家请教!
出错提示、数据与我编写的程序如下:
set more off
use data,clear
drop if ex==.
gen income2=income^2
gen cons=1
mata
mata clear
st_view(y=., ., " expense")
st_view(X=., ., ("income","income2","cons"))
void mymax(todo,b,y,X,lnf,g,H)
{
real matrix omega,e
omega=b[cols(X)+1]*(diag(X[.,1]):^b[cols(X)+2])
e=(y-X*b[1..cols(X)]')
lnf = -0.5*rows(X)*(1+ln(2*pi())-ln(rows(X)))-0.5*ln(det(omega))-0.5*rows(X)*ln(e'*luinv(omega)*e)
}
s=optimize_init()
optimize_init_evaluator(s,&mymax())
optimize_init_evaluatortype(s,"v0")
optimize_init_argument(s, 1, y)
optimize_init_argument(s, 2, X)
optimize_init_params(s, (-0.2,0,831,50,3)) //初始值设定
b = optimize(s) //参数估计结果
v = optimize_result_V(s) //系数估计结果
b
v
end