5

有没有办法在 SAS 的 proc 逻辑中获取 Hessian 矩阵?或者哪个选项可以计算它从 proc 逻辑的出发?

我一直在阅读函数文档,但看不到有办法将它包含在输出表中。

4

1 回答 1

1

我搜索了 SAS 博客,可能已经找到了一种可以使用 proc nlp 估计它的方法。

data t1;
do i = 1 to 500;
x=rannor(3478);
y=1+2*x>rannor(3478);
output;
end;
run;

proc logistic data=t1 outest=parm covout desc;
model y=x/link=probit;
score data=t1 out=t2;
run;

proc nlp data=t1 outest=t2 PHESSIAN;
parms a=0, b=0 ;
max ll;
xbeta = a + b * x;
if y=1 then p=probnorm(xbeta);
else if y=0 then p=1-probnorm(xbeta);
ll=LOG(p);
run;

proc print data=parm(where=(_TYPE_='COV')); run;

*calculation covariance from hessian in above;
proc iml;

HESSIAN={ -143.2141617 64.771275623,
64.771275623 -64.13869603
};
HESSIAN_inv_neg=-inv(HESSIAN);
print HESSIAN ;
print HESSIAN_inv_neg;
quit;

希望这可以帮助。

原始答案发布在这里:http ://comp.soft-sys.sas.narkive.com/nXdobtA5/hessian-and-scores-in-the-logistic-proc

于 2016-10-11T20:59:00.030 回答