Projects / Data Analytics / Case Study

What drives poverty
in Canada?

An econometric policy analysis spanning panel regression, IV endogeneity testing, and time-series forecasting. Four socioeconomic drivers across four Canadian provinces from 1990 to 2011, extended with CPI forecasting using OLS and ARIMA.

Econometric Policy Analysis
Data Analyst
88 obs · 1990–2011
R · OLS · Panel FE
R OLS Regression Panel Data ARIMA IV / 2SLS lmtest · sandwich · forecast Econometrics Policy Analysis Hypothesis Testing Fixed Effects Time-Series Forecasting
Poverty rate and driver trends across Canadian provinces 1990–2011
The research question

Which variables drive trends
in the poverty rate for all persons?

Poverty is not randomly distributed. It is shaped by wages, employment conditions, government policy, and the circumstances of the most vulnerable households. But which of these levers matters most, and by how much?

Using Statistics Canada data for Quebec, Ontario, Alberta, and British Columbia from 1990 to 2011, this project applies a full econometric workflow to identify and quantify the drivers of the overall poverty rate (PovRate_All), the share of all persons falling below the low-income cut-off.

The analysis progresses from descriptive statistics and hypothesis testing through to multiple regression, diagnostic testing, robust estimation, and fixed-effects panel models.

"Which variables affect trends in poverty rate for all persons? The dependent variable is PovRate_All. The independent variables are PovRate_LP, MinWage, GovTrans, and Employ." — Research specification
The data

88 province-years,
five variables

The dataset tracks four Canadian provinces over 22 years, covering one dependent variable and four potential explanatory variables. The balance of the panel means each province contributes 22 annual observations.

Variable Description Mean Distribution Role
PovRate_All Overall poverty rate for all persons (%) 12.51 % ~Normal, symmetric Dependent
Employ Employment rate (%) 62.22 % Right-skewed (Alberta outlier) Independent
GovTrans Avg. government transfers per household ($) $8,005 Left-skewed Independent
MinWage Real minimum wage (2002 CAD $/hr) $6.98 ~Normal, symmetric Independent
PovRate_LP Poverty rate of lone-parent families (%) 33.31 % Bimodal (high early, low later) Independent
Scatter plots of each independent variable vs overall poverty rate

Scatter plots: each IV vs PovRate_All. Negative relationships for Employ and MinWage, positive for PovRate_LP

Correlation matrix of all variables

Correlation matrix. PovRate_LP has the strongest positive correlation (r = 0.755) and Employment the strongest negative (r = −0.649). GovTrans is weak (r = −0.140) and MinWage negligible (r = 0.018)

The analytical workflow

From descriptive stats
to fixed-effects panel models

The analysis was structured as a progression, with each stage building on the last and each diagnostic test informing how the model needed to be refined.

01

EDA & Distributions

Descriptive statistics, histograms, and scatter plots to understand variable shapes, skewness, and raw relationships

02

Hypothesis Testing

Two-tailed t-tests comparing Ontario, Quebec, and Alberta poverty rates against the four-province population mean

03

OLS Regression

Simple OLS with PovRate_LP alone (R² = 0.57), then multivariate OLS adding Employ, GovTrans, and MinWage. R² jumped to 0.87, revealing omitted variable bias

04

Diagnostics

Breusch-Pagan test for heteroskedasticity. Durbin-Watson + ACF/PACF for autocorrelation

05

Robust Estimation

HC0 White-corrected SEs for heteroskedasticity. Log-log model for elasticity interpretation

06

Fixed Effects

LSDV province dummies + year dummies to control for unobserved between-province variation. Adj. R² = 0.91

07

Endogeneity & IV

Wu-Hausman test for each variable. Spatial instrument for MinWage. 2SLS estimation to check whether OLS estimates remain reliable

08

Forecasting

OLS linear time trend vs ARIMA(1,1,0)(2,0,0)[12] on Canadian CPI. Out-of-sample comparison on 2021–2022 data

The model

What drives poverty
in Canada?

The core OLS model with four drivers. Coefficients shown are log-log elasticities: the percentage change in the overall poverty rate for a 1% change in each variable, holding others constant.

Econometric Model: Drivers of Overall Poverty Rate (PovRate_All)

Employment Rate Elasticity: −2.64  ·  p < 0.001 ✓
Government Transfers Elasticity: −0.79  ·  p < 0.001 ✓
Lone-Parent Poverty Rate Elasticity: +0.22  ·  p < 0.001 ✓
Minimum Wage Elasticity: −0.16  ·  p = 0.18  ✗ n.s.

OLS Model (log-log)

log(PovRate_All)
= β₀ + β₁…β₄ + ε

Adj R² 0.87  ·  F = 137  ·  n = 88

Outcome

Overall
Poverty Rate

QC · ON · AB · BC
1990 – 2011
Provincial mean: 12.51 %

Significantly reduces poverty Significantly increases poverty Not significant (p > 0.05)

Reading the diagram: Employment rate has the largest effect: a 1% increase in employment is associated with a 2.64% decrease in the poverty rate. Government transfers reduce poverty at an elasticity of −0.79. Lone-parent family poverty rate pulls up overall poverty (+0.22), consistent with this subgroup being a structurally vulnerable population. Minimum wage, while negative in direction, is not statistically significant once the other variables are controlled for.

Key findings

Six stages of analysis.
One consistent story.

Finding 01

The model is jointly significant with strong explanatory power

Starting with lone-parent poverty rate as the sole predictor, the model explained 57% of variance (Adj. R² = 0.5695). Adding employment rate, government transfers, and minimum wage pushed that to 86% (Adj. R² = 0.8621), a jump that points to omitted variable bias in the simpler model. PovRate_LP's coefficient dropped from 0.180 to 0.103 when employment was added, a 43% reduction showing that some of its apparent effect was actually capturing employment conditions all along.

The F-test rejects the null that all coefficients are zero (F = 137.03, p < 0.001). Government transfers, employment, and lone-parent poverty rate are each individually significant at the 1% level. Minimum wage, however, is not significant once the other variables are controlled for (p = 0.244).

F-test · joint significance · R²
Fitted vs actual poverty rates

Finding 02

Heteroskedasticity confirmed: OLS standard errors unreliable

The Breusch-Pagan test rejects constant variance (BP = 11.26, p = 0.024). The residuals vs. fitted plot shows uneven spread at different fitted values. This means OLS standard errors are not reliable for inference and need correction before drawing conclusions from t-statistics.

Breusch-Pagan · heteroskedasticity · diagnostics
Residuals vs fitted values — heteroskedasticity check

Finding 03

Positive autocorrelation in panel residuals

The Durbin-Watson statistic (DW = 1.11, p < 0.001) confirms significant positive autocorrelation. The ACF plot shows slow decay, and the PACF spikes at lag 1, consistent with an AR(1) process. In panel data this is expected: poverty in a province last year strongly predicts poverty this year. Both problems together warrant Newey-West standard errors.

Durbin-Watson · ACF/PACF · panel autocorrelation
ACF plot of model residuals

Finding 04

Robust standard errors leave conclusions unchanged

HC0 White-corrected standard errors were computed to address heteroskedasticity. All robust SEs came out slightly smaller than OLS, meaning OLS was overestimating uncertainty. The significance conclusions are unchanged: GovTrans, Employ, and PovRate_LP remain highly significant; MinWage remains insignificant. FGLS improves fit marginally to Adj. R² = 0.8961.

HC0 robust SEs · FGLS · inference validity
Residuals over time by province

Finding 05

MinWage shows marginal endogeneity, but OLS remains reliable

A Wu-Hausman test was run for each continuous predictor using a spatial instrument (the average value of that variable across all four provinces per year). The reasoning: what other provinces do should influence a given province's policy variable, but should not directly affect that province's poverty rate.

MinWage was the only variable with any sign of endogeneity (p = 0.053), consistent with reverse causality: governments may raise the minimum wage in response to high poverty, creating a two-way relationship. Government transfers and employment showed no endogeneity (p = 0.506 and p = 0.955).

The spatial instrument for MinWage was strong (first-stage F = 43.72, above the threshold of 10). The 2SLS IV estimate of MinWage (0.653) was larger than the OLS estimate (0.228), but remained statistically insignificant. The Wu-Hausman p-value of 0.053 means we cannot reject the null that OLS and IV give the same result, confirming the base model estimates hold up.

Wu-Hausman · 2SLS · spatial instrument · endogeneity
Model evolution

From pooled OLS
to province fixed effects

Each modelling step added structure to control for a different source of variation. Fixed effects, which control for unobserved province-level differences, gave the biggest lift in explanatory power.

Model What it controls for Adj. R² Fit
Simple OLS (PovRate_LP only) One predictor, no controls 0.5695
Pooled OLS (all four predictors) Nothing beyond observed variables 0.8621
Log-log model Functional form (elasticities) 0.8692
FGLS (weighted least squares) Heteroskedasticity downweighting 0.8961
Province fixed effects (LSDV) Unobserved province-level factors 0.9052
Province + year fixed effects Province factors + nationwide shocks 0.9123

Key insight from fixed effects: Adding province dummies increased Adj. R² from 0.8621 to 0.9052. Alberta stands out: its poverty rate is 2.4 percentage points higher than Ontario on average, even after controlling for all observed variables. This points to unobserved structural differences (industry mix, demographics, historical policy). Interestingly, MinWage flips sign from −0.248 in pooled OLS to +0.228 after adding province dummies but remains insignificant. The negative sign in pooled OLS was capturing between-province structural differences, not a genuine wage effect.

CPI forecasting

OLS trend vs ARIMA:
two ways to forecast inflation

The second part of the analysis applied two forecasting methods to monthly Canadian CPI data (January 1990 to October 2022, 394 observations). Both models were trained on data up to December 2020 and evaluated against the 22 months of 2021 to 2022 that they had never seen.

Method 01

OLS linear time trend

A simple model: CPI = β₀ + β₁ × t + ε, where t is a sequential month index. The training fit was near-perfect (Adj R² = 0.9943), and early forecasts were close to actual values. But the model assumes a constant rate of increase and cannot adapt to structural changes. By October 2022 it forecast 141.3 against an actual of 153.8, a gap of 12.5 index points, because the post-pandemic inflation surge broke the linear trend assumption.

Out-of-sample accuracy over 22 test months: MAE = 6.45, MAPE = 4.33%, RMSE = 7.67.

Linear trend · Adj R² 0.9943 · MAPE 4.33%
OLS linear trend forecast vs actual CPI 2021-2022

Method 02

ARIMA(1,1,0)(2,0,0)[12] with drift

The auto.arima() function in R tested 39 model combinations before selecting ARIMA(1,1,0)(2,0,0)[12] with drift. The specification: first differencing (d=1) to remove the upward trend and achieve stationarity; one autoregressive lag (p=1) capturing how this month's CPI change relates to last month's; and seasonal AR(2) at lag 12 capturing the same month one and two years ago.

Training RMSE = 0.366, training MAPE = 0.251%, confirming a tight fit on the training data. For the 30-period out-of-sample forecast, confidence intervals widen appropriately over the horizon. Like the OLS model, it underestimates the sharp 2021 to 2022 inflation acceleration, though it captures the autocorrelation and seasonal structure that the linear model ignores entirely.

ARIMA · auto.arima · seasonal · out-of-sample
ARIMA forecast of CPI 30 periods ahead

The key contrast: OLS provides a simple, interpretable forecast with a strong in-sample fit but no ability to adapt. ARIMA models the data-generating process more faithfully: it accounts for autocorrelation (last month's change predicts this month's), seasonality (annual CPI patterns), and uncertainty that grows with the forecast horizon. Neither model anticipated the structural break caused by post-pandemic supply chain disruption and demand shocks from 2021 onward, which is itself a finding: inflation forecasting models built on historical patterns will fail when the underlying regime changes.

Outcomes

Employment dominates.
Minimum wage doesn't register.

86% Variation in poverty explained by the OLS model
−2.64× Employment elasticity, the largest driver in the model
All 3 Province hypotheses rejected: Ontario, Quebec, and Alberta each differ significantly from the population mean
91% R² achieved with province + year fixed effects

Policy implication

Employment conditions and government transfers are the most powerful, evidence-backed levers for reducing poverty.

Across every model specification (levels, log-log, FGLS, province fixed effects) the same three variables consistently matter: employment rate, government transfers, and lone-parent family poverty. Minimum wage, while often central to policy debate, does not emerge as a statistically significant driver once the other factors are accounted for. This is a meaningful finding for evidence-based policy: the biggest levers are broader labour market conditions and direct income support, not the minimum wage floor alone.

What I took away

What this project taught me.

01

Diagnostics aren't optional

Heteroskedasticity and autocorrelation in panel data are not edge cases; they are expected. Running the tests before drawing conclusions from t-statistics is not extra work, it is the minimum standard for credible inference.

02

Consistent results across specifications build confidence

The log-log elasticities were stable across levels, log-linear, and log-log models. When findings survive multiple functional forms, that is evidence the result is real rather than an artefact of model choice.

03

More context leads to better conclusions

The hypothesis tests already told us that Ontario, Quebec, and Alberta each behave differently from the overall average. Adding province fixed effects gave the regression model that same context, letting it account for each province's unique characteristics rather than treating them all the same. Once that context was in the model, the picture became clearer: employment and transfers were the real drivers, and the apparent minimum wage effect turned out to be nothing more than a reflection of existing differences between provinces.

04

ARIMA models the process; OLS captures the trend

A linear time trend model fit the training data almost perfectly (Adj R² = 0.9943) but failed the moment inflation changed pace. ARIMA, by modelling autocorrelation and seasonality rather than just trend, gives a more honest picture of how the data actually behaves. Neither model predicted the 2021 to 2022 surge, which is its own lesson: strong historical fit does not guarantee performance when the underlying regime shifts.

Next case study

CSV Generator —
WECCC Survey Export

A one-click CSV generator that converted complex JSON survey data into analyst-ready files, the tool that directly enabled WECCC to secure funding.

View case study →