製品売上予測 Prophet

製品売上予測

Prophetを使った製品売上予測の例を示します。

入力データ(日付と売上)と祝日情報をソースコード内に定義し、予測結果をグラフ化します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt

# 入力データの定義(日付と売上)
data = pd.DataFrame({
'ds': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05', '2023-01-06', '2023-01-07'],
'y': [100, 150, 120, 130, 140, 160, 155]
})
data['ds'] = pd.to_datetime(data['ds'])

# 祝日情報の定義
holidays = pd.DataFrame({
'holiday': 'holiday',
'ds': pd.to_datetime(['2023-01-01', '2023-01-07']),
'lower_window': 0,
'upper_window': 0,
})

# モデルの作成
model = Prophet(holidays=holidays)
model.fit(data)

# 未来の日付を生成(30日分の予測)
future = model.make_future_dataframe(periods=30)

# 予測の実行
forecast = model.predict(future)

# 予測結果のグラフ化
fig = model.plot(forecast)
plt.title('Product Lifetime Prediction')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.show()

このコードでは、入力データとして日付と売上を持つDataFrameを定義し、祝日情報も定義しています。

Prophetモデルを作成し、未来の日付を生成して予測を実行し、結果をグラフ化しています。

この例では7日間のデータを元に、さらに30日分の予測を行っています。

ご自身のデータに合わせて、日付と売上の値を適切に入力してください。

また、祝日情報もデータに合わせて調整してください。

ソースコード解説

それぞれのステップを詳しく説明します。

1. ライブラリのインポート:

  • pandas: データの操作と解析のためのライブラリ。
  • Prophet: Facebookが提供する時系列予測ライブラリ。
  • matplotlib.pyplot: データ可視化のためのライブラリ。

2. 入力データの定義:

  • data: 製品の売上データを持つDataFrame。
    ‘ds’列は日付を、’y’列は売上を表しています。
    日付は文字列型からpd.to_datetimeを使用して日付型に変換しています。

3. 祝日情報の定義:

  • holidays: 祝日の情報を持つDataFrame。
    ‘ds’列には祝日の日付を、’lower_window’と’upper_window’は祝日の前後の日数範囲を指定しています。
    ここでは祝日日付に影響を与えるために0を指定しています。

4. モデルの作成:

  • Prophetクラスのインスタンスを作成し、holidays情報を渡してモデルを初期化します。
  • fitメソッドでモデルをデータに適合させます。

5. 未来の日付の生成:

  • 予測結果を得るために、未来の日付を生成するためのDataFrame future を作成します。
    ここでは30日分の予測を行うため、periods引数に30を指定しています。

6. 予測の実行:

  • predictメソッドでモデルを用いて未来の売上を予測します。
    予測結果はforecastに格納されます。

7. 予測結果のグラフ化:

  • model.plot(forecast)で予測結果をグラフ化します。
  • plt.titleplt.xlabelplt.ylabelでグラフのタイトルと軸ラベルを設定します。
  • plt.show()でグラフを表示します。

このコードは、元データの売上トレンド、未来の予測、および祝日の影響を一つのグラフで視覚的に表現するために使用されます。

データや祝日情報を適切に調整することで、自身のデータに対して予測を行うことができます。

結果解説

表示されるグラフは、Prophetによる製品寿命の売上予測の結果を表しています。

グラフには以下の要素が含まれています。

1. 黒い点(元データ):

入力データにおける実際の売上を表す黒い点がプロットされています。
これらの点を通じて、元データの売上パターンが視覚的に確認できます。

2. 青いと線(予測データ):

未来の予測日付に対する売上を表す青い点がプロットされています。
青い線は、Prophetによる予測のトレンドを示しています。

3. 青い領域(不確実性範囲):

予測データの線の周りには、青い領域が描かれています。
これは予測の不確実性を示しており、売上がこれらの領域内に収まる確率が高いと言えます。

4. 祝日の影響:

グラフ上に縦線が描かれている部分は、祝日情報に基づいて設定された日付です。
これらの日付の周りには、祝日が予測にどのような影響を与えるかを示すエリアが表示されています。


このグラフを通じて、元データの売上トレンドや季節性、Prophetによる予測のトレンドと不確実性、祝日の影響などを視覚的に確認することができます。

予測結果がどの程度元データと一致するか、また祝日が売上にどのような影響を持つかを把握するのに役立ちます。