Looking at the relationship between wages and unemployment over a 20 year span.
- Wage data: average hourly earnings of production and nonsupervisory employees (adjusted to 2016-dollars, source: FRED).
- Unemployment data: labor force statistics from the current population survey (source: BLS).
library(ggplot2)
library(dplyr)
library(lubridate)
library(broom)
wages <- readRDS("data/wages.rds")
unemployment <- readRDS("data/unemployment.rds")
ggplot(wages, aes(date, hourly_wages_2016)) +
geom_line() +
labs(x = "Date", y = "Hourly wages (2016 dollars)") +
theme_minimal()

ggplot(unemployment, aes(date, unemployment_rate)) +
geom_line() +
labs(x = "Date", y = "Unemployment rate") +
theme_minimal()

Now let’s look at the relationship between the two.
wages <- wages %>% left_join(unemployment, by = "date")
ggplot(wages, aes(unemployment_rate, hourly_wages_2016)) +
geom_point() +
geom_smooth(method = lm) +
labs(x = "Unemployment rate", y = "Hourly wages (2016 dollars)") +
theme_minimal()

So there is a linear relationship between unemployment rate and hourly wages, but two things are weird:
- Wages increase with unemployment, which is the opposite of what we expect (an increasing “supply” of workers should devalue labor).
- There are some pretty startling residuals where the pattern seems reversed (i.e., what we would expect).
Let’s look at this again by year.
wages <- wages %>%
mutate(year = year(date))
ggplot(wages, aes(unemployment_rate, hourly_wages_2016,
color = year, group = year)) +
geom_point() +
geom_smooth(method = lm) +
labs(x = "Unemployment rate", y = "Hourly wages (2016 dollars)") +
theme_minimal()

This makes it clear that there are years that fit the “expected” pattern (wages go up as unemployment drops) and years that don’t. Let’s fit a linear model to each year and then plot the slopes.
yearlyModels <- wages %>%
group_by(year) %>%
do(tidy(lm(hourly_wages_2016 ~ unemployment_rate, data = .)))
yearlyModels %>%
filter(term == "unemployment_rate") %>%
ggplot(aes(year, estimate)) +
geom_line() +
geom_hline(yintercept = 0, linetype = "dashed") +
labs(x = "Year", y = "Estimated wages/unemployment slope") +
theme_minimal()

There’s a mix of positive and negative slopes across years with a varying periodicity. There is not strong evidence that low unemployment leads to increased hourly wages.
LS0tDQp0aXRsZTogIldhZ2VzIHZzLiBVbmVtcGxveW1lbnQiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpMb29raW5nIGF0IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB3YWdlcyBhbmQgdW5lbXBsb3ltZW50IG92ZXIgYSAyMCB5ZWFyIHNwYW4uDQoNCiogV2FnZSBkYXRhOiBhdmVyYWdlIGhvdXJseSBlYXJuaW5ncyBvZiBwcm9kdWN0aW9uIGFuZCBub25zdXBlcnZpc29yeSBlbXBsb3llZXMgKGFkanVzdGVkIHRvIDIwMTYtZG9sbGFycywgc291cmNlOiBGUkVEKS4NCiogVW5lbXBsb3ltZW50IGRhdGE6IGxhYm9yIGZvcmNlIHN0YXRpc3RpY3MgZnJvbSB0aGUgY3VycmVudCBwb3B1bGF0aW9uIHN1cnZleSAoc291cmNlOiBCTFMpLg0KDQpgYGB7ciwgcmVzdWx0cz0naGlkZSd9DQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KGJyb29tKQ0KYGBgDQpgYGB7cn0NCndhZ2VzIDwtIHJlYWRSRFMoImRhdGEvd2FnZXMucmRzIikNCnVuZW1wbG95bWVudCA8LSByZWFkUkRTKCJkYXRhL3VuZW1wbG95bWVudC5yZHMiKQ0KDQpnZ3Bsb3Qod2FnZXMsIGFlcyhkYXRlLCBob3VybHlfd2FnZXNfMjAxNikpICsgDQogIGdlb21fbGluZSgpICsNCiAgbGFicyh4ID0gIkRhdGUiLCB5ID0gIkhvdXJseSB3YWdlcyAoMjAxNiBkb2xsYXJzKSIpICsNCiAgdGhlbWVfbWluaW1hbCgpDQpnZ3Bsb3QodW5lbXBsb3ltZW50LCBhZXMoZGF0ZSwgdW5lbXBsb3ltZW50X3JhdGUpKSArIA0KICBnZW9tX2xpbmUoKSArDQogIGxhYnMoeCA9ICJEYXRlIiwgeSA9ICJVbmVtcGxveW1lbnQgcmF0ZSIpICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KTm93IGxldCdzIGxvb2sgYXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSB0d28uDQoNCmBgYHtyfQ0Kd2FnZXMgPC0gd2FnZXMgJT4lIGxlZnRfam9pbih1bmVtcGxveW1lbnQsIGJ5ID0gImRhdGUiKQ0KZ2dwbG90KHdhZ2VzLCBhZXModW5lbXBsb3ltZW50X3JhdGUsIGhvdXJseV93YWdlc18yMDE2KSkgKyANCiAgZ2VvbV9wb2ludCgpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gbG0pICsNCiAgbGFicyh4ID0gIlVuZW1wbG95bWVudCByYXRlIiwgeSA9ICJIb3VybHkgd2FnZXMgKDIwMTYgZG9sbGFycykiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQoNClNvIHRoZXJlICppcyogYSBsaW5lYXIgcmVsYXRpb25zaGlwIGJldHdlZW4gdW5lbXBsb3ltZW50IHJhdGUgYW5kIGhvdXJseSB3YWdlcywgYnV0IHR3byB0aGluZ3MgYXJlIHdlaXJkOg0KDQoxLiBXYWdlcyAqaW5jcmVhc2UqIHdpdGggdW5lbXBsb3ltZW50LCB3aGljaCBpcyB0aGUgb3Bwb3NpdGUgb2Ygd2hhdCB3ZSBleHBlY3QgKGFuIGluY3JlYXNpbmcgInN1cHBseSIgb2Ygd29ya2VycyBzaG91bGQgZGV2YWx1ZSBsYWJvcikuDQoyLiBUaGVyZSBhcmUgc29tZSBwcmV0dHkgc3RhcnRsaW5nIHJlc2lkdWFscyB3aGVyZSB0aGUgcGF0dGVybiBzZWVtcyByZXZlcnNlZCAoaS5lLiwgd2hhdCB3ZSB3b3VsZCBleHBlY3QpLg0KDQpMZXQncyBsb29rIGF0IHRoaXMgYWdhaW4gYnkgeWVhci4NCg0KYGBge3J9DQp3YWdlcyA8LSB3YWdlcyAlPiUNCiAgbXV0YXRlKHllYXIgPSB5ZWFyKGRhdGUpKQ0KDQpnZ3Bsb3Qod2FnZXMsIGFlcyh1bmVtcGxveW1lbnRfcmF0ZSwgaG91cmx5X3dhZ2VzXzIwMTYsDQogICAgICAgICAgICAgICAgICBjb2xvciA9IHllYXIsIGdyb3VwID0geWVhcikpICsgDQogIGdlb21fcG9pbnQoKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9IGxtKSArDQogIGxhYnMoeCA9ICJVbmVtcGxveW1lbnQgcmF0ZSIsIHkgPSAiSG91cmx5IHdhZ2VzICgyMDE2IGRvbGxhcnMpIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQpUaGlzIG1ha2VzIGl0IGNsZWFyIHRoYXQgdGhlcmUgYXJlIHllYXJzIHRoYXQgZml0IHRoZSAiZXhwZWN0ZWQiIHBhdHRlcm4gKHdhZ2VzIA0KZ28gdXAgYXMgdW5lbXBsb3ltZW50IGRyb3BzKSBhbmQgeWVhcnMgdGhhdCBkb24ndC4gTGV0J3MgZml0IGEgbGluZWFyIG1vZGVsIHRvIA0KZWFjaCB5ZWFyIGFuZCB0aGVuIHBsb3QgdGhlIHNsb3Blcy4NCg0KYGBge3J9DQp5ZWFybHlNb2RlbHMgPC0gd2FnZXMgJT4lDQogIGdyb3VwX2J5KHllYXIpICU+JQ0KICBkbyh0aWR5KGxtKGhvdXJseV93YWdlc18yMDE2IH4gdW5lbXBsb3ltZW50X3JhdGUsIGRhdGEgPSAuKSkpDQoNCnllYXJseU1vZGVscyAlPiUNCiAgZmlsdGVyKHRlcm0gPT0gInVuZW1wbG95bWVudF9yYXRlIikgJT4lDQogIGdncGxvdChhZXMoeWVhciwgZXN0aW1hdGUpKSArDQogIGdlb21fbGluZSgpICsNCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMCwgbGluZXR5cGUgPSAiZGFzaGVkIikgKw0KICBsYWJzKHggPSAiWWVhciIsIHkgPSAiRXN0aW1hdGVkIHdhZ2VzL3VuZW1wbG95bWVudCBzbG9wZSIpICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KVGhlcmUncyBhIG1peCBvZiBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc2xvcGVzIGFjcm9zcyB5ZWFycyB3aXRoIGEgdmFyeWluZyANCnBlcmlvZGljaXR5LiBUaGVyZSBpcyBub3Qgc3Ryb25nIGV2aWRlbmNlIHRoYXQgbG93IHVuZW1wbG95bWVudCBsZWFkcyB0byANCmluY3JlYXNlZCBob3VybHkgd2FnZXMuDQo=