2015-02-02 20 views
5

SAS'taki proc logosunda Hessian matrisini elde etmenin bir yolu var mı? Veya hangi proc logsitic kalkıştan alarak hesaplamak için bir seçenek olacak?SAS Hessian?

İşlev belgelerini okuyorum, ancak çıktı tablolarına dahil etmenin bir yolu olduğunu göremiyorum.

+0

ekleme [etiketi: SAS-iml] durumunda iml millet biri cevap bilir. [Bu SAS haber grubu sorusuna] bakmak isteyebilirsiniz (http://compgroups.net/comp.soft-sys.sas/hessian-and-scores-in-the-logistic-proc/661329) gibi görünüyor doğrudan elde edilemeyebilir, ancak bunların nasıl hesaplanacağıyla ilgili bazı talimatlar vardır. – Joe

+0

Etiket önerisi için teşekkürler. Önceden yayınladığınız bağlantıyı gördüm, ancak kodum zaten çok fazla zaman harcadı (1000'den fazla model tahmin ettiğinden yaklaşık 2-3 saat ve veri seti 'büyük'), bu yüzden mümkün olduğunca basit tutmak istiyorum. SAS'ın lojistik prosedürde kendir matrisini vermediğine inanamıyorum! Bunu matlab ve R'de daha önce yaptım. – user1571823

+0

Soruyu communities.sas.com adresinde yayınlayın ve SAS'tan bir kişi yanıt verebilir. Bir yol olmazsa, bu siteye bir fikir olarak da ekleyebilirsiniz. – Reeza

cevap

0

SAS bloglarını inceledim ve proc nlp'yi kullanarak tahmin edebileceğiniz bir yol bulmuş olabilir.

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; 

Bu yardımcı olur umarım.

Orijinal cevap burada yayınlanan: http://comp.soft-sys.sas.narkive.com/nXdobtA5/hessian-and-scores-in-the-logistic-proc