如何从R中的多元logit中提取可靠的标准错误?

时间:2019-09-29 01:33:54

标签: r multivariate-testing mlogit robustness

我使用下面的代码(上)在R中进行了多变量logit回归。现在,我试图为完全相同的回归获得可靠的标准误差。我也使用下面的代码(底部),但是之后的意义却大不相同。

我想知道我使用的代码是否合适,这是否与为什么在可靠的SE估计之前而不是之后某些变量有意义的原因有关。谢谢。

library(sandwich)
library(lmtest)
setwd("C:/...")
mydata <- read.csv(file="sextest.csv", header=TRUE, sep=",", na.strings=c(""))
sapply(mydata,function(x) sum(is.na(x)))
sapply(mydata, function(x) length(unique(x)))
model <- glm(LCC ~.,family=binomial(link='logit'),data=mydata)

require(foreign)
require(sandwich)
fitglm <- glm(LCC ~.,family=binomial(link='logit'),data=mydata)
cov.m1 <- vcovHC(fitglm, type = "HC0")
std.err <- sqrt(diag(cov.m1))
q.val <- qnorm(0.975)
r.est <- cbind(Estimate = coef(fitglm), "Robust SE" = std.err , z = (coef(fitglm)/std.err) , "Pr(>|z|) "= 2 * pnorm(abs(coef(fitglm)/std.err), lower.tail = FALSE) , LL = coef(fitglm) - q.val  * std.err , UL = coef(fitglm) + q.val  * std.err)
r.est

1 个答案:

答案 0 :(得分:0)

是的,使用三明治估计器是获取logit模型的可靠标准误差的正确方法,并且您的代码看起来正确。

将常规和标准误差并排比较,您很可能会发现标准误差会更大。由于您的估算不受影响,这意味着某些参数会从有效变为无效。这很常见,本质上就是您想要的。您之所以计算健壮的标准误差,是因为您认为正常误差是由于例如异方差性而引起的,因此可能会导致您错误地得出结论:参数无效时,它是有意义的。