使用 tidymodels 的 GLM 系列

GLM Family using tidymodels

我正在尝试将 tidymodels 包用于 GLM,并希望使用 Gamma 或 Poisson 分布。

使用 glm 我会使用类似下面的东西

# using glm
mdl <- glm(data = data, y ~ x, family = Gamma(link = "inverse"))
mdl <- glm(data = data, y ~ x, family = poisson(link = "log"))

# using glmnet
library(glmnet)
mdl <- glmnet(data$x, data$y, family = Gamma(link = "inverse"))
mdl <- glmnet(data$x, data$y, family = poisson(link = "log"))

如何使用 tidymodels 实现同样的效果?请注意,我正在尝试进行回归而不是我可以使用 parsnip::logistic_reg().

的分类(逻辑回归)

我在 Generalized Linear Models 上找到一篇关于 tidymodels 的文章,它属于 embed 包,但没有说明如何指定家族。

我希望有类似的东西(这不起作用,因为 linear_reg 没有参数 familylinkset_engine 也不支持 glm线性回归模式)

mdl <- linear_reg(mode = "regression", family = "gamma", link = "inverse") %>% set_engine("glm") # or glmnet

这比预期的要容易:

mdl <- linear_reg(mode = "regression") %>%
  set_engine("glmnet", family = "gamma")

# or 
mdl <- linear_reg(mode = "regression") %>%
  set_engine("glmnet", family = Gamma(link = "inverse"))