One thousand nicotine-pouch users, thirty consecutive days each. The dataset is named for a relationship that a straight correlation says does not exist — and the reason it vanishes is the whole lesson.
Each row is one pair of columns. The between dot asks whether people who crave
more are more anxious people; the within dot asks whether a given person is more anxious on
the days they crave more. The pooled correlation — what you get from a plain
df.corr() — is the small tick, and it lands wherever the two happen to average out.
Craving against time since the last pouch. This is monotonic, steep and present both between people and within them — a withdrawal gradient the generator clearly meant to put in. Bars are one standard error.
Mean craving by pouches per day. The satiation direction is deliberate and consistent, though it runs the opposite way from the dependence gradient you would expect in real cohorts, where heavier use and stronger craving travel together.
Standardised difference between stress-event days and ordinary days. Anxiety, stress and craving all move together — and mood, which in any real cohort would drop hardest, does not move at all. The effects were written in one column at a time.
Craving by time of day, averaged over all 30,000 days. Bars are one standard error and are smaller than the line width.
Mean craving on days attributed to each trigger. Stress is recorded three times as often as alcohol, but the craving score behind it is identical — the trigger label was drawn independently of everything else.
Treat it as a fourth correlated draw, not a composite. Putting all four in one model will do exactly what four columns at r ≈ 0.96 always do.
| Step | Check | Rows | Cells | Action |
|---|
Thirty-four columns — every one in the cleaned file except the two identifiers
and the Row_Complete flag — with the share of variance that sits
between people rather than within them, and the strength of each column's day-level and person-level
association with the two outcomes. Click a heading to sort. Categorical rows report a correlation
ratio rather than a correlation, so they cannot go negative. The verdict reads the strongest
within-person figure in the row: day-level signal at 0.15 and above, marginal from
0.10, flat below that.