推計人口 2053年に1億人下回る

MikuHatsune2017-04-10

という記事があった。
国立社会保障・人口問題研究所の日本の将来推計人口(平成29年推計)というものがあったので、表1-1 総人口,年齢3区分(0〜14歳,15〜64歳,65歳以上)別人口及び年齢構造係数:[出生中位(死亡中位)推計]というネ申エクセルデータを図示してみる。

 
これだけだとアレなので出生中位、高位(合計特殊出生率1.65)、低位(1.25)の3パターンをやってみた。中位は明言されていないようだがこの調子だと1.45 の仮定だろう。
実数でみると、いずれの出生率仮定でも大差ないように見える。

 
しかし、総人口比率にすると、「前回推計と比較して人口減少の速度や高齢化の進行度合いは緩和」とはいうが、それでも老年人口は増え続ける。出生高位では2050年後半から頭打ちになって減少傾向になるようだが、合計特殊出生率1.65になるとは到底思えない() 出生低位仮定はかなり悲惨で、老年人口はぐんぐん上がって40% 超えるし、生産年齢人口は減るし、何より若年人口の減少がやばい。

 
上の実数棒グラフを見ると、若年人口、生産年齢人口は目に見えて減っているのに、老年人口の帯幅は50年一定である。つまり、老年になる人口と、死んでここから消えていく人口がトントンになっている、ということである。「平均寿命は、平成27(2015)年男性80.75年、女性86.98年から、平成77年(2065)年に男性84.95年、女性91.35年に伸長(中位仮定)」ということなので、やったね長寿ニッポン万歳()
 
その他、このネ申エクセルデータには、2060年以降の長期予測結果や、出生率をさらに広い幅で振った予測、死亡率を変えた予測などあるので、ネ申エクセルの扱いに慣れたい人や、記述統計を頑張りたい人はがんばろう。

library(gdata)
library(stringr)
# ファイルは表1-1, 1-2, 1-3 を対象にする
files <- list.files(pattern="pp29gt\\d{4}")
dat <- mapply(read.xls, files, skip=2, SIMPLIFY=FALSE)
dat <- lapply(dat, head, -1)

# 年度を処理
year <- as.numeric(str_extract(dat[[1]][,2], "\\d+"))

# 生数値を処理
dat <- mapply(function(z) apply(apply(z[,4:6], 2, gsub, pattern=",", replace=""), 2, as.numeric)/100, dat, SIMPLIFY=FALSE)
for(i in seq(dat)) colnames(dat[[i]]) <- c("0-14", "15-64", "65-")
names(dat) <- sprintf("出生%s位", c("中", "高", "低"))

# 実数値棒グラフ
cols <- c("orange", "yellow", "grey")
par(mfrow=c(1, 3))
for(i in seq(dat)){
  barplot(t(dat[[i]]), horiz=TRUE, col=cols, main=names(dat)[i])
}


# 総人口に対する割合
yl <- c(0, 0.6)
par(mfrow=c(1, 3))
for(i in seq(dat)){
  y <- dat[[i]]/rowSums(dat[[i]])
  matplot(year, y, type="l", col=cols, lwd=5, lty=1, ylim=yl, ylab="総人口割合", main=names(dat)[i])
  for(j in seq(dat)) lines(year, y[,j])
  legend("right", legend=colnames(dat[[1]]), col=cols, lwd=3, lty=1)
}