如果您使用所谓的工作残差并且回归量和残差适当加权,则该定义完全类似。工作权重是用于广义线性模型(包括逻辑回归)的常用迭代加权最小二乘 (IWLS) 算法的一部分。
主要思想是使用对数似然相对于平均值或相应的线性预测变量的导数作为偏差的度量。或者,您可以使用所谓的分数或估计函数作为偏差的度量,即对数似然相对于线性预测变量的系数的导数。所有这些想法都在我们sandwich的 R 包中使用,以实现不同三明治估计器的面向对象的实现。有关详细信息,请参阅 Zeileis(2006,三明治估计器的面向对象计算,doi:10.18637/jss.v016.i09)。
R 中使用逻辑回归进行劳动力市场参与的工作说明是:
data("SwissLabor", package = "AER")
m <- glm(participation ~ ., data = SwissLabor, family = binomial)
可以使用我们的sandwich包计算经典的 Eicker/Huber/White 三明治协方差矩阵:
library("sandwich")
vcov_sandwich <- sandwich(m)
您可以手动轻松提取工作残差和回归量,并使用工作权重适当加权:
r <- residuals(m, "working") * sqrt(weights(m, "working"))
X <- model.matrix(m) * sqrt(weights(m, "working"))
然后,协方差矩阵的公式与线性回归模型中的公式相同
vcov_byhand <- solve(t(X) %*% X) %*% t(X) %*% diag(r^2) %*% X %*% solve(t(X) %*% X)
all.equal(vcov_sandwich, vcov_byhand)
## [1] TRUE
两个警告:(1)当然,不应该像这样计算三明治,但可以使用更有效和数值更稳定的矩阵计算。(2) 对于具有独立二元响应的数据,这些三明治协方差对任何事物都不是鲁棒的。它们是一致的,没关系,但没有办法在不错误指定模型方程的情况下错误指定可能性。