航空旅客数の予測
Facebookが開発した時系列分析ライブラリProphetを用いて、航空旅客数のデータを分析し、将来の旅客数を予測してみましょう。
まず、以下のようにライブラリをインストールします。
1 | !pip install prophet |
次に、以下のコードを使ってデータを分析・予測します。
1 | import pandas as pd |
ここでは、航空旅客数のデータを読み込み、Prophetのモデルに適用可能な形式に加工します。
その後、モデルを訓練し、将来の365日にわたる予測を行います。
m.plot(forecast)
では、元のデータ(点)と予測の結果(線)をプロットしています。
また、m.plot_components(forecast)
では、予測の各コンポーネント(トレンド、年間の季節性)をプロットしています。
これらの結果から、旅客数の長期的なトレンドや季節的な変動を理解することができ、さらに未来の旅客数を予測することが可能です。
[実行結果]
ソースコード解説
ソースコードの詳細を説明します。
1. データの読み込み
pd.read_csv
を使用して、航空旅客数の時系列データをURLから読み込みます。- データフレームの列名を
['ds', 'y']
に変更し、'ds'
列を日付型に変換します。
2. Prophetモデルの訓練
- Prophetを初期化し、年次の季節性を有効にしてモデルを構築します。
- 訓練用のデータを使って、
m.fit(df)
でモデルを訓練します。
3. 未来の予測のためのデータフレームの作成
- 未来の予測のために、
m.make_future_dataframe(periods=365)
を使って新しい日付のデータフレームを作成します。 - この新しいデータフレームに対して
m.predict(future)
を実行し、将来の予測を行います。
4. 予測のプロット
m.plot(forecast)
を使って、予測されたデータを含むグラフを表示します。- 実際のデータと予測されたデータが可視化され、さらに予測の信頼区間も表示されます。
5. トレンドとコンポーネントの表示
m.plot_components(forecast)
を使用して、Prophetが検出したトレンドや季節性の成分を個別にプロットします。- トレンド、年次、週次、日次の季節性成分が表示され、データのパターンや季節変動を視覚的に理解するのに役立ちます。
これらのステップにより、Prophetを使って時系列データの予測を行い、その結果をグラフで視覚化する完全な流れが示されています。
グラフ解説
このコードは、Prophetを使って時系列データの予測とその分解を行います。
データセットは航空旅客数の時系列データで、以下の3つのグラフを生成します。
[実行結果]
全体の時系列データの予測
- Prophetによる時系列データの予測を可視化します。
横軸は時間(日付)を、縦軸は航空旅客数を表します。
黒色の点が実際のデータ、青色の線が予測されたデータを示します。
さらに、予測の信頼区間も表示されます(水色の領域)。
- Prophetによる時系列データの予測を可視化します。
トレンド
- Prophetが検出したトレンドを示します。
時系列データの中での長期的な変動を捉えており、時間に伴う変動や推移を示します。
年次(yearly)、週次(weekly)、日次(daily)の季節性成分も含まれます。
- Prophetが検出したトレンドを示します。
季節性成分の表示
- 季節性成分を個別にプロットし、それぞれの季節パターンを示します。
年間の季節変動や週ごとのパターン、さらに日単位の変動を示しています。
- 季節性成分を個別にプロットし、それぞれの季節パターンを示します。
これらのグラフは、時系列データの予測に使用されるProphetモデルの挙動や、データが持つトレンドや季節性などを視覚的に理解するのに役立ちます。