労働力調査の長期時系列データから,失業率の推移をグラフ化する。

パッケージの読込み

コード
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%を上回ることもあった。この時期は「就職氷河期」として知られている。この時期に学校を卒業して就職することになった世代はロスト・ジェネレーションといわれ,その後景気が回復した後も雇用の状況が改善せず,いまだに一度も正規の職に就いたことない人も少なくない。