class pyblp.CharacteristicExpectationMoment(agent_ids, X2_index, value, observations, market_ids=None, market_weights=None)

Configuration for micro moments that match expectations of characteristics of products chosen by certain agents.

For example, micro data can sometimes be used to compute the mean \(\mathscr{V}_m\) of a product characteristic \(x_{jt}\) of an agent’s choice \(j\) for agents in some set \(I\). Its simulated analogue \(v_{mt}\) can be defined by

(1)\[v_{mt} = \sum_{i \in I} \frac{w_{it}}{w_{It}} \frac{\sum_{j \in J_t} s_{ijt}}{\sum_{j \in J_t} s_{jt}}\]

where the fraction of agents in \(I\) is \(w_{It} = \sum_{i \in I} w_{it}\) and conditional on choosing an inside good, the expected value of \(x_{jt}\) for agent \(i\) is

(2)\[z_{it} = \sum_{j \in J_t} x_{jt}s_{ij(-0)t}\]

where \(s_{ij(-0)t} = s_{ijt} / (1 - s_{i0t})\) is the probability of \(i\) choosing \(j\) when the outside option is removed from the choice set.

These are averaged across a set of markets \(T_m\) and compared with \(\mathscr{V}_m\), which gives \(\bar{g}_{M,m}\) in (34).

  • agent_ids (sequence of object) – IDs of the agents \(i \in I\). At least one of these IDs should show up in the agent_ids field of agent_data in Problem or Simulation for each market over which this micro moment will be averaged.

  • X2_index (int) – Column index of \(x_{jt}\) in the matrix of demand-side nonlinear product characteristics, \(X_2\). This should be between zero and \(K_2 - 1\), inclusive.

  • value (float) – Value \(\mathscr{V}_m\) of the statistic estimated from micro data.

  • observations (int) – Number of micro data observations \(N_m\) used to estimate \(\mathscr{V}_m\), which is used to properly scale micro moment covariances in (35).

  • market_ids (array-like, optional) – Distinct market IDs over which the micro moments will be averaged to get \(\bar{g}_{M,m}\). These are also the only markets in which the moments will be computed. By default, the moments are computed for and averaged across all markets.

  • market_weights (array-like, optional) – Weights for averaging micro moments over specified market_ids. By default, these are \(1 / T_m\).