グラフの例:出生数と死亡数

[2017-07-31] 平成27年(2015)人口動態統計(確定数)の概況により birthdeath.csv を修正・追加しました。

2020年の東京オリンピックが決まりました。「東京五輪までに結婚し子供がほしい」 ツイッターへの大量書き込みはなぜという記事には「東京オリンピックの1964年は開催が決まった7年前の57年と比較し出生率は0・01ポイントアップ。ただしオリンピック翌年の出生率は64年より0・9ポイントアップ」などと書かれていますが,オリンピックは出生数に影響するのでしょうか。

厚生労働省の平成24年人口動態統計月報年計(概数)の概況の下のほうにリンクされている「統計表」というExcelファイルから出生数と死亡数を拾ってCSV形式(文字コード:UTF-8)にしたものを ここ に置いておきました。

data = read.csv("http://oku.edu.mie-u.ac.jp/~okumura/stat/data/birthdeath.csv")

折れ線グラフにしてみます。前回の東京オリンピックの年(1964年)だけ赤点にしました。

par(las=1)              # 縦軸の文字を横向きにしない
par(mgp=c(2,0.8,0))     # 軸マージン(デフォルト: c(3,1,0))

plot(data$年, data$出生数/10000, type="o", pch=16,
     col=ifelse(data$年==1964,"red","black"),
     ylim=range(c(data$出生数,data$死亡数),na.rm=TRUE)/10000,
     xlab="", ylab="")
points(data$年, data$死亡数/10000, type="o", pch=16,
       col=ifelse(data$年==1964,"red","blue"))
axis(2, "万人", at=250, padj=-1)
text(1973, data$出生数[data$年==1973]/10000, "出生数", pos=3)
text(1973, data$死亡数[data$年==1973]/10000, "死亡数", pos=3)
出生数と死亡数

上の plot()points() は,上書きを許せば,次のようにも書けます:

matplot(data[,1], data[,2:3]/10000, type="o", pch=16, col=c("black","blue"), xlab="", ylab="")
points(rep(1964,2), data[data[,1]==1964,2:3]/10000, type="p", pch=16, col="red")

オリンピックの次の年だから出生数が増えたのではなく,その次の年(1966年)が「ひのえうま」の年(出生性比参照)のため出生数が激減し,その前後の年が増えたのでしょう。

追記:出生数より出生率のほうがよかったかもしれません。また,「ひのえうま」前後は毎月のデータのほうがおもしろいかもしれません。e-StatのGL02020101の2-2に月間出生率がありますのでCSVファイルにしてプロットしてみました。なお,月間出生率とは人口1000人に対する値のようです。

data = read.csv("http://oku.edu.mie-u.ac.jp/~okumura/stat/data/birthrate.csv",
                as.is=TRUE)
t = as.POSIXct(data$年月)
t0 = as.POSIXct("1960-01-01")
t1 = as.POSIXct("1969-01-01")
plot(t[t >= t0 & t < t1], data$出生率[t >= t0 & t < t1],
     type="o", pch=16, xlab="", ylab="")
for (x in seq(t0,t1,"year")) abline(v=x, col="gray")
月間出生率