준비한 자료는 E. Saez 교수의 홈페이지에 있는 TabFig2017prel.xls
와 Tax Foundation에서 제공하는 자료를 손봐서 불러들인 것이다. 연도를 공통으로 수평축에 놓고, 상위 1%의 소득점유율과 한계소득세율을 한 화면에 함께 표현해야 하기 때문에 선형변환을 이용하여 범위를 0에서 1사이로 맞추고, 각 변수의 변환하기 전 원시 값은 좌측 수직축과 우측 수직축에 표현하는 트릭을 써 보자. 이 작업에서 반복되는 선형 변환은 사용자 정의 함수를 작성하여 활용한다. R Base Plot 단계에서 만든 US_top_income_shares_vs_tax_rates_2017_v2.RData
를 불러들여서 활용한다.
이 중에서 상위 1%의 소득 점유율(P99_100
)과 한계 소득세율(Marginal Tax Rates) 간의 관계를 살펴보자
M1 <- ggplot(data = M_tbl,
mapping = aes(x = Year, y = Values,
colour = Variables,
linetype = Variables)) +
geom_line(show.legend = FALSE) +
geom_point(data = subset(M_tbl, Variables == "P99_100_z"),
mapping = aes(x = Year, y = Values),
shape = 24,
fill = "black",
size = 3,
stroke = 2,
color = "white",
show.legend = FALSE)
M2 <- M1 +
scale_colour_manual(values = c("black", "red")) +
scale_linetype_manual(values = c("solid", "longdash"))
M3 <- M2 +
theme_bw() +
scale_x_continuous(name = "연도",
breaks = seq(1910, 2020, by = 10),
labels = seq(1910, 2020, by = 10)) +
scale_y_continuous(name = "상위 1% 소득 점유율(%)",
breaks = y1_at,
labels = labels1_at,
limits = c(0, 1),
sec.axis = sec_axis(name = "한계 소득세율(%)",
trans = ~ z(., q = .),
breaks = (y4_at + 0.05 )/1.1,
labels = labels4_at)) +
labs(title = "상위 1% 소득점유율과 한계 소득세율") +
annotate("text", x = c(1975, 1955), y = c(0.8, 0.35),
label = c("한계 소득세율", "상위 1% 소득점유율"),
family = "HCR Dotum LVT", size = 6) +
theme(plot.title = element_text(family = "HCR Dotum LVT",
hjust = 0.5,
size = 20,
margin = margin(b = 12, unit = "pt")),
axis.title.x = element_text(family = "HCR Dotum LVT"),
axis.title.y = element_text(family = "HCR Dotum LVT"))
M3
위의 그림으로부터 한계소득세율이 높을 때 상위1%의 소득점유율이 낮고, 한계소득세율이 낮을 때는 반대로 상위1%의 소득점유율이 높은 것을 관찰할 수 있다. 이를 보다 명확히 파악하기 위하여 한계소득세율을 뒤집어 보면, 즉 u
를 변환한 한계소득세율이라 할 때 1 - u
를 비교 대상으로 그려보면,
Mi_tbl <- M_tbl
Mi_tbl[Mi_tbl$Variables == "Marginal_z", "Values"] <-
1 - Mi_tbl[Mi_tbl$Variables == "Marginal_z", "Values"]
Mi1 <- ggplot(data = Mi_tbl,
mapping = aes(x = Year, y = Values,
colour = Variables,
linetype = Variables)) +
geom_line(show.legend = FALSE) +
geom_point(data = subset(Mi_tbl, Variables == "P99_100_z"),
mapping = aes(x = Year, y = Values),
shape = 24,
fill = "black",
size = 3,
stroke = 2,
color = "white",
show.legend = FALSE)
Mi2 <- Mi1 +
scale_colour_manual(values = c("black", "red")) +
scale_linetype_manual(values = c("solid", "longdash"))
Mi3 <- Mi2 +
theme_bw() +
scale_x_continuous(name = "연도",
breaks = seq(1910, 2020, by = 10),
labels = seq(1910, 2020, by = 10)) +
scale_y_continuous(name = "상위 1% 소득 점유율(%)",
breaks = y1_at,
labels = labels1_at,
limits = c(0, 1),
sec.axis = sec_axis(name = "한계 소득세율(%)",
trans = ~ z(., q = .),
breaks = (y4_at + 0.05 )/1.1,
labels = rev(labels4_at))) +
labs(title = "상위 1% 소득점유율과 한계 소득세율") +
annotate("text", x = c(1985, 1955), y = c(0.8, 0.35),
label = c("1 - 한계 소득세율", "상위 1% 소득점유율"),
family = "HCR Dotum LVT", size = 6) +
theme(plot.title = element_text(family = "HCR Dotum LVT",
hjust = 0.5,
size = 20,
margin = margin(b = 12, unit = "pt")),
axis.title.x = element_text(family = "HCR Dotum LVT"),
axis.title.y = element_text(family = "HCR Dotum LVT"))
Mi3