Yoshi Nishikawa's Blog

データと知識、その調和平均。

髄膜炎のGlobal Trendに関する時系列データ解析論文

髄膜炎に関する論文

Seasonal dynamics of bacterial meningitis: a time-series analysis. The Lancet Global Health http://dx.doi.org/10.1016/S2214-109X(16)30064-X

読んだ。

プリンストン大学の研究者らからの報告。 髄膜炎の発症には、季節性があって・・・という報告だが、興味を持ったのは3点ある。

1 データベース構築 (Database compiling)

おそらくここが最も大変であることは用意に想像がつくのだが、3ステップあったと記載されている。

  1. 検索 Search
  2. ウェブスクレイピングでごそっとデータを抜き取る Web-crawling Java data-scraping programs
  3. 各国の公衆衛生部門、研究者等にコンタクト Active corresponding with public health officials such as ministries of health and authors of papers

2 ウェーブレット解析 (Wavelet Analysis)

周期性の確認に使われている。 wavelet は振動のようなもののことで、0を起点として上下し、また0に戻るものだという。心電図モニターの波形などもその例。
永続するサインカーブのような周期的なものも、そのスケール(ウィンドウ)のサイズをかえながら、waveletに変換して見ていくことで、 大きいスケールでは全体像を、小さなスケールでは、小さな変化を確認でき、最終的には、木も森も見れるとのこと。

本論文では、12ヶ月という周期性を見出している(季節性の影響)。

似たようなことをintroductionにそってやってみた。

library(WaveletComp)
x = periodic.series(start.period = 50, length = 1000)
     x = x + 0.2*rnorm(500)  # add some noise
my.data = data.frame(x = x)
     my.w = analyze.wavelet(my.data, "x",
                            loess.span = 0,
                            dt = 1, dj = 1/250,
                            lowerPeriod = 16,
                            upperPeriod = 128,
                            make.pval = T, n.sim = 10)
wt.image(my.w, color.key = "quantile", n.levels = 250,
              legend.params = list(lab = "wavelet power levels", mar = 4.7))
reconstruct(my.w, plot.waves = F, lwd = c(1,2), legend.coords = "bottomleft")
wt.avg(my.w)

f:id:yoshi_nishikawa:20161111215603p:plain
f:id:yoshi_nishikawa:20161111215609p:plain
f:id:yoshi_nishikawa:20161111215616p:plain

3 角度データ統計処理 (Circular Statistics)

後編に続く