今の世界を知る "元の" データ集 / 統計分析、因果推論

アメリカ輸入額推定(時系列分析、因果推論の時系列)その2

前回に続き、アメリカの輸入額予測をやってみたい。今回は、因果推論の時系列分析(pycaret)でやってみる。

今回も主に参考にさせてもらった書籍は以下の2冊。

”元”データは、2014年から2024年11月までのアメリカの月次輸入額(百万ドル)。CSVファイルは以下からダウンロード可。

from pycaret.time_series import *

# データの読み込み
df = pd.read_csv("Import.csv")

# 日付データをdatetime型に変更し、index指定
df["Date"] = pd.to_datetime(df["Date"])
df = df.set_index("Date")

# 月次データなので、fh=12としてセットアップ関数に投入
exp_name = setup(data=df, fh=12, session_id=1)
  • まずはARIMAでやってみる。
arima = create_model("arima")
plot_model(plot="ts")
# STL分解
plot_model(plot="decomp")
  • 前回同様、明確に季節性が見て取れる。
  • コロナの影響で2020年の中頃に落ち込んだ後、一気に回復。トレンドとしては、コロナ以降、大きく増加傾向。
  • やはり202年春の大きな輸入額が気になる。
  • 2022年の前半に異常値ともとれるほど上昇している。
  • 2025年11月まで2年間を予測してみる。
plot_model(estimator=arima, plot="forecast", data_kwargs={"fh":24})
  • 前回の通常の時系列分析によるARIMA、SARIMAより明らかに現実と適合している。
  • 2024年12月予測は254,978(百万ドル)、2025年1月予測は256,691(百万ドル)、2月予測は、季節性により大きく減少、232,977(百万ドル)との予測。
  • これらを実際の値と比べてみたい。
  • また、関税の影響がある場合、これらの予測値と比較というものひとつの参考になるかもしれない。
  • 精度をあげるために様々なモデルを試してみる。
best_model = compare_models()
  • 便利!
  • 各評価指標で一番いいのは、auto_ARIMAとの結果
  • auto_ARIMAでやってみる。
import numpy as np
import pandas as pd
from statsmodels.tsa.arima_process import ArmaProcess
from causalimpact import CausalImpact
auto_arima = create_model("auto_arima")
  • RMSE(二乗平均平方根誤差)を最小にするように調整をかけてみる。
tuned_auto_arima = tune_model(auto_arima, n_iter=5, optimize="RMSE") 
  • 改善しない、、
# 描画してみる
plot_model(tuned_auto_arima)
  • 前回のARIMA、SARIMAより、2024年の増加に対応できているようにみえる。
  • 信頼区間幅は大きい。
  • 同様に、2025年11月までの24ケ月予測をしてみる。
plot_model(estimator=tuned_auto_arima, plot="forecast", data_kwargs={"fh":24})
  • 黒が現実値、青が予測値。
  • 前回と今回の予測値は以下のとおり。
ARIMAモデル
(百万ドル)
auto_ARIMAモデル
(百万ドル)
2024年12月予測額254,978263,559
2025年1月予測額256,691263,414
2025年2月予測額232977257,768
  • auto_ARIMAの方が、大きな額を予測している。
  • 12月の輸入額発表を待って比較してみたい。