【新型コロナ】次のピークは12月? Pythonでトレンド分析やってみた!


0.まとめ

(1) PythonのStatsModelで新型コロナのトレンド分析をやってみた
(2) 厚労省のデータを分析したところ、最初のピークが4月、今回のピークは8月
(3) と、言うことは、次のピークは12月か、という お話

1.やったこと

(1) 厚労省のホームぺージから、新型コロナ感染者のデータを取得
(2) PythonのStatsModelで、トレンド、季節要因、残差に分解

(Special Thanks to)
もものきとデータ解析をはじめようを参考にさせて頂きました。
大変、ありがとうございました。

2.厚労省のホームぺージから、新型コロナ感染者のデータを取得

厚労省のホームページから、陽性者数をダウンロード。csvデータで簡単にダウンロードが出来るのは、とても好感が持てた。厚労省、スゴイ!

詳しい分析手法については、前述の「もものきとデータ解析をはじめよう」を参照してください。

まずは、準備作業。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
% matplotlib inline

そして、ダウンロードしたデータを読み込む。1月16日以降のデータが入っている。

df=pd.read_csv('pcr_positive_daily.csv')
df.head()

ちなみに、直近のデータは一昨日のもの。基本的に、前日のデータまで取得できるが、更新されるのは、夕方。土日でも更新されるところがエライ!

df.tail()

さて、データが公表されている1月後半以降、足元までの感染者数の推移を見てみよう。

%matplotlib inline
df.plot()

ちなみに、matplotlibは、そのまま使うと、いわゆる「豆腐」になります(笑)
解決方法は、以下のぺージが、とっても参考になりました。ありがとうございます。
Googleコラボのグラフ(matplotlib)を日本語化する方法!

3.PythonのStatsModelで、トレンド、季節要因、残差に分解

さて、やっと本題です。
厚労省のデータを、PythonのStatsModelを使って、分解します。

numbers = pd.Series(df['PCR 検査陽性者数(単日)'], dtype='float')
numbers.index = pd.to_datetime(df['日付'])

res = sm.tsa.seasonal_decompose(numbers)

original = numbers # オリジナルデータ
trend = res.trend # トレンドデータ
seasonal = res.seasonal # 季節性データ
residual = res.resid # 残差データ

plt.figure(figsize=(8, 8)) # グラフ描画枠作成、サイズ指定

# オリジナルデータのプロット
plt.subplot(411) # グラフ4行1列の1番目の位置(一番上)
plt.plot(original)
plt.ylabel('Original')

# trend データのプロット
plt.subplot(412) # グラフ4行1列の2番目の位置
plt.plot(trend)
plt.ylabel('Trend')

# seasonalデータ のプロット
plt.subplot(413) # グラフ4行1列の3番目の位置
plt.plot(seasonal)
plt.ylabel('Seasonality')

# residual データのプロット
plt.subplot(414) # グラフ4行1列の4番目の位置(一番下)
plt.plot(residual)
plt.ylabel('Residuals')

plt.tight_layout() # グラフの間隔を自動調整

結果は、以下の通りです。
コードにも書きましたが、上から順番に、
①オリジナルデータ
②トレンドデータ
③季節性データ
④残差データ
と なります。

2番目のトレンドデータに着目して下さい。
最初のピークが4月上旬、今回のピークが8月上旬にあることが見てとれます。
そこから考えるに、次のピークは12月上旬でしょうか。

4.最後に

新型コロナが早期に終息することを、ただただ祈っています。
しかしながら、現実は厳しい と、認識しています。

新型コロナの病名はCOVID-19ですが、ウイルス名はSARS-CoV-2だそうです。
このウィルス名はSARSに似ているからだそうです。

そのSARSが流行ったのは2002年ですから、今から20年近く前です。
しかしながら、SARSのワクチンは未だに作られていないようです。

大変な時代だからこそ、出来ることを粛々と、やっていきたいと思います。

新型コロナの影響で、飲み会がなくなったのは、寂しい気もしますが、
在宅勤務の推進など、合理的な働き方を進める、良い機会になった面もあります。

こんな時こそ、落ちついて生きましょう

最後の最後に、参考とさせて頂きましたサイトの関係者の方々に、御礼、申し上げます。