感染症拡大予測
Prophetを使用して感染症の拡大予測を行うための例を示します。
ここでは架空のデータを使用していますが、実際のデータを用いて同様の手順が適用できます。
まず、必要なライブラリをインポートします。
1 | import pandas as pd |
次に、時系列データを作成し、Prophetで予測を行います。
以下は架空の感染症拡大データの例です。
1 | # データの作成 |
最後に、結果をグラフ化してみましょう。
1 | # 予測結果のグラフ化 |
このコードを実行すると、感染症の拡大予測のグラフが表示されます。
[実行結果]
ここでは架空のデータを使用しましたが、実際の感染症データを同様の方法で扱うことができます。
結果のグラフから、将来の感染症の拡大傾向を視覚的に把握することができます。
コード解説
コードの各部分を詳しく説明します。
1. ライブラリのインポート:
1 | import pandas as pd |
必要なライブラリをインポートしています。
pandas
はデータ操作のために、numpy
は数値計算のために、Prophet
は時系列予測のために、matplotlib
はグラフ化のために使用されます。
2. データの作成:
1 | data = pd.DataFrame({ |
ここでは、180日間の時系列データを作成しています。
‘ds’列には日付が、’y’列には架空の感染症のケース数が入力されています。
最初の90日間は100から1000の範囲の乱数で、残りの90日間は1000から5000の範囲の乱数でデータが生成されています。
3. モデルの初期化と学習:
1 | model = Prophet(daily_seasonality=True) |
Prophetモデルを初期化し、daily_seasonality
をTrueに設定して日次の季節性をモデルに含めます。
その後、作成したデータを使用してモデルを学習させます。
4. 予測のためのデータフレーム作成:
1 | future = model.make_future_dataframe(periods=30) |
モデルによる予測を行うための、未来の日付を含むデータフレームを作成します。
ここでは、30日分の日付が追加されたデータフレームを作成しています。
5. 予測の実行:
1 | forecast = model.predict(future) |
作成した未来の日付を持つデータフレームを使用して、Prophetモデルによる予測を実行します。
予測結果はforecast
に格納されます。
6. 予測結果のグラフ化:
1 | fig = model.plot(forecast) |
予測結果をグラフ化して表示します。model.plot()
関数は予測結果をグラフとして描画します。
plt.title()
、plt.xlabel()
、およびplt.ylabel()
関数でグラフにタイトルと軸ラベルを設定し、plt.show()
でグラフを表示します。
結果解説
実行結果として表示されるグラフの詳細な説明を示します。
1. x軸 (Date):
グラフの横軸は日付(Date)を表しています。
時系列データのため、日付ごとにデータがプロットされています。
元のデータと予測の期間が表示されています。
2. y軸 (Number of Cases):
グラフの縦軸は感染症のケース数(Number of Cases)を表しています。
この軸に沿って、感染症のケース数の推移が示されています。
3. 青い点線(Observed Data):
グラフ上に描かれた青い点線は実際の観測データを示しています。
元のデータセットに含まれる感染症のケース数が点線でプロットされています。
4. 青い曲線(Trend):
青い曲線は感染症のケース数のトレンド(Trend)を表しています。
これは元のデータから学習されたトレンドを示しており、将来の動向を予測するための基準となります。
5. 黒い点線(Forecast):
黒い点線は未来の期間における感染症のケース数の予測を示しています。
これにより、モデルが予測した将来の動向を示しています。
6. ライトブルーの領域(Uncertainty Interval):
ライトブルーの領域は予測の不確かさを示しています。
モデルが予測する未来のケース数の幅を示しており、不確かな要因が影響する可能性を示唆しています。
7. 土曜日(Saturday)のウィークリーシーズナリティ(Weekly Seasonality):
グラフ上に土曜日ごとに現れる縦の帯があります。
これは週ごとの周期性を表しており、感染症の週末と平日のパターンを示しています。
このグラフは、元のデータから学習されたトレンドと週次パターンをもとに、未来の感染症の拡大傾向を予測したものです。
不確かさの範囲も考慮されており、将来の予測の信頼性がどれだけあるかを示しています。