Skip to content
Victor Dumeige
← All analytics projects

Reaching the Upper-Middle Class in 1994

A logistic regression on 1994 US Census data testing which socio-economic factors predict crossing the $50,000 income threshold.

Logistic RegressionRCensus DataStatistical Modeling
View data source →
Bar chart showing roughly three-quarters of 32,561 census respondents earning under $50,000 and about a quarter earning $50,000 or more

Highlights

Method
Logistic regression
Year
2024
Sample size
32,561 census respondents
Data source
UCI Machine Learning Repository — Adult dataset

Personal income is a key variable in economic and social research, and its predictors can help guide policy. This analysis looks at what factors most influenced reaching the upper-middle class in 1994, which I define as earning $50,000 or more that year. Framing it as a threshold has three advantages: it focuses on a specific, policy-relevant cutoff; logistic regression is less sensitive to outliers than modeling raw income directly; and it sidesteps the heavily skewed distribution of income itself.

The data is the well-known "Adult" dataset from the UCI Machine Learning Repository, extracted from the 1994 US Census. After pre-processing — re-grouping some categorical variables to avoid low cell counts — I considered ten candidate predictors: sex, age, race, work-class, occupation, marital status, US birth, years of education, and hours worked per week. I tested education both as a category and as a continuous years-of-schooling count; the continuous version fit better and is the one used in the final model. About 24% of the 32,561 respondents made $50,000 or more.

I fit a logistic regression predicting the odds of crossing $50,000 from nine variables at once, holding the others constant, then tested the null hypothesis that each coefficient was zero. Every variable in the findings table below was statistically significant at the 5% level.

By far the largest effect was marital status: married respondents had odds of crossing $50,000 that were almost ten times as high as unmarried respondents. Because that's an odds ratio rather than a probability ratio, it doesn't mean married people were literally "10 times more likely" to earn $50,000+ — but it's still the strongest effect in the model by a wide margin. Years of education came next, with each additional year raising the odds by about a third. The chart below shows the two compounding: predicted probability of crossing $50,000 climbs much faster with education for a married profile than an unmarried one, holding everything else at a typical 1994 value.

A classification tree trained on the same variables, splitting mainly on marital status and education, correctly classified 82% of respondents — a modest improvement over the roughly 76% you'd get by simply predicting that everyone earned under $50,000, since only about 24% of the sample crossed the threshold. McFadden's pseudo-R² for the logistic model was 0.35, generally considered a good fit by that measure.

Two methodological limitations are worth flagging: grouping some categorical variables may have obscured more detailed patterns, and standard logistic regression doesn't test interaction effects — for example, whether education's effect on income differs by work-class. More fundamentally, this is an observational census sample, not an experiment, so these are associations rather than proven causal effects. Marriage and income most likely influence each other in both directions, and both correlate with unmeasured factors like age and household structure — so I'd treat education, not marital status, as the more actionable and less confounded finding here.

Key findings

VariableEffect on oddsNote
Married×9.86The largest effect in the model: married respondents' odds of crossing $50,000 were almost ten times as high.
Federal government employment×5.16The highest odds among the work-class categories tested.
White×1.60Higher odds than the omitted baseline race category.
Asian-Pac-Islander×1.60Same magnitude of effect as the White category, relative to the baseline.
Born in the US×1.25A modest but statistically significant effect.
Male×1.12A small but statistically significant effect.
Each additional year of education×1.35The strongest per-unit, compounding effect in the model.
Each additional year of age×1.03Small per year, but compounds over a career.
Each additional hour worked per week×1.03Small per hour, but compounds across a work week.
Farming or fishing occupation×0.20Lowered the odds to about a fifth of the baseline occupation.
Private household service occupation×0.07The lowest odds in the model — about 7% of the baseline occupation.

Effects for categorical variables (race, work-class, occupation) are relative to an omitted baseline level within each category; the original notes did not record which level that was.

Charts

Line chart showing predicted probability of earning $50,000 or more rising with years of education, much faster for a married profile than an unmarried one
Predicted probability of crossing $50,000 by years of education and marital status, for a typical 1994 profile with other variables held at their mean or mode. The two effects compound.
Histogram of hours worked per week, sharply peaked at 40 hours with smaller peaks around 20, 45, 50, and 60 hours
Distribution of hours worked per week (mean 40.4, SD 12.3). The peak at 40 dwarfs every other value.
Histogram of respondent age, roughly bell-shaped and right-skewed, peaking in the late 20s to mid-30s
Distribution of respondent age (mean 38.6, SD 13.6).
Histogram of years of education, with the tallest bars at 9 years (high school) and a secondary peak at 13 years (bachelor's degree)
Distribution of years of education (mean 10.1, SD 2.6). The two tallest bars correspond to a high school diploma and a bachelor's degree.

Limitations

View data source →R, tidyverse, ggplot2, arm, tree