1 / 11

人口予測の可視化

人口予測の可視化. 中澤 港 神戸大学大学院保健学研究科 国際保健学領域 <minato-nakazawa@umin.net>. 人口予測とは. 集団の人口及びその構成が将来どうなるかを予測する もっとも単純な方法はトレンドの延長 ロジスティック曲線などを当てはめて補外。短期的にしか有効でない。 古い世界人口予測など 標準的な方法はコーホート要因法 人口の増減は+出生-死亡+移入-移出で決まるので,これらの要素をそれぞれ予測して合計すればいい 予測はトレンド延長の他,モデルの当てはめやシナリオベースで実施

zihna
Download Presentation

人口予測の可視化

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 人口予測の可視化 中澤 港 神戸大学大学院保健学研究科 国際保健学領域 <minato-nakazawa@umin.net>

  2. 人口予測とは • 集団の人口及びその構成が将来どうなるかを予測する • もっとも単純な方法はトレンドの延長 • ロジスティック曲線などを当てはめて補外。短期的にしか有効でない。 • 古い世界人口予測など • 標準的な方法はコーホート要因法 • 人口の増減は+出生-死亡+移入-移出で決まるので,これらの要素をそれぞれ予測して合計すればいい • 予測はトレンド延長の他,モデルの当てはめやシナリオベースで実施 • それぞれ年齢により変化するので,人口増減も年齢別に計算→総人口だけでなく人口構造(年齢構造)も予測 • 世界人口でも地域分割すれば適用できる • 予測した結果が一目でわかるようなグラフも大事 • 総人口のトレンド延長なら折れ線グラフ(確率的予測ならばらつきも) • 人口構造は人口ピラミッドで示すのがわかりやすいが変化は経時的に上書き表示するか,構造係数を計算して折れ線グラフ表示

  3. 現在の世界人口予測 • U.S. Census Bureauのもの(右図)は国ごとにコーホート要因法で予測した値を合計。増加率は合計値から{P(t+1)-P(t)}/P(t)*100で計算 • 合計値さえあれば増加率を計算し推移パタンを折れ線グラフにするのは簡単→http://minato.sip21c.org/RWS2012/increase.R • 国連推計は2300年まである。出生予測が大きく変わったので,1998年推計(2150年まで)と2002年,2010年推計は大きく異なる。 http://www.census.gov/population/international/data/worldpop/graph_population.php

  4. コーホート要因法の概念図 • 出典:河野稠果『人口学への招待』中公新書,2007年 *実際は男女別に *男女出生は半々か出生 性比を考慮して1.05:1等 *移動も考慮 *左図では20~34歳のみ 示しているが,15~49歳 女性について,年齢階級 別出生率を掛け,合計 してから0~4歳の生命表 生残率を掛け,2010年の 0~4歳人口を得る。使う 生命表は2005年と2010年 の平均。2010年生命表の 推計は,通常,リー=カーター モデル(リレーショナル モデル)による 2010年女子人口 2005年女子人口 0~4歳 0~4歳 5~9歳 5~9歳 出生 20~24歳 20~24歳 25~29歳 25~29歳 生存 30~34歳 30~34歳 95~99歳 95~99歳 100歳以上 100歳以上

  5. 年齢別出生率の予測 • 突発的なイベントで大きく変化する • 1998年国連予測では21世紀に100億を超えるとされていた世界人口が,2002年や2010年の予測では2050年を過ぎたところで90億少々で頭打ちになると変わったのは,出生予測の変化が原因 • 国連は,先進国についてはTFRの年次変化パタンをみる→変化速度に応じ,どのコースでTFR=1.85となるかを選択→途中のTFRの水準に従い,異なる年齢分布パタンを選択途上国については期間出生率法(年齢階級別トレンド外挿) • 日本では1930年~1975年は期間出生率法だったが,晩婚・晩産が進み20歳代前半の未婚率が増加すると後半の産み戻しが起こってトレンド予測ではまずくなったので,1976年からコーホート出生率法(複雑)が採用された

  6. Hadwigerモデルを年齢別出生に当てはめパラメータのトレンドを3次曲線で延長(1)Hadwigerモデルを年齢別出生に当てはめパラメータのトレンドを3次曲線で延長(1) • library(fmsb); layout(matrix(c(1,2,3,3,3,3), nrow=2, ncol=3)) • matplot(Jfert[,1], Jfert[,2:14], type="b", col=1:13, pch=1:13, lty=1, main="日本人女性の年齢別出生率の推移", xlab="女性の年齢", ylab="ASFR") • legend("right",col=1:13,pch=1:13,lty=rep(1,13),legend=colnames(Jfert[,2:14])) • Years <- 1950+0:12*5 • abc <- matrix(numeric(3*length(Years)), ncol=3); colnames(abc) <- letters[1:3] • for (Y in Years) { ASFR <- Jfert[, paste("ASFR",Y,sep="")] • res <- fitHad(, ASFR) • FLAG <- res[5] • while (FLAG>0) { res <- fitHad(res[1:3], ASFR); FLAG <- res[5] } • abc[(Y-1950)/5+1,] <- res[1:3] } • matplot(Years, abc, type="b", col=1:3, pch=1:3, lty=1, xlim=c(1950, 2050), ylim=c(0, 35), main="日本人女性の年齢別出生率パタンにHadwigerモデルを当てはめたパラメータの推移", xlab="年次(西暦)", ylab="パラメータ(abc)") • legend("right", col=1:3, pch=1:3, lty=1, legend=letters[1:3])

  7. Hadwigerモデルを年齢別出生に当てはめパラメータのトレンドを3次曲線で延長(2)Hadwigerモデルを年齢別出生に当てはめパラメータのトレンドを3次曲線で延長(2) • Pyears <- 2015+0:7*5 # 2015年から2050年まで予測 • sYears <- Years[6:13] # 1975年以降のデータを使用 • pa <- abc[6:13, 1]; rega <- lm(pa ~ I(sYears^3) + I(sYears^2) + sYears) # 3次式で近似 • pax <- predict(rega, list(sYears=Pyears)) # パラメータaの将来予測 • pb <- abc[6:13, 2]; regb <- lm(pb ~ I(sYears^3) + I(sYears^2) + sYears) • pbx <- predict(regb, list(sYears=Pyears)) # パラメータbの将来予測 • pc <- abc[6:13, 3]; regc <- lm(pc ~ I(sYears^3) + I(sYears^2) + sYears) • pcx <- predict(regc, list(sYears=Pyears)) # パラメータcの将来予測 • pabc <- cbind(pax, pbx, pcx) # 予測されたパラメータを行列に • matlines(Pyears, pabc, col=1:3, lty=2) # 予測値を破線で追加 • pJfert <- matrix(numeric(8*length(Jfert[, "ASFR2000"])), ncol=8) • for (i in 1:length(Pyears)) { pJfert[, i] <- Hadwiger(pabc[i, 1], pabc[i, 2], pabc[i, 3]) } • matplot(Jfert[,1], pJfert, type="b", col=1:8, pch=1:8, lty=1, main="日本人女性の年齢別出生率の推移予測", xlab="女性の年齢", ylab="ASFR") • legend("topright",col=1:8,pch=1:8,lty=rep(1,8),legend=Pyears) bが負になった 2040年以降は 不適切

  8. 人口ピラミッドの描画 • pyramidパッケージの開発 • コンセプトは,pyramid(左側年齢別人口ベクトル,右側年齢別人口ベクトル,中央に表示する文字列のベクトル)とすると自動的に人口ピラミッドができあがること • layout()での画面分割,グラフィックデバイスへの出力やコピーがすべて普通に使えるようにしたかったので,gridグラフィックスは避け,2画面分割してbarplot()をアレンジして使うことも避けた • 日本の年齢別人口データをfmsbパッケージ(元々は『Rによる保健医療データ解析演習』のサポートパッケージだったが,人口データや人口分析関数を追加したもの)に組み込み • Jpop:男女年齢別人口データフレーム(85歳以上は合計人数)。例えば2010年男性の年齢別人口ベクトルを得るには,Jpop[, “M2010”]として参照する • Jpopl:男女年齢別人口データフレーム(110歳以上は合計人数)。例えば1888年女性の年齢別人口ベクトルを得るには,Jpopl[, “F1888”]として参照する

  9. pyramid( )関数の仕様 • pyramid(data, Laxis=NULL, Raxis=NULL, AxisFM="g", AxisBM="", AxisBI=3, Cgap=0.3, Cstep=1, Csize=1, Llab="Males", Rlab="Females", Clab="Ages", GL=TRUE, Cadj=-0.03, Lcol="Cyan", Rcol="Pink", Ldens=-1, Rdens=-1, main="", ...) • dataは少なくとも2列を含むデータフレーム。1列目が左に表示する数値ベクトル,2列目は右に表示する数値ベクトル,3列目があれば中央に表示する文字列ベクトル(数値でも可)。通常は左が男性人口,右が女性人口,中央が年齢階級名 • LcolとRcolをベクトルにすると年齢による塗り分けが可能

  10. 4種類の人口ピラミッド描画 • library(fmsb); library(pyramid); par(mar=c(1, 2, 2, 1), mfrow=c(2, 2)) • pyramid(data.frame(M=Jpop$M2010/1000, F=Jpop$F2010/1000, A=Jpop$Age), Laxis=0:3*1000, AxisFM="d", Cstep=10, Llab="Males\n(x1000)", Rlab="Females\n(x1000)", Clab="", main="Population structure in Japan in\n 2010, pooled for age 85+") • pyramid(data.frame(M=Jpopl$M1888/10000, F=Jpopl$F1888/10000, A=Jpopl$Age), Laxis=0:5*25, AxisFM="d", Cstep=10, Llab="Males\n(x10000)", Rlab="Females\n(x10000)", Clab="", main="Population structure in Japan in 1888") • pyramid(data.frame(M=Jpopl$M2010/10000, F=Jpopl$F2010/10000, A=Jpopl$Age), Laxis=0:5*25, AxisFM="d", Cstep=10, Llab="Males\n(x10000)", Rlab="Females\n(x10000)", Clab="", main="Population structure in Japan in 2010") • pyramid(data.frame(M=Jpopl$M2010J/10000, F=Jpopl$F2010J/10000, A=Jpopl$Age), Laxis=0:5*25, AxisFM="d", Cstep=10, Llab="Males\n(x10000)", Rlab="Females\n(x10000)", Clab="", Lcol="green", main="Population structure of Japanese\n in Japan in 2010")

  11. 人口学教育教材としての利用 • 安定人口理論(どのような人口構造から出発しても,年齢別死亡率と年齢別出生率が一定であれば,長時間経てば一定の人口構造に収束する)を示すSPT.R • 高齢化は少子化の帰結であって平均寿命(年齢別死亡率だけで決まる)とは無関係なことを示すmenuprojection.R

More Related