ost straightforward R package for setting subject as random effect in mixed logit model?



I have a dataset in which individuals (subID), each belonging to a particular group (group), repeatedly chose between multiple discrete outcomes (choice). I’d like to test how group membership influences choice, and want to account for non-independence of observations due to repeated choices being made by the same individuals. In turn, I planned to implement a mixed multinomial regression treating group as a fixed effect and subID as a random effect. It seems that there are a few options for multinomial logits in R, and I’m hoping for some guidance on which may be most easily implemented for this mixed model:

  1. multinom - GLM, via nnet, allows the usage of the multinom function. This appears to be a nice, clear, straightforward option… for fixed effect models. However is there a manner to implement random effects with multinom? Evidently multinom is able to handle mixed-effects GLM with poisson distribution and a log link. However, I don’t understand (a) why this is the case or (b) the required syntax. Can anyone clarify?

  2. mlogit - A fantastic package, with incredibly helpful vignettes. However, the “mixed logit” documentation refers to models that have random effects related to alternative specific covariates (implemented via the rpar argument). My model has no alternative specific variables; I simply want to account for the random intercepts of the participants. Is this possible with mlogit? Is that variance automatically accounted for by setting subID as the id.var when shaping the data to long form with mlogit.data? I found an example of “tricking” mlogit to provide random coefficients for variables that vary across individuals (very bottom here), but I don’t quite understand the syntax involved.

  3. MCMCglmm is evidently another option. However, as a relative novice with R and someone completely unfamiliar with Bayesian stats, I’m not personally comfortable parsing example syntax of mixed logits with this package, or, even following the syntax, making guesses at priors or other needed arguments.

Any guidance toward the most straightforward approach and its syntax implementation would be thoroughly appreciated. Note - I’m also wondering if the random effect of subID needs to be nested within group (as individuals are members of groups), but that may be a question for a separate post. In any case, many thanks for any insights!