我听说人们在想要计算先验模型之后的某些效果时,会谈论“基于残差建模”。例如,如果他们知道两个变量var_1和var_2是相关的,我们首先用var_1建立一个模型,然后再建立var_2的效果模型。我的问题是我从未在实践中见过这样做。
我感兴趣的问题如下:
1. 如果我使用glm,我该如何考虑所使用的链接函数? 2. 当运行第二个glm并将var_2作为解释变量时,我应该选择什么分布?我认为这与问题1有关。 3. 这是否与在第二个模型中使用第一个模型的预测作为抵消有关?
我感兴趣的问题如下:
1. 如果我使用glm,我该如何考虑所使用的链接函数? 2. 当运行第二个glm并将var_2作为解释变量时,我应该选择什么分布?我认为这与问题1有关。 3. 这是否与在第二个模型中使用第一个模型的预测作为抵消有关?
dt <- data.table(mtcars) # I have a hypothesis that `mpg` is a function of both `cyl` and `wt`
dt[, cyl := as.factor(cyl)]
model <- stats::glm(mpg ~ cyl, family=Gamma(link="log"), data=dt) # I want to model `cyl` first
dt[, pred := stats::predict(model, type="response", newdata=dt)]
dt[, res := mpg - pred]
# will this approach work?
model2_1 <- stats::glm(mpg ~ wt + offset(pred), family=Gamma(link="log"), data=dt)
dt[, pred21 := stats::predict(model2_1, type="response", newdata=dt) ]
# or will this approach work?
model2_2 <- stats::glm(res ~ wt, family=gaussian(), data=dt)
dt[, pred22 := stats::predict(model2_2, type="response", newdata=dt) ]
我的第一种建议方法存在收敛问题,但这是我愚蠢的大脑解决这个问题的方式。感谢任何帮助!