【发布时间】:2015-05-27 12:44:31
【问题描述】:
阅读 R 中 glm 的描述,我不清楚在公式中指定模型偏移量或使用偏移量参数之间有什么区别。
在我的模型中,我有一个响应 y,它应该除以偏移项 w,为简单起见,假设我们有协变量 x。我使用日志链接。
有什么区别
glm(log(y)~x+offset(-log(w)))
和
glm(log(y)~x,offset=-log(w))
【问题讨论】:
阅读 R 中 glm 的描述,我不清楚在公式中指定模型偏移量或使用偏移量参数之间有什么区别。
在我的模型中,我有一个响应 y,它应该除以偏移项 w,为简单起见,假设我们有协变量 x。我使用日志链接。
有什么区别
glm(log(y)~x+offset(-log(w)))
和
glm(log(y)~x,offset=-log(w))
【问题讨论】:
这两种方式是一样的。
这可以在文档中看到(粗体部分):
这可用于指定在拟合期间要包含在线性预测器中的先验已知组件。这应该是 NULL 或长度等于事例数的数字向量。 公式中可以包含一个或多个偏移项,如果指定了多个,则使用它们的总和。请参阅 model.offset。
上面讨论了glm 函数中的offset 参数,并表示它可以包含在公式中或者也可以。
下面的一个简单示例表明上述情况是正确的:
数据
y <- sample(1:2, 50, rep=TRUE)
x <- runif(50)
w <- 1:50
df <- data.frame(y,x)
第一个模型:
> glm(log(y)~x+offset(-log(w)))
Call: glm(formula = log(y) ~ x + offset(-log(w)))
Coefficients:
(Intercept) x
3.6272 -0.4152
Degrees of Freedom: 49 Total (i.e. Null); 48 Residual
Null Deviance: 44.52
Residual Deviance: 43.69 AIC: 141.2
第二种方式:
> glm(log(y)~x,offset=-log(w))
Call: glm(formula = log(y) ~ x, offset = -log(w))
Coefficients:
(Intercept) x
3.6272 -0.4152
Degrees of Freedom: 49 Total (i.e. Null); 48 Residual
Null Deviance: 44.52
Residual Deviance: 43.69 AIC: 141.2
如您所见,两者是相同的。
【讨论】:
我只是想补充一点,当您在公式 glm(log(y)~x+offset(-log(w))) 中使用偏移量并以这种方式制作模型时,如果您稍后想要预测您的数据,它将考虑 w 的值(偏移量在此示例中),如果您在 offset 参数中包含偏移量,则预测将考虑偏移量。
【讨论】: