我已经用下面的代码(上图)在R中进行了logit回归,现在我试图获得完全相同回归的稳健标准误差,我也用下面的代码(下图),但之后显著性变化很大。
我想知道我使用的代码是否合适,如果不合适,这是否可能与为什么有些变量在稳健SE估计之前显著,而在稳健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条答案
按热度按时间h7appiyu1#
是的,使用三明治估计量是获得logit模型稳健标准误差的正确方法,您的代码看起来是正确的。
并排比较正态标准误差和稳健标准误差,您很可能会发现稳健标准误差稍大。由于估计值不受影响,这意味着某些参数将从显著变为不显著。这很常见,也是您所希望的。计算稳健标准误差是因为您认为正态标准误差由于异方差性等原因而不正确。这可能导致您错误地得出结论,认为某个参数是重要的,而实际上它并不重要。