2014-12-08 16 views
12

Stata'dan R'ye bir logit regresyonunu çoğaltmaya çalışıyorum. Stata I'de sağlam standart hatası (heterossedastisite tutarlı standart hatası) için "sağlam" seçeneğini kullanın. Tam olarak aynı katsayıları Stata'dan kopyalayabiliyorum, ancak "sandviç" paketi ile aynı standart hataya sahip olamıyorum.Stata ve R'de Logit Regresyon Farklı Sağlam Standart Hatalar

Bazı OLS doğrusal regresyon örneklerini denedim; R ve Stata'nın sandviç tahmincileri bana OLS için aynı sağlam standart hatası veriyor gibi görünüyor. Stata'nın lineer regresyon için sandviç tahmincisini nasıl hesapladığını bilen var mıyım, benim durumumda logit regresyon?

Teşekkür ederiz! Ekli

Kodlar: Ar :

library(sandwich) 
library(lmtest)  
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")  
mydata$rank<-factor(mydata$rank)  
myfit<-glm(admit~gre+gpa+rank,data=mydata,family=binomial(link="logit"))  
summary(myfit)  
coeftest(myfit, vcov = sandwich)  
coeftest(myfit, vcov = vcovHC(myfit, "HC0"))  
coeftest(myfit, vcov = vcovHC(myfit))  
coeftest(myfit, vcov = vcovHC(myfit, "HC3"))  
coeftest(myfit, vcov = vcovHC(myfit, "HC1"))  
coeftest(myfit, vcov = vcovHC(myfit, "HC2"))  
coeftest(myfit, vcov = vcovHC(myfit, "HC"))  
coeftest(myfit, vcov = vcovHC(myfit, "const"))  
coeftest(myfit, vcov = vcovHC(myfit, "HC4"))  
coeftest(myfit, vcov = vcovHC(myfit, "HC4m"))  
coeftest(myfit, vcov = vcovHC(myfit, "HC5"))  

Stata:

use http://www.ats.ucla.edu/stat/stata/dae/binary.dta, clear  
logit admit gre gpa i.rank, robust  
+0

Dokümantasyon http://www.stata.com/manuals13/p_robust.pdf –

+0

Stata sonuçları içerebilir misiniz? ... erişiminiz yok. Ancak "HC1" stata "sağlam" seçeneğine karşılık gelmelidir. – blindjesse

cevap

24

sözde varsayılan Stata içinde "sağlam" standart hatalar aynı adı taşıyan paketinden neler sandwich() tekabül hesaplar. Tek fark, sonlu örnek ayarının nasıl yapıldığıdır. sandwich(...)'da herhangi bir sonlu örnek ayarlaması varsayılan olarak yapılmamaktadır, yani sandviç 1/n'ye bölünmüştür, burada n gözlemlerin sayısıdır. Alternatif olarak, 1/(n-k) ile ayrılan sandwich(..., adjust = TRUE) kullanılabilir, burada k, regresörlerin sayısıdır. Ve Stata 1/(n - 1) ile ayrılıyor. Elbette, asimptotik olarak bunlar hiç farklı değildir. Ve birkaç özel durum (örn., OLS doğrusal regresyon) haricinde, sonlu örneklerde (örneğin, yansızlık) "doğru" çalışmak için 1/(n-k) veya 1/(n - 1) için bir argüman yoktur. En azından bildiğim kadarıyla değil. İkili tepki durumda, bu "sağlam":

sandwich1 <- function(object, ...) sandwich(object) * nobs(object)/(nobs(object) - 1) 
coeftest(myfit, vcov = sandwich1) 

Bu

z test of coefficients: 

       Estimate Std. Error z value Pr(>|z|)  
(Intercept) -3.9899791 1.1380890 -3.5059 0.0004551 *** 
gre   0.0022644 0.0011027 2.0536 0.0400192 * 
gpa   0.8040375 0.3451359 2.3296 0.0198259 * 
rank2  -0.6754429 0.3144686 -2.1479 0.0317228 * 
rank3  -1.3402039 0.3445257 -3.8900 0.0001002 *** 
rank4  -1.5514637 0.4160544 -3.7290 0.0001922 *** 
--- 
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

verir Ve sadece kayıt için: Stata içinde yapabileceğiniz olarak

Yani bunu aynı sonuçları elde etmek için standart hatalar hiçbir şeye karşı dayanıklı değildir. Modelin doğru bir şekilde belirtilmesi koşuluyla, tutarlı ve bunları kullanmak tamam ama modeldeki herhangi bir yanlışlığa karşı koruma sağlamazlar. Çünkü sandviç standart hatalarının çalışması için temel varsayım, model denkleminin yanlış tanımlanabilmesi için model denkleminin (veya daha doğrusu karşılık gelen skor fonksiyonunun) doğru bir şekilde belirtilmiş olmasıdır. Bununla birlikte, bir ikili regresyonda, yanlış tanımlamaya yer yoktur, çünkü model denklemi, sadece ortalamadan (= olasılık) oluşur ve olasılık, sırasıyla ortalama ve 1 - ortalamadır. Bu, heteroskedastisite, aşırı yayılma, vb. Olabilecek doğrusal veya sayım veri regresyonunun tersidir.

+0

@AchimZeileis * İkili yanıt durumunda, bu "sağlam" standart hatalar, herhangi bir şeye karşı dayanıklı değildir. * Bu "sağlam" SE'ler, Doğrusal Olasılık Modelinde herhangi bir şeye karşı dayanıklı mı? Sezgilerim, hataların LPM'deki herhangi bir regressörden bağımsız olamayacağı (çünkü $ X $, $ \ epsilon $ değerinin $ 1-X \ beta $ veya $ -X \ beta $ olduğu), heterossedastisite-robust Eğer herhangi bir şey varsa çok daha fazla koruyamazsınız ... – landroni

+1

LPM'de, ortalama/beklenti işlevini yanlış tanımlamış oldunuz çünkü [0, 1] 'de beklentileri garanti eden hiçbir şey yoktur.Böylece, parametre tahminleri tutarsızdır ve hiçbir standart hata herhangi bir sağlamlık ekleyemez. –