コード
library(tidyverse)
library(readxl)
library(RColorBrewer)労働力調査の長期時系列データから,失業率の推移をグラフ化する。
# 失業率(月次) 季節調整値
# 労働力調査 基本集計 全都道府県 長期時系列データ 季節調整値 表番号1-a-9
download.file(
"https://www.e-stat.go.jp/stat-search/file-download?statInfId=000031831365&fileKind=0",
destfile = "files/unemployment.xlsx",
method = "curl"
)
# E71:L 列は固定(5〜12 列目)、71 行目から下は行数が増えても読み込む
labor_unemployment <-
read_excel("files/unemployment.xlsx",
sheet = "季節調整値",
range = cell_limits(c(71, 5), c(NA, 12)),
col_names = F
)
labor_unemployment <-
rename(labor_unemployment,
total = ...1, a15_64 = ...2, a15_24 = ...3, a25_34 = ...4, a35_44 = ...5,
a45_54 = ...6, a55_64 = ...7, a65over = ...8
) |>
filter(!is.na(total))
# 1975-01 起点の月次(行数は labor_unemployment に合わせる)
month <- seq(as.Date("1975-01-01"), by = "month", length.out = nrow(labor_unemployment))
# 日付と失業率の結合,必要なデータを残してlong形式に
unemployment <- cbind(month, labor_unemployment) |>
mutate(month = as.Date(month)) |>
select(month, total, a15_24, a25_34, a35_44, a45_54) |>
mutate(across(-month, as.numeric)) |>
pivot_longer(-month)Warning: There was 1 warning in `mutate()`.
ℹ In argument: `across(-month, as.numeric)`.
Caused by warning:
! NAs introduced by coercion
労働力調査の長期時系列データは,現在のところe-statのAPIでは入手できないので,Excelファイルをダウンロードして用いる。データのフォーマットは単純で頻繁に変更されることはないと思うが,変更された場合にはコードも変更する必要がある。
### 直近のグラフ
graph_unemployment_recent <- unemployment |>
filter(month >= "2019-01-01") |>
ggplot(aes(x = month, y = value, color = name)) +
geom_line() +
geom_point(size = 1) +
scale_color_manual(
values = c(brewer.pal(4, "Pastel1"), "black"),
name = "年齢階級",
labels = c(
a15_24 = "15〜24歳",
a25_34 = "25〜34歳",
a35_44 = "35〜44歳",
a45_54 = "45〜54歳",
total = "年齢計"
)
) +
scale_x_date(
breaks = \(lims) {
seq.Date(
as.Date("2019-01-01"),
floor_date(lims[2], "year"),
by = "12 months"
)
},
date_labels = "%Y"
) +
labs(x = "", y = "失業率") +
theme_classic(base_family = "IPAexGothic", base_size = 16)
plot(graph_unemployment_recent)Warning: Removed 10 rows containing missing values or values outside the scale range
(`geom_line()`).
Warning: Removed 10 rows containing missing values or values outside the scale range
(`geom_point()`).
まずは,2019年以降の推移を見てみよう。Covid-19の影響で,2020年には失業率が3%台まで上昇したが,その後は2%台半ばで推移している。下で見るように,バブル崩壊後は失業率が5%を超えることもあったので,それと比較すればCovid-19による失業率の上昇は大きくなかったことがわかる。
### 長期のグラフ
graph_unemployment_longtime <- unemployment |>
ggplot(aes(x = month, y = value, color = name)) +
geom_line() +
scale_color_manual(
values = c(brewer.pal(4, "Pastel1"), "black"),
name = "年齢階級",
labels = c(
a15_24 = "15〜24歳",
a25_34 = "25〜34歳",
a35_44 = "35〜44歳",
a45_54 = "45〜54歳",
total = "年齢計"
)
) +
labs(x = "", y = "失業率") +
theme_classic(base_family = "IPAexGothic", base_size = 16)
plot(graph_unemployment_longtime)Warning: Removed 10 rows containing missing values or values outside the scale range
(`geom_line()`).
1970年代からの長期的な失業率の推移も見てみよう。1990年代後半から2000年代にかけては失業率が5%を上回ることもあった。この時期は「就職氷河期」として知られている。この時期に学校を卒業して就職することになった世代はロスト・ジェネレーションといわれ,その後景気が回復した後も雇用の状況が改善せず,いまだに一度も正規の職に就いたことない人も少なくない。
---
title: "失業率の推移"
code-fold: true
---
労働力調査の長期時系列データから,失業率の推移をグラフ化する。
```{r}
#| include: false
knitr::read_chunk("jpn_stat/unemployment_monthly.R")
```
## パッケージの読込み
```{r}
#| ref.label: "setup"
#| message: false
```
## データの読込みと整理
```{r}
#| ref.label: "data"
#| message: false
```
労働力調査の長期時系列データは,現在のところe-statのAPIでは入手できないので,Excelファイルをダウンロードして用いる。データのフォーマットは単純で頻繁に変更されることはないと思うが,変更された場合にはコードも変更する必要がある。
## 直近の推移
```{r}
#| ref.label: "plot_recent"
```
まずは,2019年以降の推移を見てみよう。Covid-19の影響で,2020年には失業率が3%台まで上昇したが,その後は2%台半ばで推移している。下で見るように,バブル崩壊後は失業率が5%を超えることもあったので,それと比較すればCovid-19による失業率の上昇は大きくなかったことがわかる。
## 長期の推移
```{r}
#| ref.label: "plot_longtime"
```
1970年代からの長期的な失業率の推移も見てみよう。1990年代後半から2000年代にかけては失業率が5%を上回ることもあった。この時期は「就職氷河期」として知られている。この時期に学校を卒業して就職することになった世代はロスト・ジェネレーションといわれ,その後景気が回復した後も雇用の状況が改善せず,いまだに一度も正規の職に就いたことない人も少なくない。