Constructs a learner class object for fitting generalized
linear models with stats::glm and MASS::glm.nb. Negative binomial
regression is supported with family = "nb"
(or alternatively family = "negbin"
).
learner_glm(
formula,
info = "glm",
family = gaussian(),
learner.args = NULL,
...
)
(formula) Formula specifying response and design matrix.
(character) Optional information to describe the instantiated learner object.
a description of the error distribution and link
function to be used in the model. For glm
this can be a
character string naming a family function, a family function or the
result of a call to a family function. For glm.fit
only the
third option is supported. (See family
for details of
family functions.)
(list) Additional arguments to learner$new().
Additional arguments to stats::glm or MASS::glm.nb.
learner object.
n <- 5e2
x <- rnorm(n)
w <- 50 + rexp(n, rate = 1 / 5)
y <- rpois(n, exp(2 + 0.5 * x + log(w)) * rgamma(n, 1 / 2, 1 / 2))
d0 <- data.frame(y, x, w)
lr <- learner_glm(y ~ x) # linear Gaussian model
lr$estimate(d0)
coef(lr$fit)
#> (Intercept) x
#> 444.1858 255.8708
# negative binomial regression model with offset (using MASS::glm.nb)
lr <- learner_glm(y ~ x + offset(log(w)), family = "nb")
lr$estimate(d0)
coef(lr$fit)
#> (Intercept) x
#> 1.8894829 0.6738783
lr$predict(data.frame(x = 1, w = c(1, 5))) # response scale
#> 1 2
#> 12.97937 64.89685
lr$predict(data.frame(x = 1, w = c(1, 5)), type = "link") # link scale
#> 1 2
#> 2.563361 4.172799