LoginSignup
2
2

More than 3 years have passed since last update.

Splunkで日本のCOVID19感染状況を予測する

Posted at

@maroon さんから教えてもらった、StateSpaceForecastで予測してみる。

データは 先の記事で作成したもの。なお2020/04/10までのデータ

やり方は @maroonさんのページを参照

基本クエリ

forecast.spl
| inputlookup covid_japan.csv 
| rename pref as _pref 
| foreach * [eval Check=max('<<FIELD>>')] 
| sort 10 - Check 
| fields - Check 
| transpose 0 header_field=_pref column_name=time 
| eval _time=strptime(time,"%m/%d") 
| fields - time 
| timechart span=1d max(*) as * 
| eval holiday=if(strftime(_time,"%F")="2020-03-20" OR tonumber(strftime(_time,"%w")) % 6=0,1,0)

三月の祝日を入れてみた。

addtional.spl
...
| fit StateSpaceForecast "千葉県" "埼玉県" "東京都" "神奈川県" output_metadata=true holdback=7 forecast_k=14 conf_interval=90 period=7 specialdays=holiday into "_exp_draft_1cc33dfab1ab4f95a35048461c9016c3"

最大五つの予測なので関東、関西、その他で分けた
パラメータは

  • holdback=7 予測に使用しない期間 過去7日
  • forcast_k=14 予測期間 14日
  • conf_interval=90 信頼区間 90%
  • period=7 期間 7日
  • specialdays=holiday 特別日フィールド holiday
  • into 作成したモデル

結果

東京都、神奈川県、千葉県、埼玉県

qiita_kanto_RMSE.png
qiita_kanto_graph.png

大阪府、兵庫県、京都府

qiita_kansai_RMSE.png
qiita_kansai_graph.png

愛知県、福岡県

qiita_other_RMSE.png
qiita_other_graph.png
結果をみると

  • 機械学習が適用できる: 東京、神奈川、兵庫、愛知
  • アルゴリズムの変更が必要: 千葉、埼玉、大阪、京都、福岡

別アルゴリズムで検証する

千葉県と埼玉県

chiba.spl
| inputlookup covid_japan.csv |  rename pref as _pref
| foreach * [eval Check=max('<<FIELD>>')]
| search _pref="東京都" OR _pref="千葉県"
| transpose 0 header_field=_pref column_name=time
| eval _time=strptime(time,"%m/%d")
| eval time=strftime(_time,"%F")
| sort _time
| fields - time
| timechart span=1d last(*) as *
| predict algorithm=LLB 千葉県 as 予測 holdback=30 correlate=東京都

qiita_chiba.png
埼玉県も同様なので省略

大阪府と京都府

| search _pref="大阪府" OR _pref="京都府"
に変更して| predict algorithm=LLB 京都府 as 予測 holdback=30 correlate=大阪府
qiita_osaka.png

福岡県

fukuoka.spl
| inputlookup covid_japan.csv |  rename pref as _pref
| foreach * [eval Check=max('<<FIELD>>')]
| search _pref="福岡県" OR _pref="大阪府"
| transpose 0 header_field=_pref column_name=time
| eval _time=strptime(time,"%m/%d")
| eval time=strftime(_time,"%F")
| sort _time
| fields - time
| timechart span=1d last(*) as *
| predict algorithm=LLB 福岡県 as 予測(大阪) holdback=30 correlate=大阪府

qiita_fukuoka.png
東京と大阪で確認したところ、大阪のほうが納まりが良かった。

まとめ

とてもいやな予測になっているのに東京の予測が使えそうなのが・・・:cry:
大都市に引きずられている県と、時系列的に増加中な府県が別れた。

でも素人なので見方が違うかもしれない。ご意見よろしくお願いします

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2