![見出し画像](https://assets.st-note.com/production/uploads/images/144399503/rectangle_large_type_2_388332bf0fee8517917bb24a745e0b80.png?width=1200)
【Kaggle】#3 SARIMA分析
今日はSARIMA分析について勉強した。
コードについてのメモ。
※内容が正しいかどうかは保証できません。間違っていたら教えて下さい。
※SARIMA分析とは?は省略しています。あくまでコードのみです。
課題とゴール
月ごとの売上データ(2000/1-2020/12)から、将来の売り上げ(2021/1-2024/12)を予測する
予測値はグラフに出力
与えられたデータは以下のようなDataFrame
![](https://assets.st-note.com/img/1718635624823-knWoQrsyFj.png)
流れ
データを読み込む
インデックスを日付に置き換え、「Month」列を削除
パラメータ「p,d,q」「sp.sd.sq」を決める最適化関数を定義
最適化関数を使ってパラメータ決定
SARIMAモデルにデータ、パラメータを渡して学習させる
予測
プロット
使うコード
データ読み込み
A=pd.read_csv("ファイルパス")
<ファイルパス>のcsvデータを読み込み、
そのオブジェクトに<A>と名付ける
インデックスを日付に置き換え、「Month」列を削除
「index」という日付の入ったオブジェクトを作成
データのインデックス列を「index」に置き換える
「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」というオブジェクトのデータ型を表示させる
この記事が気に入ったらサポートをしてみませんか?