首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stata和R中Logit回归的不同稳健标准误差

Stata和R中Logit回归的不同稳健标准误差
EN

Stack Overflow用户
提问于 2014-12-08 22:13:03
回答 1查看 6K关注 0票数 15

我试图将logit回归从Stata复制到R。在Stata中,我使用“稳健”选项来具有稳健的标准错误(异方差-一致的标准错误)。我能够复制来自Stata的完全相同的系数,但是我不能有与包“三明治”相同的健壮的标准错误。

我尝试了一些OLS线性回归的例子,似乎R和Stata的三明治估计给了我同样的稳健标准误差。有谁知道Stata如何计算非线性回归的三明治估计量,在我的例子中,logit回归?

谢谢!

所附代码: R:

代码语言:javascript
复制
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"))    

斯塔塔:

代码语言:javascript
复制
use http://www.ats.ucla.edu/stat/stata/dae/binary.dta, clear    
logit admit gre gpa i.rank, robust    
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-08 22:50:38

Stata中的默认“健壮”标准错误对应于同名包中的sandwich()计算。唯一的区别是有限样本调整是如何进行的。在sandwich(...)函数中,在缺省情况下不进行有限样本平差,即三明治除以1/n,其中n是观测值的个数。或者,可以使用sandwich(..., adjust = TRUE)除以1/(n ),其中k是回归者的数目。和Stata除以1/(n-1)。

当然,渐进地说,这一点根本没有区别。除少数特殊情况(例如,OLS线性回归)外,1/(n - k)或1/(n - 1)在有限样本(例如无偏性)中“正确”工作是没有争议的。至少据我所知没有。

因此,要获得与Stata相同的结果,您可以这样做:

代码语言:javascript
复制
sandwich1 <- function(object, ...) sandwich(object) * nobs(object) / (nobs(object) - 1)
coeftest(myfit, vcov = sandwich1)

这会产生

代码语言:javascript
复制
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

为了记录在案:在二进制响应的情况下,这些“健壮”的标准错误对任何东西都不可靠。只要正确地指定了模型,它们是一致的,使用它们是可以的,但它们不会防止模型中的任何错误说明。因为三明治标准误差起作用的基本假设是模型方程(或更准确地说是对应的分数函数)被正确指定,而模型的其余部分可能被错误地指定。然而,在二元回归中,不存在错误说明的空间,因为模型方程只包含平均(=概率)和可能性分别是均值和1-均值。这与线性或计数数据回归相反,其中可能存在异方差、过分散等。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27367974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档