您可以使用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