日次新規感染者数の予測
Prophetを使ってCOVID-19の日次新規感染者数の予測を行います。
データはサンプルデータであり、実際のデータとは異なるかもしれませんが、Prophetの使い方を示すためのものです。
まず、必要なライブラリをインストールし、COVID-19のデモデータを生成し、Prophetを使用して予測を行います。
1 | import pandas as pd |
このサンプルコードでは、Prophetを使用してCOVID-19の日次ケース数の予測を行います。
実際のCOVID-19データでは、データを正確に収集し、休日情報なども考慮する必要があります。
デモデータは単なる例示であり、実際の予測用途では使用しないでください。
ソースコード解説
以下はソースコードの詳細な説明です:
1. import
ステートメント:
pandas
: データを操作および処理するためのライブラリ。numpy
: 数値計算を行うためのライブラリ。fbprophet
: Facebookが開発したProphetモデルを使用するためのライブラリ。matplotlib.pyplot
: グラフのプロットに使用するライブラリ。
2. COVID-19のデモデータの生成:
np.random.seed(10)
: 乱数生成のシードを設定し、再現性を確保します。dates = pd.date_range(start="2020-01-01", end="2021-12-31", freq='D')
: 2020年1月1日から2021年12月31日までの日次日付を生成します。cases = np.random.randint(0, 5000, size=len(dates))
: 0から5000までのランダムな整数でCOVID-19感染者数のデモデータを生成します。
3. データフレームの作成:
df = pd.DataFrame({'ds': dates, 'y': cases})
: 生成した日付と感染者数を持つデータフレームを作成します。
‘ds’は日付、’y’は感染者数を示します。
4. Prophetモデルの初期化:
model = Prophet()
: Prophetモデルを初期化します。
Prophetは時系列データの予測に使用されるモデルです。
5. 休日情報の追加(オプション、コメントアウトされています):
model.add_country_holidays(country_name='US')
: モデルに休日情報を追加する場合に使用します。
COVID-19のデモデータでは休日情報は含まれていないため、コメントアウトされています。
6. モデルのトレーニング:
model.fit(df)
: データフレームを使用してProphetモデルをトレーニングします。
モデルはデータに適合し、将来の予測を行うために使用されます。
7. 予測期間の指定:
future = model.make_future_dataframe(periods=365)
: 予測期間を指定します。
ここでは、365日間の予測を行うために新しい日付を作成します。
8. 予測の実行:
forecast = model.predict(future)
: 予測を実行し、結果をforecast
変数に格納します。
この予測には将来の日付に対する感染者数の予測が含まれます。
9. 予測結果のプロット:
fig = model.plot(forecast)
: Prophetモデルによる予測結果をプロットします。
プロットは青い線で予測結果を示し、黒い点は実際の観測値(デモデータ)を表します。plt.title("COVID-19 Daily Cases Forecast")
: グラフにタイトルを追加します。plt.xlabel("Date")
: x軸に日付を表示します。plt.ylabel("Daily Cases")
: y軸に日次感染者数を表示します。plt.show()
: グラフを表示します。
このコードはProphetを使用してCOVID-19の感染者数の予測を示す例であり、実際のCOVID-19データではなく、デモデータを使用しています。
予測結果は青い線で表示され、黒い点は実際の観測値を表します。
グラフ解説
COVID-19の日次新規感染者数の予測グラフを詳しく説明します。
このグラフはProphetモデルを使用して生成されたもので、COVID-19感染者数の将来のトレンドを予測するのに役立ちます。
ただし、このサンプルデータは実際のデータではなく、単なるデモデータです。
グラフには以下の要素が含まれています:
1. 軸ラベル:
グラフの下部には日付(Date)が表示されており、横軸に沿って配置されています。
これは予測の対象となる期間を表します。
2. 縦軸ラベル:
グラフの左部には新規感染者数(Daily Cases)が表示されており、縦軸に沿って配置されています。
これは各日の予測される新規感染者数を表します。
3. 黒い点:
グラフ上に表示されている黒い点は、各日の実際の新規感染者数を示しています。
4. 青色の線と影:
青色の線は、Prophetモデルによる実際のデータへの適合(学習)と、将来の期間に対する予測を示しています。
青い線の中央部分は学習データに対する適合を示し、青い線の右側は将来の期間に対する予測を示します。
青い線の周りには青い影があり、予測の不確実性を示しています。
このグラフの主要な目的は、過去のデータを元にCOVID-19の新規感染者数のトレンドを予測することです。
青い線は実際のデータに合わせて学習され、将来の期間に対する予測を提供します。
不確実性を示す青い影は、予測の信頼性を示しています。
この例は、Prophetを使用して時系列データの予測を行う一般的な手法を示すもので、COVID-19の実際のデータを使用して予測を行う際には、正確なデータと適切な前処理が必要です。