黑森在SAS?

黑森在SAS?,sas,glm,logistic-regression,sas-iml,hessian-matrix,Sas,Glm,Logistic Regression,Sas Iml,Hessian Matrix,有没有办法在SAS的proc逻辑中获得Hessian矩阵?或者哪一个选项是从程序开始计算的 我一直在阅读函数文档,但看不到有办法将其包含在输出表中。我浏览了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; m

有没有办法在SAS的proc逻辑中获得Hessian矩阵?或者哪一个选项是从程序开始计算的


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

我浏览了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;
希望这有帮助


原始答案张贴在这里:

添加,以防iml人员知道答案。您可能想查看,因为它看起来可能无法直接获得,但他们有一些关于如何计算它的说明。感谢您的标签建议。我看到了您之前发布的链接,但我的代码已经很耗时(大约2-3小时,因为它估计有1000多个模型,而且数据集“很大”),所以我希望尽可能简单。我不能相信SAS在逻辑过程中没有输出hessian矩阵!我以前在matlab和R中做过这件事。将问题发布在communities.sas.com上,sas的人可以回答。如果没有办法,你也可以在网站上添加它作为一个想法。你也应该考虑尝试<代码> ODS跟踪;代码>在程序之前,检查它是否可用-我对它不太熟悉,但很多隐藏的数据都是通过这种方式可用的。谢谢Joe,我会研究它的。然而,我忽略了一点,即parater估计的协方差矩阵(这是proc logistic中的一个输出)是从hessian矩阵计算出来的。所以,通过这种方式,我们可以很好地估计黑森山脉!