【问题标题】:GLM Family using tidymodels使用 tidymodels 的 GLM 系列
【发布时间】:2021-05-07 12:06:40
【问题描述】:

我正在尝试将 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() 的分类(逻辑回归)。

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

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

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

【问题讨论】:

    标签: r glm tidymodels


    【解决方案1】:

    这比预期的要容易:

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

    【讨论】:

    • 当使用“glmnet”时,你应该设置lambda = 0,这样它就不会增加惩罚,从而成为一个没有正则化的“正常”GLM。
    猜你喜欢
    • 1970-01-01
    • 2021-12-15
    • 2015-05-23
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多