Courage

Justice assessed our data’s quality and chose the right type of statistical model. Courage now picks specific model specifications and estimates the numbers, committing to a concrete answer even knowing the data are imperfect.


What is Courage?

Courage is the third Cardinal Virtue of data science. It is the discipline of committing to a specific estimate — writing down a number and defending it — even when the data are messy, the assumptions are imperfect, and a more cautious analyst might refuse to conclude anything.

Courage involves three steps:

  1. Choose a model. Decide which variables to include and how to combine them. Compare simpler and more complex versions to see what each adds.
  2. Estimate the numbers. Fit the model to the data and report the coefficients (the slopes and adjustments) along with confidence ranges.
  3. Interpret the estimates. Translate the numbers back into plain-language answers to the research question.

Without Courage, Wisdom and Justice produce no answers — only well-posed questions and honest uncertainty. Courage is what turns that uncertainty into a specific, defensible claim about the world.


The Regression Model

Courage means committing to an estimate — making a specific claim about how income affects spending composition and whether that effect differs by life stage, even knowing the data are imperfect.

Candidate Models

We build up from a simple model to the full model, adding one set of variables at a time to see what each contributes.

Model 1 — income only:

Model 1: discretionary share ~ income
Term Estimate Std Error t stat p value CI low CI high
(Intercept) 0.2674 0.0048 55.2845 0 0.2579 0.2769
income_scaled -0.0062 0.0005 -12.1821 0 -0.0072 -0.0052

Income alone has a negative coefficient: higher-income households spend a smaller share on discretionary goods. This makes intuitive sense — as income rises, households cover necessities with less of their budget, but extra leisure spending doesn’t grow proportionally. However, income alone leaves most variation unexplained. The life stage differences we saw in the data suggest there is more to the story.

Model 2 — income + life stage:

Model 2: discretionary share ~ income + life stage
Term Estimate Std Error t stat p value CI low CI high
(Intercept) 0.0722 0.0070 10.2848 0 0.0584 0.0859
income_scaled -0.0135 0.0004 -30.8502 0 -0.0144 -0.0127
life_stageWorking Adult 0.3922 0.0084 46.8560 0 0.3758 0.4086
life_stageElderly 0.0619 0.0091 6.7996 0 0.0441 0.0797

Adding life stage shifts the starting levels: Working Adults and Elderly show different baseline discretionary shares from Students at the same income. However, this model forces the income effect to be identical across life stages — it cannot answer whether income affects spending differently for students vs. retirees.

Model 3 — income × life stage + children (chosen model):

Model 3: discretionary share ~ income × life stage + children (allows income effect to differ by life stage)
Term Estimate Std Error t stat p value CI low CI high
(Intercept) 0.0556 0.0085 6.5204 0.0000 0.0389 0.0723
income_scaled -0.0042 0.0031 -1.3586 0.1743 -0.0103 0.0019
life_stageWorking Adult 0.3815 0.0106 36.0641 0.0000 0.3608 0.4022
life_stageElderly -0.0135 0.0121 -1.1200 0.2627 -0.0372 0.0102
num_children 0.0594 0.0038 15.8167 0.0000 0.0521 0.0668
income_scaled:life_stageWorking Adult -0.0120 0.0031 -3.8347 0.0001 -0.0181 -0.0059
income_scaled:life_stageElderly 0.0046 0.0033 1.4201 0.1556 -0.0018 0.0110

Multiplying income × life stage allows the income effect to differ by life stage — this is the defining feature of our research question. The income_scaled:life_stageWorking Adult and income_scaled:life_stageElderly terms measure how much the income effect for each group differs from the Student baseline. We choose Model 3 as our final model because it directly answers whether income affects spending differently across life stages.


How Our Model Works

The model we chose in Justice is:

\[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 + \varepsilon_i, \quad \varepsilon_i \sim \mathcal{N}(0,\, \sigma^2)\]

where \(Y_i\) is the discretionary spending share for household \(i\), Income is measured in $10,000 increments, and Students are the baseline group. \(\beta_4\) and \(\beta_5\) capture how much the income effect differs for Working Adults and Elderly households compared to Students.

Fitted Equation

Linear regression: discretionary share ~ income + life stage + children
Term Estimate Std Error t stat p value CI low CI high
(Intercept) 0.0556 0.0085 6.5204 0.0000 0.0389 0.0723
income_scaled -0.0042 0.0031 -1.3586 0.1743 -0.0103 0.0019
life_stageWorking Adult 0.3815 0.0106 36.0641 0.0000 0.3608 0.4022
life_stageElderly -0.0135 0.0121 -1.1200 0.2627 -0.0372 0.0102
num_children 0.0594 0.0038 15.8167 0.0000 0.0521 0.0668
income_scaled:life_stageWorking Adult -0.0120 0.0031 -3.8347 0.0001 -0.0181 -0.0059
income_scaled:life_stageElderly 0.0046 0.0033 1.4201 0.1556 -0.0018 0.0110

The fitted equation, substituting the estimated coefficients from the table above:

\[\widehat{Y}_i = 0.0556 + -0.0042 \cdot \text{Income}_i +0.3815 \cdot \mathbf{1}[\text{WA}_i] -0.0135 \cdot \mathbf{1}[\text{Elderly}_i] +0.0594 \cdot \text{Income}_i \cdot \mathbf{1}[\text{WA}_i] -0.0120 \cdot \text{Income}_i \cdot \mathbf{1}[\text{Elderly}_i]\] \[+0.0046 \cdot \text{Children}_i\]

Income is in $10,000 increments; the intercept describes a childless Student household with zero income — far outside the data, and not directly interpretable. The coefficients on Working Adult and Elderly are the life-stage effects holding income and children fixed.

Coefficient Interpretation

Income (income_scaled) — the income effect for Students: Among Students with the same number of children, a $10,000 income increase is associated with this change in discretionary share. This is the baseline estimate for the student group.

income_scaled:life_stageWorking Adult — adjustment for Working Adults: How much the income effect for Working Adults differs from the Student effect. Add this to the income coefficient above to get the total income effect for Working Adults. If the confidence range for this term does not cross zero, the income effect is meaningfully different between Students and Working Adults.

income_scaled:life_stageElderly — adjustment for the Elderly: Same idea, for Elderly households. Total income effect for Elderly = income coefficient + this term.

Working Adult vs. Student (intercept): The baseline difference in discretionary share between groups at zero income — far outside the actual data range, so mainly used to build predictions at realistic income levels.

Elderly vs. Student (intercept): Same comparison for Elderly vs. Students.

Children (num_children): Within the same life stage and income level, each additional child is associated with a smaller discretionary share — families with children spend less on leisure.


Predicted Values

The plot below shows predicted discretionary spending share across the income range for each life stage, holding number of children at zero. The steepness of each line is the income effect for that life stage. Lines that are parallel would mean income affects all groups equally; lines with different slopes mean income affects spending differently depending on life stage.


Interpretation

A $10,000 income increase shifts discretionary spending share by -0.4 percentage points for Students, -1.6 percentage points for Working Adults, and 0.0 percentage points for Elderly households — the income effect is not the same across life stages.

The three lines in the predicted-values plot have different slopes. If income affected all groups the same way, the lines would be parallel. They are not — which is the core finding: the income → spending relationship differs across life stages.

What weight to place on these estimates — given the data limitations — is the subject of the Temperance tab.