Temperance

Courage gave us specific estimates. Temperance asks what those estimates actually mean — and more importantly, what they do not mean.


What is Temperance?

Temperance is the fourth Cardinal Virtue of data science. It is the discipline of restraint — of not overclaiming from results that are always uncertain and always model-dependent.

Temperance involves four steps:

  1. State what the estimates do not show. Every model has assumptions. Temperance makes those assumptions explicit and explains what conclusions fail if the assumptions fail.
  2. Distinguish group predictions from individual predictions. Model estimates describe averages across groups, not forecasts for specific individuals.
  3. Acknowledge the limits of our uncertainty estimates. The confidence ranges we report reflect only the uncertainty we have modeled — not uncertainty about whether the model is correctly specified, the sample is representative, or the relationships are stable.
  4. Name additional quantities of interest. The question we answered is rarely the only question worth asking. Temperance identifies what else a careful reader might want to know that this analysis cannot provide.

Without Temperance, Courage becomes overconfidence. A number without its limitations is more dangerous than no number at all.


Our Model — Three Ways

Courage gave us the fitted model. Before interpreting it, it helps to express it three ways.

In words: We predict each household’s discretionary spending share using income, life stage, how those two interact, and number of children. The model draws a separate income trend line for each life stage.

In a parameter table:

Fitted model parameters with 95% confidence intervals
term estimate conf.low conf.high
(Intercept) 0.0556 0.0389 0.0723
income_scaled -0.0042 -0.0103 0.0019
life_stageWorking Adult 0.3815 0.3608 0.4022
life_stageElderly -0.0135 -0.0372 0.0102
num_children 0.0594 0.0521 0.0668
income_scaled:life_stageWorking Adult -0.0120 -0.0181 -0.0059
income_scaled:life_stageElderly 0.0046 -0.0018 0.0110

As a mathematical formula:

\[\widehat{Y}_i = \beta_0 + \beta_1 \cdot \text{Income}_i + \beta_2 \cdot \mathbf{1}[\text{WA}_i] + \beta_3 \cdot \mathbf{1}[\text{Elderly}_i] + \beta_4 \cdot \text{Income}_i \cdot \mathbf{1}[\text{WA}_i] + \beta_5 \cdot \text{Income}_i \cdot \mathbf{1}[\text{Elderly}_i]\] \[+ \beta_6 \cdot \text{Children}_i\]

where \(\beta_1\) is the income effect for Students (the baseline group), and \(\beta_4\), \(\beta_5\) show how much the income effect differs for Working Adults and Elderly households. The model does not predict any individual perfectly — the average error per household is shown in the model fit table below.


What We Cannot Conclude

Temperance is the discipline of restraint — of not overclaiming. The model in the Courage tab produces estimates. This tab explains what those estimates do and do not mean.


1. The income effect is directionally causal, but not cleanly identified.

Income is a manipulable treatment — tax credits, transfers, and wage policies can change it. This justifies a softer causal interpretation: we estimate the income → spending relationship, not merely describe it. However, income in real-world data is tangled up with other unobserved household characteristics — wealth, natural frugality, region — that also predict spending. The estimates are the observed income gradient, which is likely directionally correct but not a clean experimental effect. The same limitation applies to the life stage comparison: the model tells us whether the income pattern appears to differ across life stages, not whether it would differ in a controlled experiment where income was randomly assigned.


2. Predicted shares describe groups, not individuals.

A predicted discretionary share of 12% for a working adult earning $60,000 per year means: among working adults with that income in this dataset, the average discretionary share was approximately 12%. It does not mean any specific individual at that income level will spend 12% on discretionary goods. Individual households vary enormously around the group average, as the histogram in the Validity tab shows.


3. The dataset fusion introduces measurement inconsistency.

“Discretionary spending” means different things in each source dataset. Wine and gold products (Customer Personality dataset) are not the same as entertainment subscriptions (BLS PUMD) or personal care and technology (Student dataset). The category mapping we applied is defensible but imperfect. Any finding that compares discretionary shares across life stages is partly comparing apples to oranges.


4. The working adult data may not represent U.S. consumers.

The Customer Personality Analysis dataset is likely European. Its income figures are unlabeled, its spending categories include items (wine, fish, gold) more reflective of European consumer markets, and there is no stated geographic coverage. Conclusions about U.S. working-age adult spending should be drawn from the BLS PUMD rows (source == “BLS_PUMD”) only.


5. The world is more uncertain than any model suggests.

Even if every assumption in our model were exactly right, the confidence intervals reported are only as good as those assumptions. They do not capture uncertainty about whether the model is correctly specified, whether the data are representative, or whether the spending patterns observed in 2023–2024 will persist. The true uncertainty is larger than the intervals suggest.


6. The confidence ranges are narrower than the true uncertainty.

The confidence ranges in the Courage table describe how precisely we estimated the model’s coefficients given this particular dataset. What they do not capture:

  • Uncertainty about whether our model is the right one
  • Uncertainty about whether the data represent the population we care about
  • Uncertainty about whether spending patterns from 2022–2024 will hold in other years

In other words, even if our numbers are precise, they may not be accurate. Precision measures how consistent our estimates are; accuracy measures whether they are close to the truth. The true uncertainty in our conclusions is wider than any interval we can compute from this data alone.


Model Fit Summary

How well the model fits the data
R² (% variation explained) Adj R² Typical error (Residual SD) N (households)
0.3974 0.3969 0.226 7094

tells us what fraction of the variation in discretionary spending share the model explains. A value well below 1.0 — common when studying human behavior — means income and life stage together capture only part of the picture. That is not a failure; it is an honest reflection of how much individual households differ from one another even within the same life stage.

Typical error is the average amount by which the model’s prediction is off for any given household — expressed in the same units as the outcome (share of spending).


Individual Predictions

What does the model predict for specific, representative households?

Model predictions for representative households
Description Predicted share 95% CI low 95% CI high
Student, $10K income, 0 children 5.1% 3.7% 6.5%
Working Adult, $60K income, 2 children 45.9% 44.8% 47.0%
Working Adult, $100K income, 0 children 27.5% 26.6% 28.5%
Elderly, $40K income, 0 children 4.4% 3.2% 5.5%

Each row is one specific household. The predicted share is the model’s best guess; the low/high columns show the range where the true group average is likely to fall. These ranges do not capture how much any individual household might differ from that average — individual behavior varies far more widely than the group average does.

Average Predictions by Life Stage

Average predicted discretionary share by life stage
Life stage Avg predicted share 95% CI low 95% CI high
Student 5.6% 2.3% 9.0%
Working Adult 35.7% 35.0% 36.5%
Elderly 7.4% 6.3% 8.5%

These are the average predicted values across all households in each life stage group, using the model’s estimates. This is the headline summary: holding income and number of children at the levels actually observed in our data, what is the expected discretionary share for each group?

Life Stage Differences

How much does predicted discretionary share differ between life stages, holding income and children constant?

Estimated life-stage differences in discretionary share (vs. Student)
Comparison Estimated difference 95% CI low 95% CI high
Elderly - Student 1.8% -1.7% 5.3%
Working Adult - Student 30.1% 26.6% 33.5%

Income Effect

What is the predicted change in discretionary share associated with a $10,000 increase in annual income, within the same life stage?

Estimated income effect on discretionary share per $10,000, by life stage
Life stage Effect per $10K income 95% CI low 95% CI high
Student -0.4% -1.0% 0.2%
Working Adult -1.6% -1.7% -1.5%
Elderly 0.0% -0.2% 0.2%

These are the income effects broken out by life stage — the core finding. Each row answers: among households in that life stage with the same number of children, how much does discretionary share change per additional $10,000 of income? Differences across rows show whether the income effect is larger or smaller for different groups.

Predicted discretionary spending share across the income range for each life stage, with shaded uncertainty bands. The band width reflects how precisely we estimated the group average — not the full range of individual household behavior, which would be much wider.

The shaded ribbon shows uncertainty about where the group average line sits — not the full range of individual households around that line, which would be much wider.

How should a reader interpret these estimates?

The estimates describe groups, not individuals. A predicted discretionary share of 18% for a Working Adult earning $60,000 with two children means: among Working Adults in this dataset with that income and family size, the average discretionary share was approximately 18%. It does not mean any specific household will spend exactly 18%. Individual households scatter widely around the group average, as the histograms in the Validity tab show.

The income effects differ by life stage. Each one answers: “within this life stage, how much does discretionary share change per $10,000 of income?” The model allows these to be different for each group. They do not say that experimentally giving a student more income would produce the same change — the model is fitted on observed variation, not a controlled experiment.

Additional Quantities of Interest

Beyond average predicted discretionary shares, a policymaker or researcher might also care about:

  1. How spread out households are within each life stage — not just where the group average sits, but how widely individual households scatter around it. If households in the same life stage all spend similarly, the group average is a useful guide. If they vary a lot, it is not. The “Residual SD” in the model fit table measures this spread, and the histograms in the Validity tab show it visually: overlap between groups is substantial.

  2. The predicted shares for the other spending categories — food, essentials, and healthcare — not just discretionary. A household budget sums to 100%, so a shift in one category must come from another. Understanding which categories expand and contract across life stages is the fuller picture this project only partially addresses.

Why These Estimates May Be a Poor Answer

  1. The data come from different populations observed at different times. The student data is from approximately 2023, the working adult data from a European marketing campaign, and the elderly data from the 2024 BLS PUMD. These differences in geography, sampling method, and timing mean we are partly comparing apples to oranges. The life-stage coefficients absorb not just life-stage differences but also dataset-origin differences that have nothing to do with life stage.

  2. The sample excludes structurally absent populations. Institutionalized elderly, very-low-income households, and homeless individuals are absent from all three datasets. The model has no information about them and cannot extrapolate to them. Any claim about “elderly spending” based on this model applies only to non-institutionalized elderly above a minimal income threshold — a subset, not the full population.

  3. Even with every assumption exactly right, the confidence ranges understate the true uncertainty. They do not capture uncertainty about whether our model is the right one, whether the category definitions are consistent across datasets, or whether 2022–2024 spending patterns will persist. The true uncertainty is larger than any interval we can compute.

This project estimates that income affects discretionary spending differently across life stages — the effect is not uniform. A $10,000 income increase produces a different spending shift for students, working adults, and elderly households. This life-stage difference is the central finding, and it has real policy relevance: an income transfer program will affect spending behavior differently depending on who receives it.

What this project does not demonstrate is that these estimates reflect a clean experimental income effect, that they would persist under different economic conditions, or that they apply with equal accuracy to any specific individual household. The estimates are tools for thinking about the direction and rough magnitude of income effects — not forecasts for individuals, and not fully causally identified effects.