Learn R Programming

hesim (version 0.5.5)

params_mlogit: 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)

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.

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^{\beta_c x_i}}{\sum_{k=1}^K e^{\beta_k x_i}}$$

See Also

summary.params_mlogit(), params_mlogit_list(), CohortDtstmTrans

Examples

Run this code
# 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

Run the code above in your browser using DataLab