2015-02-02 11 views
5

SAS의 proc 로지스틱에서 헤센 매트릭스를 얻을 수있는 방법이 있습니까? 아니면 proc logsitic을 출발에서 계산하는 옵션이 될 것입니까?SAS의 Hessian?

필자는 함수 설명서를 읽었으나 출력 테이블에이 설명서를 포함시킬 방법이 없다는 것을 알았습니다.

+0

추가 [태그 : SAS는-IML] 경우에 IML 사람들 중 하나가 답을 알고있다. [SAS 뉴스 그룹 질문] (http://compgroups.net/comp.soft-sys.sas/hessian-and-scores-in-the-logistic-proc/661329)을 보길 원할 것입니다. 직접 구할 수는 없지만 계산 방법에 대한 지침이 있습니다. – Joe

+0

태그 제안에 감사드립니다. 이전에 게시 한 링크를 보았지만 내 코드는 이미 시간이 많이 걸렸습니다 (1000 개 이상의 모델과 데이터 세트가 '크다'라는 예상 이후 약 2-3 시간 정도). 가능한 한 간단하게 유지하려고합니다. SAS는 물류 절차에서 헤센 (hessian) 매트릭스를 출력하지 않습니다! 나는 matlab 및 R에서 전에 이것을했다. – user1571823

+0

communities.sas.com에 질문을 게시하면 SAS의 누군가가 응답 할 수 있습니다. 방법이없는 경우 해당 방법으로 아이디어를 추가 할 수도 있습니다. – Reeza

답변

0

나는 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