1
2

More than 3 years have passed since last update.

リベンジ!コロナの陽性者数を予測してみた。[Python]

Last updated at Posted at 2020-12-07

概要

  • コロナ陽性者数を予測したい!!!
  • 前回の記事の精度を超えたい!!!リベンジしたい!!!

使ったデータ

実行結果

  • 11/1から12/31までの日本のコロナ陽性者数を予測。
  • 赤線は実際の陽性者数、青線は予測の陽性者数。

corona_202012.png

まとめ

  • 前回との相違点はグラフの様式とSARIMAモデルのパラメータの値。精度が上がった!!
  • パラメータを上手く設定できれば精度が上がる?

おまけ

  • 11/1から来年の3/31までの陽性者数を予測。
  • 5000人までいきそう。。。

corona_202103.png

おまけのおまけ

  • 11/1から来年の12/31までの陽性者数を予測。
  • マイナスの陽性者数が出てる?!?!

corona_202112.png

コード

# 基本のライブラリを読み込む
import pandas as pd
# グラフ描画
from matplotlib import pylab as plt
# グラフを横長にする
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 15, 6
import matplotlib as mpl
mpl.rcParams['font.family'] = ['serif']


# データの準備
df = pd.read_csv("pcr_positive_daily.csv")

corona = pd.Series(df["PCR 検査陽性者数(単日)"].values,
                       index=pd.to_datetime(df["日付"]))

# SARIMAモデル(季節自己回帰和分移動平均モデル)
import statsmodels.api as sm

sarima = sm.tsa.SARIMAX(
    corona, order=(2,1,3), 
    seasonal_order=(0,1,1,30), 
    enforce_stationarity = False, 
    enforce_invertibility = False
).fit()

# 予測
corona_pred = sarima.predict('2020-11-01', '2020-12-31')

# 実データと予測結果の図示
plt.plot(corona, label='original', color='red')
plt.plot(corona_pred, label='predicted', color='blue')
plt.xlabel("date")
plt.ylabel("Corona positive")
plt.legend(loc='best')

# # 予測値
# print(corona_pred)

参考

1
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
1
2