params_mlogit: Parameters of a multinomial logit model

View source: R/params_mlogit.R

params_mlogitR Documentation

Parameters of a multinomial logit model

Description

Store the parameters of a fitted multinomial logistic regression model. The model is used to predict probabilities of K classes, which represent the probability of transitioning to particular health state in a discrete time state transition model. Can be used as an element of a params_mlogit_list to parameterize a CohortDtstmTrans object.

Usage

params_mlogit(coefs)

Arguments

coefs

A 3D array of stacked matrices containing samples of the regression coefficients under sampling uncertainty. May also be a list of objects (e.g., data frames) that can be coerced into matrices with as.matrix(). Each matrix must have the same number of columns and the number of matrices must be equal to K-1.

Details

Multinomial logit models are used to predict the probability of membership for subject i in each of K classes as a function of covariates:

Pr(y_i = c) = \frac{e^{β_c x_i}}{∑_{k=1}^K e^{β_k x_i}}

Value

An object of class params_mlogit, which is a list containing coefs and n_samples, where n_samples is equal to the number of rows in each element of coefs. The coefs element is always converted into a 3D array of stacked matrices.

See Also

summary.params_mlogit(), params_mlogit_list(), CohortDtstmTrans

Examples

# Consider a sick-sicker model and model transitions from the sick state

## We can instantiate from a list of data frames
params <- params_mlogit(
  coefs = list(
    ### Transition from sick to sicker
    sicker = data.frame(
      intercept = c(-0.33, -.2, -.15),
      treat = c(log(.75), log(.8), log(.9))
    ),
    
   ### Transition from sick to death
    death = data.frame(
      intercept = c(-1, -1.2, -.5),
      treat = c(log(.6), log(.65), log(.55))
    )
  )
)
summary(params)
params

## We can also instantiate from an array
coefs_sicker <- data.frame(
  intercept = c(-0.33, -.2, -.15),
  treat = c(log(.75), log(.8), log(.9))
)
coefs_death <- data.frame(
  intercept = c(-1, -1.2, -.5),
  treat = c(log(.6), log(.65), log(.55))
)

params2 <- params_mlogit(
  coefs <- array(
    data = c(as.matrix(coefs_sicker),
             as.matrix(coefs_death)),
    dim = c(3, 2, 2),
    dimnames = list(NULL, c("intercept", "treat"), c("sicker", "death"))
  )
)
params2

hesim documentation built on Sept. 4, 2022, 1:06 a.m.