如何在tidymodels生态中查找验证模型假设的等效工具包
TidyModels生态模型假设验证方案
你可以通过以下两种路径完成线性回归等模型的假设验证,无需脱离tidymodels生态适配传统工具:
路径1:直接兼容原有performance包
tidymodels提供了通用接口extract_fit_engine(),可以从任意parsnip模型对象中提取底层的原生模型对象(比如线性回归对应原生lm对象),直接传入performance包的函数即可使用原有操作逻辑,示例代码如下:
# 提取parsnip模型的底层原生lm对象,直接传入performance函数 lm_fit_parsnip %>% extract_fit_engine() %>% check_heteroscedasticity()
路径2:使用tidymodels生态原生工具完成验证
你可以组合broom、yardstick、probably三个生态内核心包,完成全部四项假设验证:
- 残差正态性:先用
broom::augment()从模型中提取残差序列,可通过绘制Q-Q图、直方图直观判断,也可调用shapiro.test()完成正态性假设检验 - 残差独立性:通过
yardstick::dw_test()计算Durbin-Watson统计量,判断残差是否存在序列相关,也可绘制残差随观测顺序的散点图做直观判断 - 残差同质性:绘制残差与拟合值的散点图,观察残差分布是否均匀无明显趋势,也可结合
broom提取的统计量完成Breusch-Pagan异方差检验 - 变量无多重共线性:调用兼容tidymodels生态的
vip::vif()函数计算方差膨胀因子,通常VIF>5即可认为存在显著多重共线性
如果需要一键生成诊断可视化结果,可使用生态兼容的ggResidpanel包,调用resid_panel()函数直接传入parsnip模型对象,即可生成4张常用残差诊断图,功能与performance包的可视化能力等效。
内容的提问来源于stack exchange,提问作者Polo
相关产品推荐
相关产品推荐

