Add covariates to a model.
Arguments
- mod
An object of class
"bage_mod", created withmod_pois(),mod_binom(), ormod_norm().- formula
A one-sided R formula, specifying the covariates.
Details
If set_covariates() is applied to
a model that already has covariates,
set_covariates() deletes the
existing covariates.
If set_covariates() is applied to
a fitted model, set_covariates() unfits
the model, deleting existing estimates.
Covariate data
All variables contained in the formula
argument to set_covariates() should be in the
dataset supplied in the original call to
mod_pois(), mod_binom(), or mod_norm().
set_covariates() processes the covariate data before
adding it to the model:
All numeric variables are standardized, using
x <- scale(x).Categorical variables are converted to sets of indicator variables, using treatment contrasts. For instance, variable
xwith categories"high","medium", and"low", is converted into two indicator variables, one calledxmediumand one calledxlow.
Mathematical details
When a model includes covariates, the quantity
$$\pmb{Z} \pmb{\zeta}$$
is added to the linear predictor, where \(\pmb{Z}\) is a matrix of standardized covariates, and \(\pmb{\zeta}\) is a vector of coefficients. The elements of \(\pmb{\zeta}\) have prior
$$\zeta_p \sim \text{N}(0, 1)$$.
See also
mod_pois(),mod_binom(),mod_norm()Specify a model for rates, probabilities, or means
Examples
## create a COVID covariate
library(dplyr, warn.conflicts = FALSE)
births <- kor_births |>
mutate(is_covid = time %in% 2020:2022)
mod <- mod_pois(births ~ age * region + time,
data = births,
exposure = popn) |>
set_covariates(~ is_covid)
mod
#>
#> ------ Unfitted Poisson model ------
#>
#> births ~ age * region + time
#>
#> exposure: popn
#>
#> term prior along n_par n_par_free
#> (Intercept) NFix() - 1 1
#> age RW() age 9 9
#> region N() - 16 16
#> time RW() time 13 13
#> age:region RW() age 144 144
#>
#> covariates: ~is_covid
#>
#> disp: mean = 1
#>
#> n_draw var_time var_age
#> 1000 time age
#>