経済的な不安定さが要因か | 少子化研究者による日本の少子化の現状解説③未婚・晩婚化
こんにちは、少子化研究者の茂木良平です。南デンマーク大学というところで、少子化を専門に研究しています。
次元の異なる少子化対策が宣言されてから、さまざまな議論がなされています。しかし、そういった議論をする前に、日本の少子化の現状をよりよく理解しておくことが重要だと思うので、数回にわたって、日本の少子化の現状をデータと研究知見を用いてまとめています。
第1回目は日本の少子化は結婚行動の変化、そして子供のいない人(無子)を理解することが重要だ、とまとめました。
第2回目は、社会経済的地位の低いグループがより非婚化になっていることと職縁結婚の減少が非婚化の大きな要因であることをまとめました。
第3回目の今回は未婚化・晩婚化についてまとめていきます。
未婚化のトレンド
まずは、未婚化のトレンドからみていきましょう。
例として、25~29歳(緑線)と30~34歳(オレンジ線)時の未婚者割合を男女別にみてみます(図1)。男女ともに、2つの線は増加しているので、未婚化が進展していると言えます。
もっと詳細にみてみると、女性のうち、1920年時には25~29歳の9%、30~34歳の4%が未婚だったのが、2020年には25~29歳の66%、30~34歳の39%が未婚です。
男性は1920年時から女性に比べて未婚割合は高く、25~29歳の26%、30~34歳の8%が未婚でした。それが2020年にはさらに増加し、25~29歳の76%、30~34歳の52%が未婚です。
晩婚化のトレンド
次に晩婚化のトレンドをみていきます。図2は1910~2021年までの平均初婚年齢を男女別にみたものです。
男女ともに1950年から2015年くらいまで、平均初婚年齢はほぼ直線的に増加してきました。2015年ほどからその増加傾向は停滞しており、2021年時の平均初婚年齢は男性で31歳、女性で29.5歳となっています。1950年時に比べて、男性は5歳、女性は6.5歳も増加しています。
また2021年まで一貫して男性の平均初婚年齢が女性のより高いが、近年男女の平均初婚年齢の差は縮まってきています。
経済的に不安定な若者の増加が未婚化・晩婚化の要因
こうした未婚化や晩婚化は、どのグループでより顕著なのでしょうか?
複数の研究によると、社会経済的地位の低いグループ(例えば低学歴、非正規雇用など)が結婚しにくいことが報告されています。
例えば、麦山(2017)は初職から調査時点までの雇用形態と職種、企業規模と初婚のしやすさがどう関係しているかを分析しました。結果は、初職から一貫して非正規雇用の人は男女ともに結婚しにくいというものでした。また、就業面で長期的な安定性が比較的高いとみられる、大企業に勤めている男性や専門職の女性の結婚確率は高かった。
佐々木(2012)によると、正規雇用の人は非正規雇用の人に比べて結婚しやすいことがわかり、特に男性において両者の差は顕著でした。また学歴の違いもわずかではあるが見られて、30歳までは高卒の女性の方が大卒の女性に比べて結婚しやすいが、30歳以降は反対に大卒女性の方が結婚しやすいという結果でした。
Fukuda, Ryamo, Yoda (2020)は学歴別の結婚しやすさを分析し、2005年までは高学歴の女性ほど結婚しにくかったが、反対に2009年以降になると高学歴の女性ほど結婚しやすくなることを明らかにしました。
「高学歴女性ほど結婚しにくい」や「女性の経済的自立が未婚化の要因だ」という言説がありますが、少なくとも近年のデータを見る限りこうした言説は支持されない結果になっています。社会経済的地位と結婚の話はまた別記事でより丁寧に取り上げようと思います。
まとめ
日本の少子化の現状解説③をまとめます。
2020年において30~34歳のうち、女性の39%、男性の52%が未婚。
2021年時の平均初婚年齢は男性で31歳、女性で29.5歳
複数の研究で社会経済的地位の低いグループ(例えば低学歴、非正規雇用など)が結婚しにくいことが報告
近年では、高学歴の女性ほど結婚しやすい
この記事をちょっとでも面白いと思ってくれた方は下にある「スキ」ボタン、SNSでのシェアよろしくお願いします。ご質問はこの記事へのコメント、もしくはtwitterまでお気軽にご連絡ください(全部は返信できませんが、次回の記事の参考にさせていただきます)。また記事執筆やインタビューの依頼はメールアドレスrymo[at]sdu.dkまでお願いします。
library(tidyverse)
library(readxl)
library(openxlsx)
Mycol <- c("#08306B", "#238B45", "#FD8D3C", "#D4B9DA", "#FFEDA0")
# read data
# data is from Japanese Census.
nevmar_all <- read_excel("data/NIPSSR2023-T06-24.xls", skip = 2)
d2020 <- read.csv(file("data/jpn-census2020-11-1-nevmar3539-edu.csv", encoding = "cp932"), skip = 12)
nevmar_all[-c(1, 18), ] %>%
mutate(Sex = c(rep("男性", 16), rep("女性", 16))) %>%
filter(`年 齢` %in% c("25~29", "30~34")) %>%
gather(key = Year, value = nevmar, -c("年 齢", "Sex")) %>%
mutate(nevmar = as.numeric(as.character(nevmar)),
Year = str_sub(Year, 1, 4),
Year = as.numeric(as.character(Year))) %>%
rename(Age = "年 齢") %>%
ggplot(aes(x = Year, y = nevmar, group = Age, colour = Age)) +
facet_wrap(~ Sex) +
geom_line(size = 1.2) +
scale_colour_manual(values = c(Mycol[2], Mycol[3])) +
ylim(0, 80) +
labs(x = "年次", y = "未婚者割合",
caption = "データソース:国立社会保障人口問題研究所『人口統計資料集2023年版』. 作成者:茂木良平") +
theme_minimal(base_family = "HiraKakuPro-W3") +
theme(legend.title = element_blank(),
legend.position = "top",
legend.text = element_text(size = 12),
legend.box = "vertical",
strip.text.x = element_text(size = 12),
axis.text = element_text(size = 12),
axis.title = element_text(size = 15),
panel.spacing = unit(2, "lines"))
# read data on % of mean age at first marriage
# data is from National Institute of Population and Social Security Research. Accessed on 25/05/2023
m1stmar <- read_excel("data/T06-12_meanageat1stmar-jpn.xls", skip = 3)[, c(1, 5, 6, 8, 12, 13)]
names(m1stmar) <- c("year", "male", "female", "year", "male", "female")
m1stmar <- rbind(m1stmar[1:3], m1stmar[4:6])
m1stmar %>%
as.data.frame() %>%
gather(key = sex, value = meanage, -year) %>%
mutate(sex = ifelse(sex == "male", "男性", "女性"),
year = as.numeric(as.character(year)),
meanage = as.numeric(as.character(meanage))) %>% View()
ggplot(aes(x = year, y = meanage, colour = sex, group = sex)) +
geom_line(size = 1.2) +
scale_colour_manual(values = c(Mycol[3], Mycol[2])) +
#scale_x_continuous(n.breaks = 11) +
labs(x = "年次", y = "平均初婚年齢",
caption = "データソース:国立社会保障人口問題研究所『人口統計資料集2023年版』. 作成者:茂木良平") +
theme_minimal(base_family = "HiraKakuPro-W3") +
theme(legend.title = element_blank(),
legend.position = c(0.1, 0.8),
legend.text = element_text(size = 12),
axis.text = element_text(size = 12),
axis.title = element_text(size = 15))
サポートしていただいたお金は、研究費に使わせていただきます!