見出し画像

【Kaggle】#3 SARIMA分析

今日はSARIMA分析について勉強した。
コードについてのメモ。
※内容が正しいかどうかは保証できません。間違っていたら教えて下さい。
※SARIMA分析とは?は省略しています。あくまでコードのみです。


課題とゴール

  • 月ごとの売上データ(2000/1-2020/12)から、将来の売り上げ(2021/1-2024/12)を予測する

  • 予測値はグラフに出力

  • 与えられたデータは以下のようなDataFrame


流れ


  1. データを読み込む

  2. インデックスを日付に置き換え、「Month」列を削除

  3. パラメータ「p,d,q」「sp.sd.sq」を決める最適化関数を定義

  4. 最適化関数を使ってパラメータ決定

  5. SARIMAモデルにデータ、パラメータを渡して学習させる

  6. 予測

  7. プロット


使うコード


データ読み込み

A=pd.read_csv("ファイルパス")

<ファイルパス>のcsvデータを読み込み、
そのオブジェクトに<A>と名付ける

インデックスを日付に置き換え、「Month」列を削除

  1. 「index」という日付の入ったオブジェクトを作成

  2. データのインデックス列を「index」に置き換える

  3. 「Month」列を削除

■日付の入ったオブジェクトは「pd.date_range」で作れる

index=pd.date_range("開始日","終了日",freq="<幅>")

<開始日>から<終了日>まで、<>の幅で日付作成

 #例 
index=pd.date_range("2000-1-30","2020-12-31",freq="M")


■データのインデックス列は「.index」で取り出せる

A.index

<A>というオブジェクトのインデックス列

A.index=index

<A>というオブジェクトのインデックス列を「index」で置き換え


■「del」で削除

del A["Month"]

<A>というオブジェクトのMonth列を削除


SARIMAモデル学習

「sm.tsa.statespace.SARIMAX」を使う

sm.tsa.statespace.SARIMAX(トレーニングデータ,pdq,sp sd sq).fit()

SARIMAモデルに<トレーニングデータ>、p,d,q、sp,sd,sqを渡し、学習させる
引数はDataFrame形。たぶん。


予測

  • 定石通り「モデル.predict()」を使う

  • 引数には開始日と終了日を入れる(2021-1-1)

pred =SARIMA_sales_car.predict("<開始日>","<終了日>")


プロット

  • オブジェクト.plot()

  • plt.show()

A.plot()
plt.show()

「A」をプロット


おまけ

いまデータ型どうなってる?という時は以下で確認

print(type(A))

「A」というオブジェクトのデータ型を表示させる

この記事が気に入ったらサポートをしてみませんか?