Does government borrowing reduce private investment? This project examines the relationship between U.S. federal debt (as a share of GDP) and private investment (as a share of GDP), using 59 years of annual macroeconomic data (1967–2025).
Does government borrowing significantly affect private investment after accounting for GDP growth, inflation, and interest rates?
A simple regression of private investment on debt alone shows a negative but statistically insignificant relationship (p ≈ 0.15). Once GDP growth, inflation, and the 10-year Treasury yield are added as controls, the debt coefficient loses even its negative sign and remains statistically insignificant — GDP growth, not debt, is the dominant driver of private investment in this sample. Unit-root tests (ADF, KPSS) show that Debt_to_GDP, Inflation_Rate, and Interest_Rate_10Y are non-stationary in levels, so the model is also re-estimated in first differences; the debt coefficient remains insignificant on this corrected specification. The result is further robust to Newey–West (HAC) standard errors and to excluding the most influential observations. This dataset does not provide statistically reliable evidence of a crowding-out effect once standard macroeconomic controls are included — see notebooks/02_analysis.ipynb for the full analysis and discussion of limitations.
Crowding-Out-Effect/
├── README.md
├── requirements.txt
├── data/
│ ├── raw/ # Untouched series as retrieved from FRED
│ └── processed/ # Cleaned, merged annual analysis dataset
├── notebooks/
│ ├── 01_data_and_eda.ipynb # Data collection, cleaning, EDA, descriptive stats
│ └── 02_analysis.ipynb # Correlation, regression, diagnostics, conclusions
├── figures/ # Exported plots (PNG)
└── references/
└── sources.md # Full data provenance and variable definitions
Five annual/quarterly series from FRED (Federal Reserve Economic Data): federal debt (% of GDP), nominal and real GDP, private investment, and the 10-year Treasury yield. Quarterly series are aggregated to annual averages; private-investment share, GDP growth, and inflation (via the GDP deflator) are derived from these. Full source documentation, series IDs, and the cleaning methodology are in references/sources.md and notebooks/01_data_and_eda.ipynb.
- Descriptive statistics & EDA: summary statistics, histograms, boxplots, time-series plots, correlation heatmap
- Regression: simple linear regression (debt only) → multiple linear regression (debt + growth + inflation + interest rate)
- Diagnostics: residual plots, Q–Q plot, Jarque–Bera normality test, Variance Inflation Factor, Breusch–Pagan test, Durbin–Watson statistic
- Stationarity: ADF and KPSS unit-root tests on all series, in levels and first differences
- Robustness checks: Newey–West (HAC) standard errors, Cook's-distance influence analysis with refitting, first-differenced regression (Model 3)
No advanced econometric methods (VAR, IV, panel/mixed-effects models, etc.) are used — the project intentionally uses the simplest methods that can answer the research question rigorously.
git clone <repo-url>
cd Crowding-Out-Effect
pip install -r requirements.txt
jupyter notebook notebooks/01_data_and_eda.ipynbRun 01_data_and_eda.ipynb first — it builds data/processed/crowding_out_dataset.csv from the raw files, which 02_analysis.ipynb then reads.
This is an observational, single-country, single-equation analysis. It cannot establish causation, and does not account for reverse causality, omitted confounders (monetary policy, tax policy, global capital flows), or structural breaks around 2008 and 2020. See the Conclusion section of 02_analysis.ipynb for full discussion.