R中带交互项的模型调用add_predictions()是否全场景适用?
modelr::add_predictions() 适用场景说明
核心结论
modelr::add_predictions()是对R基础泛型函数predict()的轻量封装,本身不参与模型逻辑计算,只要你传入的拟合模型对象有对应的predict()方法,不管是否包含交互项、属于哪类模型,都可以正常运行。
分场景说明
- 交互项场景:不管是你测试的二阶交互,还是三阶及更高阶的交互,只要你在拟合模型时已经在公式中正确指定交互项,交互效应已经被包含在拟合好的模型对象中,
add_predictions()调用底层predict()计算时会自动处理交互逻辑,不需要额外配置,所有交互场景都适用。 - 其他模型场景:比如logistic回归、泊松回归、混合效应模型、决策树等绝大多数R的常见模型类,只要对应模型类的
predict()方法存在,都可以正常传入使用。如果需要调整预测值的输出类型,比如logistic回归需要输出预测概率而非默认的对数优势比,可以额外指定type参数即可,示例:add_predictions(mod_logit, type = "response")。
你提供的测试代码逻辑完全正确,可以直接拓展到上述其他场景使用:
df <- tibble::tibble( x1 = sort(runif(100)), x2 = sort(runif(100)), y = 2*x1 + sqrt(x2) + rnorm(length(x1))) mod_1 = lm(y~x1*x2, data = df) grid_values = expand_grid(x1 = seq(-1,1,0.1),x2 = seq(-1,1,0.1)) grid_values %>% add_predictions(mod_1) %>% filter(x1==1 & x2==1)
内容的提问来源于stack exchange,提问作者Rtist
相关产品推荐
相关产品推荐

