We follow [MNP+14] and wish to solve the following Maximum Likelihood problem:

\begin{align*} \max_{\bf{\Lambda}, \bf{B}} &\ \sum_{i\in\mathcal{I}} \sum_{k\in\mathcal{K}}z_{ik}\ln\left(1-F_{ik}\left(\lambda_{i}-\bf{B}'\mathbf{x_{ik}}\right)\right) \\ \text{s.t.} &\ \sum_{k\in\mathcal{K}}\left(1-F_{ik}\left(\lambda_{i}-\bf{B}'\mathbf{x_{ik}}\right)\right)=1, \quad \forall i\in\mathcal{I} \end{align*}


Due to limitations with MathJax, Greek lower-case letters cannot be bolded. Hence, we use upright Greek bolded letters to denote vectors.

To do so, we can use the mdmpy.mdm.MDM class, which includes a method for initialising the model in Pyomo, and another to solve it. In the next section, we will explore a few examples to see this in action.

[MNP+14]Vinit Kumar Mishra, Karthik Natarajan, Dhanesh Padmanabhan, Chung-Piaw Teo, and Xiaobo Li. On theoretical and empirical aspects of marginal distribution choice models. Management Science, 60(6):1511–1531, June 2014. URL: https://doi.org/10.1287/mnsc.2014.1906, doi:10.1287/mnsc.2014.1906.