Extracted main text — title through conclusion, appendix excluded. This is what our citation measures are computed over, published so the extraction can be checked by eye.
45,558 characters · 9 sections · 38 citation commands
Dynamic Consumer Demand at Large Scale
{3pt} {12pt}
{0.5cm}
\onehalfspacing
Classical discrete choice models in economics typically assume that consumers evaluate all available alternatives on each decision occasion and select the option that maximizes contemporaneous utility train2009discrete. This framework underlies much of modern demand estimation and has been highly successful in settings where choices are infrequent or where switching costs are explicit. However, a large empirical literature documents systematic deviations from this benchmark, particularly in environments characterized by repeated decisions guadagni1983logit, keane1997heterogeneity, dube2010state, bronnenberg2012evolution. In many such settings, consumers display strong inertia and persistence, repeatedly choosing the same option even when switching would be optimal. These patterns raise fundamental questions about how consumer preferences evolve over time and how demand systems should be modeled to capture realistic behavior.
Empirical evidence for inertia and habit formation has been documented across a wide range of markets. In long-term contract settings such as health insurance and electricity, consumers often remain with incumbent options despite sizable gains from switching, indicating substantial state dependence in choice behavior hortaccsu2017power,heiss2021. Related evidence from consumer packaged goods markets shows that brand loyalty can persist for years and even survive major geographic moves, suggesting that habits are deeply ingrained rather than purely driven by market frictions bronnenberg2012evolution. While much of this literature emphasizes environments with explicit switching costs, similar mechanisms are likely at work in everyday grocery shopping, where switching costs are smaller, more psychological and harder to observe.
Understanding inertia is important not only for descriptive accuracy, but also for economic counterfactuals and policy analysis. Models that fail to account for state dependence tend to confound habit persistence with low price sensitivity, leading to biased elasticity estimates and misleading predictions. This issue is particularly pronounced in industrial organization and competition policy, where demand elasticities play a central role. For example, mackay2024consumer show that accounting for consumer inertia can substantially alter predicted merger effects in consumer goods markets. More broadly, ignoring dynamics may lead regulators to underestimate firms' ability to exploit consumer inertia through pricing or product design.
At the same time, empirical analysis of consumer demand is increasingly based on large-scale retail data dubois2022use. Scanner records, loyalty card data and online transaction logs provide millions of observations across consumers, products, categories and time periods. While these data offer novel opportunities to study consumer behavior, they also raise severe econometric challenges. Fully flexible discrete choice models that allow for individual-product-specific preferences quickly become infeasible due to the curse of dimensionality. Even moderately sized panels would require estimating millions of parameters, making classical estimation approaches computationally intractable.
Existing solutions typically impose a strong structure to restore tractability. A prominent approach is the mixed logit model, which allows for random coefficients to capture preference heterogeneity while keeping product intercepts fixed across consumers berry1995automobile. Although mixed logit models have been widely applied and offer substantial flexibility relative to simple logit specifications, they remain limited in high-dimensional environments. In particular, they do not naturally scale to settings with many categories and products and they impose restrictive assumptions on the correlation structure of heterogeneity across baseline preferences, price sensitivity and dynamic effects. As a result, much of the empirical demand literature has focused on single-category applications, such as yogurt ackerberg2001yogurt,villas2007yogurt, hristakeva2022yogurt, orange juice dube2010state, or ready-to-eat cereal nevo2000mergers, backus2021cereal, abstracting from the joint nature of real-world shopping behavior. While multi-category application such as atalay2023scalable and dopper2025rising estimate demand across a broad set of product markets, they treat each category as a separate demand system and abstract from cross-category substitution and from pooling preference heterogeneity across categories.
Recent work addresses these limitations by introducing factor structure models that pool information across products and categories. By projecting consumers and products into a shared low-dimensional latent space, factor models dramatically reduce the number of parameters while preserving rich heterogeneity. Athey2018ttfm apply factorization techniques to restaurant choices to capture heterogeneous distance elasticities, while Ruiz2020shopper propose a model to uncover substitution and complementarity patterns in large assortments. Most closely related to our paper, Donnelly2021counterfactual develop a nested factorization model that jointly captures within- and across-category substitution patterns and demonstrates a substantial gain in predictive performance over single-category approaches. However, these papers consider static choice models.
This paper builds on the emerging literature by proposing a dynamic product-level factor model that combines within-category inertia with a shared latent factor representation of heterogeneous preferences. The low-rank structure reduces effective dimensionality by factorizing consumer-product coefficients into consumer-specific latent factors and product-specific loadings, thus pooling information across products and categories Ruiz2020shopper,Donnelly2021counterfactual. Bayesian estimation is performed using variational inference (VI), which allows for scalable posterior approximation in a setting with tens of thousands of latent variables blei2017variational,kucukelbir2017automatic.
Against this background, the paper asks whether a dynamic factor model with inertia can jointly achieve predictive accuracy, efficient representation of heterogeneity through cross-category pooling and scalable, reliable Bayesian inference in high-dimensional retail environments.
A simulation study calibrated to realistic retail environments evaluates predictive performance, scalability and economic implications. The dynamic factor specification outperforms both static factor models and mixed logit benchmarks in out-of-sample prediction, with performance gains that increase as the number of categories expands. Incorporating inertia also meaningfully alters implied own-price elasticities, highlighting that dynamics are consequential not only for predictive accuracy, but also for substantive economic conclusions.
The remainder of the paper proceeds as follows. Section (ref) outlines the consumer choice environment and introduces the dynamic product-level factor structure designed to mitigate the curse of dimensionality. Section (ref) details the Bayesian estimation strategy and the VI procedure used to approximate the posterior distribution. Section (ref) presents simulation evidence on predictive performance, scalability and the resulting elasticity estimates. Section (ref) concludes and discusses avenues for future research.
Consumer choice is modeled at the product level in a multi-category setting with repeated purchases. We observe consumers $i\in\{1,\dots,I\}$ making choices on shopping trips $t\in\{1,\dots,T\}$. On each trip, consumer $i$ potentially purchases one product from a subset of categories $c\in\{1,\dots,C\}$. Conditional on purchasing in category $c$ at trip $t$, consumer $i$ chooses exactly one product from the set $\mathcal{J}_c \equiv\{1,\dots,J_c\}$.
We adopt a random-utility framework mcfadden1974conditional,train2009discrete. The utility from choosing product $j_c\in\mathcal{J}_c$ in category $c$ at trip $t$ is
where $u_{ij_ct}$ is a deterministic component and $\epsilon_{ij_ct}$ is an idiosyncratic shock. We assume $\epsilon_{ij_ct}$ is i.i.d. Gumbel distributed, so that conditional choice probabilities take the multinomial logit form. Each consumer chooses the product that provides the highest utility among all alternatives in a category
The deterministic component of utility may depend on baseline preferences, a vector of observed time-varying product characteristics and on the history of past choices. Let $\mathbf{x}_{j_ct}$ denote observed covariates such as price, promotions or other product attributes and let $\mathcal{H}_{i,t-\ell}\equiv \{X_{i,t-1}, X_{i,t-2}, \dots, X_{i,t-T} \}$ summarize the history of consumer $i$'s past choices and states. A general dynamic specification can be written as
where $\boldsymbol{\zeta}_{ij_c}$ captures heterogeneous responses to observed covariates and $f(\cdot)$ is an arbitrary function mapping past history into current utility.
Our baseline specification imposes two simplifying restrictions that enable large scale estimation. We restrict contemporaneous covariate effects to be linear in price and model dynamics using one-period within-category state dependence.\footnote{For the purposes of the simulation, we rely on this simplified specification, noting that the framework can be extended to incorporate additional product characteristics and consumer demographics, as in Donnelly2021counterfactual, and to allow for richer history dependence $f\big(\mathcal{H}_{i,t-\ell}\big)$.} Let $\delta_{ij_c, t-1}$ be an indicator that equals one if consumer $i$ chose product $j_c$ on the most recent previous purchase occasion in category $c$ and zero otherwise. The baseline specification is
which corresponds to the special case of equation (ref) in which $\boldsymbol{\zeta}_{ij_c}' \mathbf{x}_{j_ct} = - \eta_{ij_c}\,\mathrm{price}_{j_ct}$ and $f\big(\mathcal{H}_{i,t-\ell}\big) = \xi_{ij_c}\, \delta_{ij_c,t-1}$. This specification captures (i) heterogeneous baseline preferences in $\alpha_{ij_c}$, (ii) heterogeneous price sensitivity in $\eta_{ij_c}$ and (iii) heterogeneous inertia in $\xi_{ij_c}$. A fully flexible product-level model would treat these as unrestricted consumer-product coefficients. However, this requires the estimation of $3\sum_c I\cdot J_c$ parameters, which is infeasible in large-scale retail applications.
A natural way to constrain the dimensionality of (ref) is to impose structure on the heterogeneous coefficients. We therefore adopt a mixed logit model mcfadden2000mixed as a benchmark with the deterministic utility component defined as
Baseline product attractiveness is captured by product fixed effects $\alpha_{j_c}$, which absorb average differences in popularity within each category and are homogeneous across consumers. For tractability, consumer heterogeneity is restricted to price sensitivity and inertia through random coefficients $(\eta_i, \xi_i)$. This benchmark substantially reduces the number of heterogeneous parameters relative to the fully flexible product-level specification while preserving heterogeneity in price responsiveness and inertia.
We focus on product-level demand conditional on category choice and abstract from modeling higher-level choice margins. The framework can be extended to incorporate category choice through a nested or hierarchical structure, as in Donnelly2021counterfactual, allowing substitution patterns to operate both within and across categories. An additional upper layer could model store or supermarket choice, yielding a mulit-level demand system that jointly captures retailer, category and product decisions.
Another approach to mitigate the curse of dimensionality is to put a factor structure on the heterogeneity so that information can be shared across products and categories while preserving rich substitution patterns Ruiz2020shopper, Donnelly2021counterfactual. The core idea is to represent the full matrix of consumer-product coefficients by the inner product of a shared $K$-dimensional latent consumer vector and product specific loading vectors salakhutdinov2008probabilistic,koren2009matrix.
We posit that each consumer $i$ has a latent vector $\boldsymbol{\theta}_i \in \mathbb{R}^K$ that is shared across all categories. It represents all relevant unobserved heterogeneity. Each product $j_c$ is associated with three loading vectors: $\boldsymbol{\gamma}_{j_c} \in \mathbb{R}^K$ for baseline utility, $\boldsymbol{\lambda}_{j_c} \in \mathbb{R}^K$ for price sensitivity and $\boldsymbol{\rho}_{j_c} \in \mathbb{R}^K$ for inertia. Since the same dimensions of $\boldsymbol{\theta}_i$ are allowed to affect all these aspects of choice, this gives our model a lot of flexibility if the dimension $K$ is large enough. For example, certain households might have a relatively high price sensitivity and a low inertia at the same time. Substituting the latent factor structure in equation (ref) yields the dynamic factor model used throughout the paper:
This factorization reduces the number of parameters to be estimated from $O\big(I\cdot \sum_cJ_c \big)$ to $O\big(IK + K \cdot \sum_c J_c\big)$ per coefficient block and it induces correlated heterogeneity across products and categories through the shared $\boldsymbol{\theta}_i$.
Conditional on purchasing any product $j$ in category $c$ at trip $t$, the i.i.d. Gumbel assumption about $\epsilon_{ij_ct}$ implies multinomial logit choice probabilities mcfadden1974conditional:
where $y_{ij_ct} \in \{0, 1\}$ denotes the binary outcome variable indicating whether consumer $i$ chooses product $j_c$ in category $c$ on trip $t$.
Note that for the initial observation for each consumer, we cannot calculate the dynamic choice probabilities since the lagged dependent variables $\delta_{ij_c0}$ are unobserved. This problem and solutions corresponds to the initial conditions problem of general discrete choice models heckman1981. In the simulation study in Section (ref), we abstract from this by exogenously generating initial choices.
The conditional log-likelihood is
Because latent factor models are invariant to several transformations, identification requires normalizations anderson1956statistical. In the present model, four such invariances arise. Scale invariance arises because utilities depend on inner products between individual factors and product loadings. For any nonzero scalar $a$, multiplying all individual factors by $a$ and dividing all loading vectors by $a$ leaves the inner products $\boldsymbol{\theta}_i' \boldsymbol{\gamma}_{j_c}, \boldsymbol{\theta}_i'\boldsymbol{\lambda}_{j_c}$ and $\boldsymbol{\theta}_i'\boldsymbol{\rho}_{j_c}$ unchanged. We fix the scale by imposing standard normal priors on individual factors, $\theta_{ik} \sim\mathcal{N}(0,1)$ in our Bayesian estimation approach. This normalization fixes the variance of each latent dimension, thereby eliminating the multiplicative invariance since any rescaling would violate the prior variance restriction.
Sign invariance is a special case of scale invariance. Utilities remain unchanged if the sign of a factor and its associated loadings is flipped. Formally, for any factor index $k$, the transformation $(\theta_{ik}, \gamma_{kj_c},\lambda_{kj_c},\rho_{kj_c})\mapsto(-\theta_{ik}, -\gamma_{kj_c},-\lambda_{kj_c},-\rho_{kj_c})$ leaves utility unchanged. To eliminate this invariance, we impose an anchor restriction by constraining one loading per factor (e.g., the first product in each category) to be strictly positive.
Because the model does not include an explicit outside option, it suffers from location invariance. Conditional choice probabilities depend only on within-category utility differences. Adding a category-specific constant to all utilities therefore does not affect observed choices. We remove this arbitrary utility level by mean-centering utilities within each category.
Rotational invariance arises because only the latent $K$-dimensional subspace is identified, not its particular basis representation. For any orthogonal matrix $Q$, the transformation $$(\theta_{ik}, \gamma_{kj_c},\lambda_{kj_c},\rho_{kj_c})\mapsto(Q\theta_{ik}, Q\gamma_{kj_c},Q\lambda_{kj_c},Q\rho_{kj_c})$$ preserves all inner products and thus utilities. We do not impose additional restrictions to resolve rotational invariance, as our analysis focuses on prediction and elasticity estimation rather than structural interpretation of individual factor dimensions lopes2004factor. Consequently, loadings are identified only up to orthogonal rotation.
Following Donnelly2021counterfactual, we estimate the dynamic factor model from section (ref) in a Bayesian framework. Let $X$ denote the observed data, consisting of past choices and prices, and let
collect all latent parameters. The goal is to estimate the posterior distribution of the parameter vector $\boldsymbol{\beta}$, which by Bayes' rule satisfies
Here, $p(X\,|\,\boldsymbol{\beta})$ is the likelihood function defined in equation (ref) and $p(\boldsymbol{\beta})$ denotes the prior distribution.
The posterior $p(\boldsymbol{\beta}\, |\, X)$ does not admit a closed-form representation. The log-likelihood function contains nonlinear log-sum-exp terms that couple a large number of latent variables across individuals and products, rendering posterior moments analytically intractable. Moreover, exact Markov Chain Monte Carlo (MCMC) methods are computationally infeasible at the scale considered here Betancourt2018conceptual. We therefore rely on VI to obtain a scalable approximation to the posterior distribution blei2017variational.
VI replaces posterior simulation by optimization. Specifically, we select a tractable family of distributions $q(\boldsymbol{\beta}\,;\, \nu)$, indexed by variational parameters $\nu$ and select
to minimize the Kullback-Leibler (KL) divergence. This is equivalent to maximizing the evidence lower bound (ELBO),
where $\mathbb{E}_{q(\boldsymbol{\beta};\nu)}$ denotes the expectation with respect to $q(\boldsymbol{\beta};\nu)$. We adopt a mean-field Gaussian variational family that factorizes across individuals and products
where each block parameter is modeled as a multivariate normal distribution with diagonal covariance matrix. Concretely, for each $K$-dimensional parameter vector $\boldsymbol{z}\in\{\boldsymbol{\theta}_i,\boldsymbol{\gamma}_{j_c},\boldsymbol{\lambda}_{j_c},\boldsymbol{\rho}_{j_c}\}$ the variational distribution is
so that the variational parameters $\nu$ collect all means and log standard deviations.
Optimization is performed using automatic differentiation variational inference (ADVI) kucukelbir2017automatic, which use Monte Carlo integration to approximate the ELBO. Using the reparameterization trick kingma2014autoencoding, draws are written as $z=\mu_z+\sigma_z\odot\epsilon$ with $\epsilon\sim\mathcal N(0,I)$, which yields low-variance stochastic gradient estimators of the ELBO. Gradients are computed by automatic differentiation and updated using stochastic gradient ascent hoffman2013stochastic,ranganath2014blackbox. Convergence is monitored via the mean change in ELBO.
The mean-field factorization imposes posterior independence across parameter vectors and restricts covariance matrices to be diagonal. While this assumption substantially improves scalability in high-dimensional settings, it typically understates posterior uncertainty by ignoring cross-parameter correlations. In the present application, the primary objectives of interest are predictive choice probabilities and implied elasticities, which depend mainly on posterior means rather than higher-order dependence structures. The mean-filed approximation therefore offers a computationally efficient trade-off between tractability and accuracy in a model with tens of thousands of latent parameters.
A common concern in demand estimation is price endogeneity. If prices respond to unobserved demand shocks, they may be correlated with the unobserved component of utility, biasing estimates of price sensitivity. In empirical applications, this issue can be addressed through instrumental variables (IV). In a Bayesian framework, IV estimation can be implemented by specifying a joint model of demand and pricing, allowing for correlation between their structural disturbances kleibergen2003bayesian. This approach integrates over the joint posterior of demand and pricing parameters and propagates first-stage uncertainty directly into the demand estimates.
In the following simulation study, price endogeneity is not a concern by construction. Prices are generated exogenously from a stochastic process that is independent of the utility shocks. Consequently, the identifying variation in prices is orthogonal to unobserved demand components and price coefficients are consistently estimated without the need for IVs. In empirical applications, however, additional identifying assumptions or instruments would be required.
We simulate repeated purchase data intended designed to resemble retail scanner settings with many products, multiple categories and sparse individual purchase histories. Let $i \in \{1, \dots, I\}$ index individuals, $c\in\{1,\dots, C\}$ categories, $j_c\in \{1, \dots, J_c\}$ products within category $c$ and $t\in\{1, \dots, T\}$ shopping trips per individual.
Preferences follow a K-dimensional latent factor structure. For each individual and product, we draw
These draws generate heterogeneous baseline utilities $\boldsymbol{\theta}_i'\boldsymbol{\gamma}_{j_c}$, heterogeneous price sensitivities $\boldsymbol{\theta}_i'\boldsymbol{\lambda}_{j_c}$ and heterogeneous inertia strengths $\boldsymbol{\theta}_i'\boldsymbol{\rho}_{j_c}$. The number of factors $K$ controls the dimensionality and correlation structure of heterogeneity.
Uniform distributions are used for the latent factors and loadings to generate flexible but controlled heterogeneity without imposing additional structure on higher-order moments. In particular, uniform draws avoid mechanically inducing normality or specific tail behavior in utilities, allowing the simulation to isolate the role of dimensionality, correlation induced by the factor structure and inertia strength. Because the focus of the simulation is comparative performance across model specifications rather than recovering a particular parametric distribution, uniform draws provide a transparent and design-neutral benchmark.
Prices follow a two-level process with category-specific scales and trip-specific shocks. For each category $c$, we draw a baseline level $m_c$ and a dispersion parameter $r_c$
and set baseline product prices $p_{j_c}\sim\mathcal U(m_c,m_c+r_c)$. At each trip $t$, prices are affected by idiosyncratic shocks $\varepsilon_{j_ct}\sim\mathcal N(0,0.2)$ and truncated below at $0.1$, yielding
To generate multi-category baskets and realistic sparsity, category incidence is modeled separately from product choice. At each trip $t$, individual $i$ purchases in $C_{it}\sim\mathcal U(\lfloor\frac{C}{2}\rfloor,C)$ categories and a subset $\mathcal C_{it}\subset\{1,\dots,C\}$ of that size is selected. Conditional on $c \in \mathcal{C}_{it}$, individual $i$ chooses the product that maximizes his utility
with $\epsilon_{ij_ct} \sim \text{Gumbel}(0,1)$ this yields standard multinomial logit choice probabilities, as in equation (ref). We draw $y_{ij_ct}$ according to equation (ref) and update $\delta_{ij_c, t-1}$. In the simulation, inertia is exogenous by construction.
Figure (ref) illustrates the effect of the inertia in a setting with $C=10$ categories and $J_c=10$ product per category. When $\boldsymbol{\rho}_{j_c}=0$, choice probabilities are approximately independent of the previously purchased product. When $\boldsymbol{\rho}_{j_c}\sim \mathcal{U}(0,2)$, the probability of repurchasing the same product increases drastically, generating strong persistence in observed choices while preserving the possibility to switch to another product.
This section evaluates the predictive and economic performance of the dynamic product-level factor model. While the design favors a factor structure with inertia, the results provide insight into how the model behaves as dimensionality, sparsity and sample size vary.
We implement the model in probabilistic programming language Stan carpenter2017stan with standard normal priors $\mathcal N(0,1)$ on all latent variables (as in Donnelly2021counterfactual) and approximate the posterior using VI as described in Section (ref).\footnote{A robustness analysis using a less informative prior specification is reported in Appendix (ref).} All computations are executed on the Hilbert Cluster at Heinrich Heine University D\"usseldorf. For each experimental setting we generate $R=25$ replication datasets and split each dataset into $80\%$ training and $20\%$ test data. We retain $S=4000$ posterior samples and compute predicted choice probabilities $\hat p_{s,n,j_c}$ for each posterior draw $s \in S$ and observation in the test set $n \in N$. Because the data generating process (DGP) is known, predictive performance can be evaluated against the true choice probabilities $p^{\mathrm{true}}_{n,j_c}$. We summarize prediction accuracy by the root mean squared error (RMSE) for each draw $s$
and report it as the mean across all posterior draws and replications. As a benchmark, we estimate the mixed logit specification from equation (ref) using the mlogit package in R croissant2020mlogit and a static factor model without the inertia term $\boldsymbol{\theta}_i'\boldsymbol{\rho}_{j_c}\,\delta_{ij_c,t-1}$ using the same estimation approach as for the dynamic factor model.
Figure (ref) reports test-set RMSE (left panel) and runtime (right panel) as the number of categories increases up to $C=200$ (holding $I=40$, $J=10$, $T=20$ and $K=5$ fixed). In the left panel, three patterns emerge. First, the RMSE of the dynamic factor model declines as the number of categories increases. Although the dimensionality of the choice problem expands, additional categories provide informative cross-category variation that sharpens inference on the shared latent factors an inertia parameters. Because the factor structure links preferences across categories, observed behavior in one market helps identify tastes that are relevant elsewhere. In this design, the informational gains from cross-category pooling outweigh the increase in dimensionality.
Second, the static factor model, which omits inertia but retains the shared latent structure, exhibits relatively stable RMSE as the number of categories grows. The factorization continues to pool information across categories, preventing decline in predictive accuracy. However, because the DGP includes state dependence, the static model remains misspecified. Additional categories do not considerably reduce this structural misspecification and predictive performance remains approximately constant.
Third, the mixed logit model displays increasing RMSE as the number of categories expands.\footnote{We cannot report RMSE for the mixed logit model with $C=200$ categories due to runtime restrictions on the cluster.} Unlike the factor specifications, the mixed logit model does not impose a shared low-dimensional structure across categories and is estimated separately by category. As the number of categories increases, each category contributes limited within-category information and the absence of cross-category pooling lead to progressively weaker identification and rising prediction error.
Taken together, the results indicate that the shared factor structure becomes particularly valuable in high-dimensional environments. The dynamic specification not only remains stable but benefits from additional cross-category information.
The right panel of figure (ref) reports runtime on a log scale. The dynamic and static factor models exhibit roughly proportional growth in runtime as the number of categories increases, consistent with the need to evaluate multinomial logit choice probabilities over a large dataset. By contrast, the mixed logit model exhibits a sharply accelerating runtime profile. The increase is close to exponential in the number of categories, reflecting the simulation-based integration required for random coefficients and the absence of a shared low-dimensional representation. As dimensionality grows, computational cost rises disproportionately relative to the factor-based specifications.
These results highlight a dual advantage of the dynamic factor approach in this simulation design: improved predictive performance and favorable computational scaling as the number of categories increases. At the same time, the interpretation should remain thoughtful. The DGP follows a dynamic factor structure with inertia, so the dynamic model is correctly specified, while the static and mixed logit benchmarks are misspecified. The observed divergence therefore reflects performance under specification alignment. The extent to which similar gains arise under alternative data-generating environments remains an empirical question.
Table (ref) complements Figure (ref) by reporting test-set RMSE of the dynamic factor model, accuracy and runtime across variations in the cross-sectional dimension $I$, purchase-history length $T$, number of products per category $J$ and number of categories $C$. In contrast to the RMSE, the accuracy is measured as the ratio of correctly predicted product choices therefore evaluating discrete classification performance instead of probabilistic calibration.
Increasing the number of individuals from $I=40$ to $I=1000$ substantially improves predictive performance. For example, at $J=10$, $T=5$ and $C=10$, RMSE falls from $0.1629$ to $0.0795$ and accuracy rises from $0.2692$ to $0.4372$. Similar improvements are observed across all settings. This improvement reflects that a richer cross section sharpens inference on the shared latent structure.
Longer purchase histories improve both RMSE and accuracy. This pattern is consistent with the interpretation of inertia as state dependence that becomes more informative when more within-category transitions are observed and it aligns with classic identification arguments that longer panels help distinguish true state dependence from persistent heterogeneity heckman1981.
Increasing the number of products per category affects the two metrics differently. When $J$ rises from $10$ to $100$ (holding $I=40$, $T=20$ and $C=10$ fixed), RMSE declines from $0.0874$ to $0.0232$, while accuracy drops sharply from $0.5295$ to $0.0378$. The decline in accuracy reflects the inherent difficulty of predicting the exact chosen alternative in a large choice set. Even well-calibrated models will exhibit low classification rates when many alternatives are available. RMSE, by contrast, benefits mechanically from smaller per-product choice probabilities in larger choice sets. Finally, runtime increases with the number of observations and with the size of the choice problem (in particular, with $I$, $C$ and $T$), which is the expected scaling given the need to evaluate choice probabilities repeatedly during inference.
We evaluate the economic implications of the estimated demand system by computing own-price elasticities from posterior draws of the dynamic factor model. Own-price elasticities are obtained by partially differentiating the multinomial logit choice probability (ref) with respect to the product's own price and scaling by the ratio of its price to choice probability. For consumer $i$, product $j_c$, category $c$, trip $t$ and posterior draw $s$, the own-price elasticity is given by
where \(P_{ij_ct}^{(s)}\) denotes the predicted choice probability. We then aggregate these draw-specific elasticities across observations within each product-category pair. Posterior means summarize average elasticities, while credible intervals are constructed from the empirical posterior quantiles across draws.
Figure (ref) reports mean own-price elasticities by category together with $95\%$ credibility intervals for both the dynamic and static specifications over $6$ categories with $J_c=10$ products in each category. Several observations emerge.
First, the dynamic specification yields uniformly negative mean own-price elasticities, with magnitudes that vary across products and categories. This heterogeneity reflects both realized price dispersion and differences in estimated price sensitivity across latent dimensions.
Second, the static specification produces noticeably wider credibility intervals and importantly, the reported 95% credibility intervals for the static elasticities include zero across all products. In a classical frequentist interpretation, this would suggest that own-price effects are not statistically distinguishable from zero at conventional levels. In the present Bayesian framework, however, the intervals reflect posterior uncertainty rather than sampling-based hypothesis tests. The fact that zero lies within the posterior interval indicates that the data provide limited information about price responsiveness under the static specification, particularly once inertia is omitted.
This pattern is economically informative. When inertia is excluded, persistent purchase behavior may be attributed to unobserved heterogeneity rather than state dependence, weakening the estimated relationship between price changes and switching behavior. As a result, the static model generates elasticities that are both more weakly identified and more uncertain. The dynamic specification, by explicitly modeling state dependence, appears to sharpen inference on price sensitivity. Again, these differences should be interpreted cautiously. Because the DGP includes inertia by construction, the broader confidence intervals and near-zero elasticities in the static case partly reflect structural misspecification rather than purely statistical limitations.
Large-scale retail environments combine high-dimensional product assortments with sparse purchase histories at the individual level. This paper proposes a dynamic product-level factor model that addresses these features by combining a shared latent factor structure for heterogeneity with within-category state dependence. In simulation designs calibrated to realistic scanner-data settings, the model delivers improved predictive accuracy relative to static factor specifications and mixed logit benchmarks, with gains that become more pronounced as the number of categories increases. The economic implications are substantive: accounting for inertia changes the distribution of inferred price sensitivities and therefore affects implied demand elasticities.
Several directions for future research appear promising. First, richer inertia mechanisms could be incorporated to better capture consumer dynamics. Examples include category-level switching costs, multiple-lag dependence and state variables that summarize longer purchase histories, as well as formulations that allow inertia to vary with observed marketing variables such as promotions. Second, applying the framework to real-world scanner data would require addressing additional empirical challenges, including price endogeneity, unobserved choice sets and the modeling of category incidence (the decision to purchase in a category) alongside within-category brand choice. Third, the factor structure could be extended to allow time-varying preferences or hierarchical priors that link products within and across categories. Taken together, these extensions would further strengthen the case for dynamic factor models as a scalable approach to demand estimation in modern retail markets.
\pagestyle{plain}
\printbibliography