Large-scale characterization of co-purchased food products with soda, fruits, and vegetables: association rule mining on longitudinal loyalty card grocery purchasing data in Montréal, Canada. (Preprint)
Bibliographic record
Abstract
BACKGROUND Foods are not purchased in isolation but are normally co-purchased with other food products. The patterns of co-purchasing associations across a large number of food products are not known. OBJECTIVE To quantify the association of food products purchased with each of three food categories of public health importance; soda, fruits and vegetables using Association Rule Mining (ARM). METHODS ARM was applied to grocery purchasing baskets (lists of purchased products) collected from loyalty club members in a major supermarket chain between 2015 and 2017 in Montréal, Canada. A selected subset of co-purchasing associations identified by ARM was further tested by confirmatory longitudinal (shopper-level) regression models controlling for potential confounders of the associations. RESULTS We analyzed 1,692,494 baskets. Salty snacks showed the strongest co-purchasing association with soda (Relative Risk[RR]=2.07, 95% Confidence Interval[CI]: 2.06, 2.09). Fresh vegetables and fruits showed considerably different patterns of co-purchasing from those of soda, with pre-made salad and stir fry showing a strong association (RR=3.78, 95%CI|:3.74-3.82 for fresh vegetables and RR=2.79, 95%CI:2.76-2.81 for fresh fruits). The longitudinal regression analysis confirmed these associations after adjustment with the confounders. CONCLUSIONS Quantifying inter-dependence of food products within shopping baskets provides novel insights to develop nutrition surveillance and interventions targeting multiple food categories, while motivating research to identify drivers of such co-purchasing. ARM is a useful analytical approach to identify such across-food associations from large transaction data.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.001 | 0.003 |
| Meta-epidemiology (narrow) | 0.000 | 0.000 |
| Meta-epidemiology (broad) | 0.001 | 0.001 |
| Bibliometrics | 0.002 | 0.006 |
| Science and technology studies | 0.001 | 0.000 |
| Scholarly communication | 0.001 | 0.000 |
| Open science | 0.002 | 0.001 |
| Research integrity | 0.000 | 0.001 |
| Insufficient payload (model declined to judge) | 0.002 | 0.001 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".