R中使用tab_model生成回归结果时隐藏二次/多项式项的方法
R语言tab_model函数隐藏二次项/多项式项的实现方法
tab_model 是sjPlot包提供的回归结果表格输出函数,可通过以下两种通用方法隐藏不需要展示的高阶项:
方法1:手动指定要移除的特定项
使用内置的rm.terms参数,直接传入需要隐藏的变量名向量即可:
# 拟合包含二次项、三次多项式的回归模型 fit <- lm(mpg ~ wt + I(wt^2) + poly(hp, 3) + am + cyl, data = mtcars) # 输出表格时移除wt二次项和hp的所有多项式项 tab_model(fit, rm.terms = c("I(wt^2)", "poly(hp, 3)1", "poly(hp, 3)2", "poly(hp, 3)3"))
方法2:正则匹配批量移除同类项
当高阶项数量较多时,可先提取模型所有项名,通过正则匹配批量筛选要移除的项:
# 提取模型的所有自变量项名 all_terms <- attr(terms(fit), "term.labels") # 匹配所有带I()格式的二次项、带poly()格式的多项式项 to_remove <- all_terms[grepl("I\\(|poly\\(", all_terms)] # 输出时批量移除筛选出的高阶项 tab_model(fit, rm.terms = to_remove)
补充说明
- 若你提前在数据集内生成了二次项变量(如
wt_sq = wt^2后再放入模型),直接将该变量名传入rm.terms即可 - 仅删除指定项的系数展示行,不会影响表格底部的模型整体拟合指标(R²、显著性等)的准确性
内容的提问来源于stack exchange,提问作者C_Hut
相关产品推荐
相关产品推荐

