我希望我的逻辑回归模型与预测变量从同一点开始。
数据:
df <- tibble(
x = c(0:20, 0:20),
y = c(log(10:30 + 2), log(10:30 + 10)),
init = c(rep(log(10 + 2), 21), rep(log(10 + 10), 21)),
group = c(rep('A', 21), rep('B', 21))
)
型号:
lm_fit <- lm(y ~ log(x + 1) + init, data = df)
拟合数据的模型示例:
newdata <- df %>%
filter(group == 'A') %>%
mutate(pred_y = predict(lm_fit, newdata = newdata, type = 'response')) %>%
pivot_longer(c(y, pred_y), names_to = 'pred_type', values_to = 'value')
ggplot(aes(x, value, colour = pred_type)) +
geom_point() +
geom_line()
如何更改模型,使红线(模型)与蓝线(数据)的起始值相同?即x=0
,pred_y = y
。
1条答案
按热度按时间erhoui1w1#
使用
init
变量时,必须将其视为偏移(其系数将为1)并禁用截距(模型公式中的-1
)。在将模型公式改为
log(y) ~ log(x + 1)
之后,一种可能的方法是转换y
变量,并将其在 x = 0中的新值用于offset(init
)变量(实际上,我建议总是从 y 变量导出offset,而不是单独计算它)。