Perinatal mortality after the Fukushima accident: a spatiotemporal analysis というレターに,原発事故後,福島周辺の周産期死亡率が有意に増加したと書かれている(図)。
データは e-Stat の 人口動態調査 のもので,study region は福島,岩手,宮城,群馬,栃木,茨城,千葉,control region はそれ以外とのことである。
この7県を選んだ基準も,年の範囲も,もしかしたら図の描き方も,恣意的かもしれない。そこで,改めて e-Stat からデータを取得して,グラフを描き直してみた。
e-Stat の 人口動態調査 → 人口動態統計 → 確定数 → 周産期 → 年次 と進んで,各年の「都道府県別にみた年次別妊娠満22週以後の死産-早期新生児死亡別周産期死亡数」から周産期死亡数(産前・産後の死亡数)を抽出する。1998年〜2017年について,都道府県コード順に並べた結果を perinatal.csv として置いておく。また,人口動態調査 → 人口動態統計 → 確定数 → 出生 → 年次 と進んで,各年の「都道府県別にみた年次別出生数」を抽出し,1994年〜2017年について,同様に並べた結果を birth.csv として置いておく。
このデータから,周産期死亡率の推移をグラフにしてみよう:
import pandas as pd import matplotlib.pyplot as plt birth = pd.read_csv("https://okumuralab.org/~okumura/python/data/birth.csv") perinatal = pd.read_csv("https://okumuralab.org/~okumura/python/data/perinatal.csv") region = [6, 2, 3, 9, 8, 7, 11] # 福島,岩手,宮城,群馬,栃木,茨城,千葉 control = list(set(range(47)) - set(region)) pf = {} # 福島 pr = {} # 福島を含む7県 pc = {} # 上記以外 years = range(1998,2018) for y in years: pf[y] = perinatal[str(y)][6] / birth[str(y)][6] pr[y] = sum(perinatal[str(y)][region]) / sum(birth[str(y)][region]) pc[y] = sum(perinatal[str(y)][control]) / sum(birth[str(y)][control]) plt.plot(years, list(pr.values()), "o-", c="C1") plt.plot(years, list(pc.values()), "o-", c="C0") plt.plot(years, list(pf.values()), "o-", c="C3") plt.legend(["study region", "control region", "Fukushima"]) plt.xticks(range(1998, 2018, 2)) plt.savefig('190802a.png', bbox_inches="tight")
論文では2012年の影響が大きいようなグラフになっていたが,2012年の死亡率分布を地図にしてみよう:
import japanmap as jp x = perinatal['2012'] / birth['2012'] x = (x - min(x)) / (max(x) - min(x)) cmap = plt.get_cmap('bwr') cols = ['#%02X%02X%02X' % (cmap(x[i], bytes=True)[:3]) for i in range(47)] s = jp.pref_map(range(1,48), cols=cols, tostr=True) s = s.replace('<path ', '<path stroke="black" stroke-width="0.001" ') with open("190802b.svg", "w") as f: f.write(s)
赤ほど死亡率が大きい:
トップは岩手県である。
念のため,ちょっと見にくいが,全都道府県のグラフを(透明度を少し入れて)重ね書きしてみる:
rate = perinatal / birth[[str(y) for y in range(1998,2018)]] for i in range(47): if i in control: plt.plot(years, rate.iloc[i,:], c="C0", alpha=0.5) for i in range(47): if i in region: plt.plot(years, rate.iloc[i,:], c="C1", alpha=0.5) plt.plot(years, rate.iloc[6,:], c="C3", alpha=0.5) plt.xticks(range(1998, 2018, 2)) plt.savefig('190803a.png', bbox_inches="tight")