首页 > 解决方案 > 为 R 中的 glm 在不同的家庭上循环

问题描述

我正在尽我最大的努力,但我不知道如何循环使用不同的法律,找到最好的 glm 模型!

famille = paste0(fam,'(link=',sprintf(" '%s'",lien),')')
famille
[1] "poisson(link= 'log')"

我有两个变量 fam 和 Lien 我想在两个 fam(泊松和二项式)和两个链接(logit 和 log)上循环。

而且我不知道如何将我的变量famille放入 glm 函数的参数系列中。

我正在做这个

glm_model = glm(as.formula(paste(gar,"~."),family=famille,data=train)

我得到了这个错误:

get(family, mode = "function", envir = parent.frame()) 中的错误:
objet 'poisson(link='log')' de mode 'function' introuvable

我希望你能帮助我吗?

标签: rglm

解决方案


好吧,我想我从评论中得到了你想要的东西。这是我的做法:

df <- data.frame(
    y = 1:10,
    x = rnorm(10)
)

fam <- poisson
link <- 'log'

glm(y ~ x, data = df, family = fam(link = link))
#> 
#> Call:  glm(formula = y ~ x, family = fam(link = link), data = df)
#> 
#> Coefficients:
#> (Intercept)            x  
#>      1.6723      -0.1973  
#> 
#> Degrees of Freedom: 9 Total (i.e. Null);  8 Residual
#> Null Deviance:       16.64 
#> Residual Deviance: 13.98     AIC: 51.94

reprex 包于 2021-04-01 创建(v1.0.0)

不需要任何花哨的东西。然后,您可以根据需要交换函数(族)和链接函数('log'、'logit' 等)


推荐阅读