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.
params_mlogit(coefs)
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


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.
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}}$$
# Consider a sicksicker 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)#> to term mean sd 2.5% 97.5% #> 1: sicker intercept 0.2266667 0.09291573 0.3235000 0.1525000 #> 2: sicker treat 0.2053954 0.09244748 0.2844551 0.1112497 #> 3: death intercept 0.9000000 0.36055513 1.1900000 0.5250000 #> 4: death treat 0.5131485 0.08355126 0.5934864 0.4347851params#> A "params_mlogit" object #> #> Summary of coefficients: #> to term mean sd 2.5% 97.5% #> 1: sicker intercept 0.2266667 0.09291573 0.3235000 0.1525000 #> 2: sicker treat 0.2053954 0.09244748 0.2844551 0.1112497 #> 3: death intercept 0.9000000 0.36055513 1.1900000 0.5250000 #> 4: death treat 0.5131485 0.08355126 0.5934864 0.4347851 #> #> Number of parameter samples: 3 #> Number of transitions: 2## 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#> A "params_mlogit" object #> #> Summary of coefficients: #> to term mean sd 2.5% 97.5% #> 1: sicker intercept 0.2266667 0.09291573 0.3235000 0.1525000 #> 2: sicker treat 0.2053954 0.09244748 0.2844551 0.1112497 #> 3: death intercept 0.9000000 0.36055513 1.1900000 0.5250000 #> 4: death treat 0.5131485 0.08355126 0.5934864 0.4347851 #> #> Number of parameter samples: 3 #> Number of transitions: 2