【问题标题】:Modelling for zero using glm function in R使用 R 中的 glm 函数对零建模
【发布时间】:2015-03-22 10:06:03
【问题描述】:
我正在尝试使用 R 中的 glm 函数构建逻辑回归模型。我的因变量是只有 0 和 1 的二项式。这里 0 - 不返回,1- 返回。
我想为 Non-Return (0's) 建模,但 R 的 glm 函数默认构建为 1's。就像在默认情况下为较低值构建的 SAS 中一样,我们可以在 proc 逻辑中使用降序属性来更改顺序,我们在 glm 中是否也有类似的东西?
我有一个选项可以通过将原始数据中的 0 更改为 1 来实现这一点,反之亦然,但我不想更改我的原始数据。
请帮助我或指导我如何在 R 中做类似的事情。
提前致谢。
【问题讨论】:
标签:
r
glm
logistic-regression
【解决方案1】:
只需将1 - y 指定为 DV:
set.seed(42)
y <- sample(c(0, 1), 10, TRUE)
#[1] 1 1 0 1 1 1 1 0 1 1
fit <- glm(y ~ 1, family = binomial)
coef(fit)
# (Intercept)
# 1.386294
log(mean(y) / (1 - mean(y)))
#[1] 1.386294
1 - y
#[1] 0 0 1 0 0 0 0 1 0 0
fit1 <- glm(1 - y ~ 1, family = binomial)
coef(fit1)
#(Intercept)
#-1.386294
log(mean(1 - y) / (1 - mean(1 - y)))
#[1] -1.386294
【解决方案2】:
或者,您可以使用...transform:
临时转换您的数据
glm( data = transform( data.frame(y=0), y=y+1 ), ... )