という記事があった。
国立社会保障・人口問題研究所の日本の将来推計人口(平成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) }