【发布时间】:2021-11-14 12:07:36
【问题描述】:
我想使用 tidymodels 配方为 LM 中的两个预测变量指定“总和为零”对比。是否可以?在查看recipes 文档时,在 1.3 之前,似乎有人尝试构建变量特定选项,但策略已转移到全局选项。
我正在尝试将此基本 R 代码转换为 tidymodels:
Bikeshare <- ISLR2::Bikeshare # start with original data
contrasts(Bikeshare$hr) <- contr.sum(24)
contrasts(Bikeshare$mnth) <- contr.sum(12)
mod.lm2 <-
lm(
bikers ~ mnth + hr + workingday + temp + weathersit,
data = Bikeshare
)
summary(mod.lm2)
我已经走到这一步了:
library(tidymodels)
Bikeshare <- ISLR2::Bikeshare # start with original data
contrasts(Bikeshare$hr) <- contr.sum(24)
contrasts(Bikeshare$mnth) <- contr.sum(12)
lm_spec <- linear_reg() %>%
set_engine("lm")
the_rec <-
recipe(
bikers ~ mnth + hr + workingday + temp + weathersit,
data = Bikeshare
) %>%
step_dummy(c(mnth, hr), one_hot = TRUE)
the_workflow<- workflow() %>%
add_recipe(the_rec) %>%
add_model(lm_spec)
the_workflow_fit_lm_fit <-
fit(the_workflow, data = Bikeshare) %>%
extract_fit_parsnip()
summary(the_workflow_fit_lm_fit$fit)
有人知道如何从tidymodels 工作流程中获得相同的结果吗?
我认为我不能将 contr.sum 用作全局选项。这为我提供了我想要的两个变量的 beta,但它改变了其他变量的对比。
BikeShare <- ISLR2::Bikeshare # be sure to work with original data ;
old_opt <- options()$contrast;
options(contrasts = c('contr.sum', 'contr.poly'))
【问题讨论】:
标签: r tidymodels