估计逻辑回归的条件效应

机器算法验证 回归 物流 抵消
2022-04-17 04:43:38

我想检查一个新变量的条件效应,比如 ,对以前使用预测器的逻辑回归ZYX

假设逻辑回归已经适合预测变量并且我不能/不想更改与相关的系数。(用于拟合此逻辑回归的数据集在某种意义上比随后的数据集“更好”,但不包含。)XXZ

我现在想将添加到我的预测变量集中。(虽然我使用的数据集“更糟糕”,但我仍然觉得估计的效果已经足够好了。)但我只想要给定的影响通过基于的当前预测。ZZZYX

我知道,由于这些模型是嵌套的,我可以使用偏差来进行假设检验,以确定是否在新模型中包含(假设上的系数可能是改变了),但实际参数估计值呢?ZX

在线性回归的情况下,我可以简单地将使用的回归拟合到基于的模型的残差上,但这在逻辑回归设置中是有问题的,因为残差不存在于它们的通常的感觉。ZX

我一直在通过最小化关于的对数损失来执行优化,同时保持上的系数不变。尽管我可以对数据的子样本重复此过程以对此进行估计(假设我有足够的数据),但此解决方法并没有给我想要的标准错误。ZX

有没有其他(更好的)方法可以做到这一点?

1个回答

您可以使用offset包含具有固定系数的项。从技术上讲,偏移量是系数固定为 1 的预测变量,因此您首先需要创建一个新变量,该变量具有与从第一个模型估计的系数的线性组合。X

第一个数据集的模型: 给出估计值

logit(P(Y=1))=β1X1++βkXk,
β^i

第二个数据集的模型: 给出带有标准误差 估计值和所有推论。

logit(P(Y=1))=γZ+1(β^1X1++β^kXk),
γ^

大多数用于广义线性模型(例如逻辑回归)的软件都可以包含偏移量。它最常用于泊松回归,但正如您所见,它也适用于其他情况。

以下是这在 R 中的工作方式:

set.seed(456724)
# first data set
dd1 <- data.frame(X1=rnorm(50), X2=rnorm(50), Z=rnorm(50))
dd1$Y <- with(dd1, rbinom(50, size=1, p=1/(1+exp(-2-X1+2*X2-Z))))

# first model fitted with only X1 and X2
mod1 <- glm(Y ~ X1 + X2, family="binomial", data=dd1)

# second data set
dd2 <- data.frame(X1=rnorm(50), X2=rnorm(50), Z=rnorm(50))
dd2$Y <- with(dd2, rbinom(50, size=1, p=1/(1+exp(-2-X1+2*X2-Z))))

# linear predictor based on mod1
dd2$pred1 <- predict(mod1, newdata=dd2, type = "link")
# use X1-X2 based predictor as offset
mod2 <- glm(Y ~ Z+ offset(pred1), data=dd2, family="binomial")
summary(mod2)

输出是:

Call:
glm(formula = Y ~ Z + offset(pred1), family = "binomial", data = dd2)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.6432  -0.5135   0.2310   0.4945   1.5744  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)   -0.205      0.440  -0.466   0.6413  
Z              1.070      0.418   2.560   0.0105 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 38.598  on 49  degrees of freedom
Residual deviance: 30.536  on 48  degrees of freedom
AIC: 34.536

您在这里看不到偏移量的存在,但为了比较,这里是没有偏移项的输出:

 Call:
glm(formula = Y ~ Z, family = "binomial", data = dd2)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.1183  -1.1191   0.5753   0.8910   1.6962  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)   
(Intercept)   1.0911     0.3767   2.896  0.00377 **
Z             0.9369     0.3888   2.410  0.01597 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 62.687  on 49  degrees of freedom
Residual deviance: 54.906  on 48  degrees of freedom
AIC: 58.906

系数的估计值恰好彼此非常接近,但您可以看到偏差有很大不同,并且当包含附加预测变量时,剩余偏差要低得多。Z