Craving and anxiety, thirty days apart

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.

The relationship the dataset is named after

Show

Almost everyone shows it

Every pair, split two ways

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.

  • Between people
  • Within a person
  • Pooled

Thirty days with no memory

    And nothing happens over the month

    The one curve that behaves

    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.

    Heavier users report less craving

    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.

    The injected shock

    • Ordinary day
    • Major stress event

    Effect of that shock, variable by variable

    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.

    The daily arc

    Craving by time of day, averaged over all 30,000 days. Bars are one standard error and are smaller than the line width.

    What carries signal, and what is decoration

    Twelve triggers, one number

    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.

    Overall craving is not the average

    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.

    What cleaning changed

    StepCheckRowsCellsAction

    Every column, audited

    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.

    1,000 participants × 30 days. ICC is the share of a column's variance explained by which person it came from.