Learn R Programming

poissonreg (version 0.1.0)

poisson_reg: General Interface for Poisson Regression Models

Description

poisson_reg() is a way to generate a specification of a model before fitting and allows the model to be created using different packages in R or Stan. The main arguments for the model are:

  • penalty: The total amount of regularization in the model. Note that this must be zero for some engines.

  • mixture: The mixture amounts of different types of regularization (see below). Note that this will be ignored for some engines.

These arguments are converted to their specific names at the time that the model is fit. Other options and argument can be set using set_engine(). If left to their defaults here (NULL), the values are taken from the underlying model functions. If parameters need to be modified, update() can be used in lieu of recreating the object from scratch.

Usage

poisson_reg(mode = "regression", penalty = NULL, mixture = NULL)

# S3 method for poisson_reg update( object, parameters = NULL, penalty = NULL, mixture = NULL, fresh = FALSE, ... )

Arguments

mode

A single character string for the type of model. The only possible value for this model is "regression".

penalty

A non-negative number representing the total amount of regularization (glmnet only).

mixture

A number between zero and one (inclusive) that is the proportion of L1 regularization (i.e. lasso) in the model. When mixture = 1, it is a pure lasso model while mixture = 0 indicates that ridge regression is being used. (glmnet and spark only).

object

A boosted tree model specification.

parameters

A 1-row tibble or named list with main parameters to update. If the individual arguments are used, these will supersede the values in parameters. Also, using engine arguments in this object will result in an error.

fresh

A logical for whether the arguments should be modified in-place of or replaced wholesale.

...

Not used for update().

Value

An updated model specification.

Engine Details

Engines may have pre-set default arguments when executing the model fit call. For this type of model, the template of the fit calls are:

poisson_reg() %>% 
  set_engine("glm") %>% 
  translate()

## Poisson Regression Model Specification (regression)
## 
## Computational engine: glm 
## 
## Model fit template:
## stats::glm(formula = missing_arg(), data = missing_arg(), weights = missing_arg(), 
##     family = stats::poisson)

poisson_reg() %>% 
  set_engine("zeroinfl") %>% 
  translate()

## Poisson Regression Model Specification (regression)
## 
## Computational engine: zeroinfl 
## 
## Model fit template:
## pscl::zeroinfl(formula = missing_arg(), data = missing_arg(), 
##     weights = missing_arg())

poisson_reg() %>% 
  set_engine("hurdle") %>% 
  translate()

## Poisson Regression Model Specification (regression)
## 
## Computational engine: hurdle 
## 
## Model fit template:
## pscl::hurdle(formula = missing_arg(), data = missing_arg(), weights = missing_arg())

poisson_reg() %>% 
  set_engine("glmnet") %>% 
  translate()

## Poisson Regression Model Specification (regression)
## 
## Computational engine: glmnet 
## 
## Model fit template:
## glmnet::glmnet(x = missing_arg(), y = missing_arg(), weights = missing_arg(), 
##     family = "poisson")

poisson_reg() %>% 
  set_engine("stan") %>% 
  translate()

## Poisson Regression Model Specification (regression)
## 
## Computational engine: stan 
## 
## Model fit template:
## rstanarm::stan_glm(formula = missing_arg(), data = missing_arg(), 
##     weights = missing_arg(), family = stats::poisson)

Details

The data given to the function are not saved and are only used to determine the mode of the model. For poisson_reg(), the mode will always be "regression".

The model can be created using the fit() function using the following engines:

  • R: "glm" (the default), "glmnet", "hurdle", or "zeroinfl"

  • Stan: "stan"

Examples

Run this code
# NOT RUN {
poisson_reg()

# Model from Agresti (2007) Table 7.6
log_lin_mod <-
  poisson_reg() %>%
  set_engine("glm") %>%
  fit(count ~ (.)^2, data = seniors)

summary(log_lin_mod$fit)

# ------------------------------------------------------------------------------

library(pscl)

data("bioChemists", package = "pscl")

poisson_reg() %>%
  set_engine("hurdle") %>%
# Extended formula:
  fit(art ~ . | phd, data = bioChemists)

model <- poisson_reg(penalty = 10, mixture = 0.1)
model
update(model, penalty = 1)
update(model, penalty = 1, fresh = TRUE)
# }

Run the code above in your browser using DataLab