Markets and Measurement II
Materials for class on Wednesday, January 10, 2018
Contents
Slides
Download the slides from today’s lecture.
Adjusting for inflation
Indicators
Adjusting for inflation
\[ \text{Real GDP} = \frac{\text{Nominal GDP}}{\text{Price Index / 100}} \]
- Worksheet we created in class
- Or, use the BLS’s CPI inflation calculator
Measuring inequality with Gini coefficients
Calculating Gini coefficients with R is trivial with the ineq package—create a vector of incomes and feed it into ineq(). Here’s what you do for a fictional country with the following incomes:
| Person | Income |
|---|---|
| 1 | $10,000 |
| 2 | $20,000 |
| 3 | $50,000 |
| 4 | $100,000 |
| 5 | $200,000 |
## [1] 0.4842105
There are other types of inequality measures too. The default is Gini, but if you look at the documentation of ineq() with ?ineq, you can see the others.
You can plot the Lorenz curve easily too:

Alternatively you can extract the Lorenz curve that’s returned from Lc() and use ggplot2 to create a nicer plot:
library(tidyverse)
# This file is on GitHub at https://github.com/andrewheiss/econw18.classes.andrewheiss.com/blob/master/lib/graphics.R
source(file.path(here::here(), "lib", "graphics.R")) # Load theme and colors
lorenz <- Lc(incomes)
plot_data <- data_frame(prop_population = lorenz$p,
prop_income = lorenz$L)
plot_labels <- tribble(
~x, ~y, ~label,
0.6, 0.4, "A",
0.8, 0.2, "B"
)
ggplot(plot_data, aes(x = prop_population, y = prop_income)) +
geom_line() +
geom_segment(x = 0, xend = 1, y = 0, yend = 1) +
geom_ribbon(aes(ymax = prop_population, ymin = prop_income), fill = nord_red) +
geom_ribbon(aes(ymax = prop_income, ymin = 0), fill = "grey80") +
geom_point(size = 2) +
geom_text(x = 0.2, y = 0.8, label = "Gini == frac(A, A + B)", parse = TRUE,
size = 6, family = "Roboto Condensed Light") +
geom_text(data = plot_labels, aes(x = x, y = y, label = label),
color = "white", size = 9, family = "Roboto Condensed Bold") +
labs(x = "Cumulative % of population", y = "Cumulative % of income") +
scale_x_continuous(labels = scales::percent, breaks = seq(0, 1, 0.2)) +
scale_y_continuous(labels = scales::percent, breaks = seq(0, 1, 0.2)) +
theme_econ(13) +
theme(panel.grid = element_blank())