【統計】時系列分析(ARIMA、SARIMA、SARIMAXをSASで実行する)

ARIMAプロシジャのメモ。
基本はRを使っているので初歩。

【目次】


以前の記事
【統計】時系列分析(AR、MA、ARMA、ARIMA、SARIMA、ARIMAXモデル) - こちにぃるの日記
【統計】時系列分析(ARIMA、SARIMA、SARIMAXをRで実行する) - こちにぃるの日記


Auto ARIMA


identify ステートメントでAR, MA過程の複数パターンを評価できる。
var=target で目的変数を指定。カッコ内に階差を指定。
nlag で季節サイクルを指定。
p=(0:10) q=(0:10) でAR過程を0~10の各組合せで推定。
stationarity=(adf) で定常性を検定。adf で拡張ディッキー–フラー検定。
crosscorr=(variable_name) で外生変数(回帰成分)との相関を評価。
esacf minic scan あたりで各組合せを評価。

proc arima data=adts ;
    identify var=target(1,12) nlag=12
             p=(0:10) q=(0:10)
             stationarity=(adf)
             crosscorr=(variable_name) outcov=_outcov
             esacf minic scan ;
run;
quit;

ARIMA(p,0,0):AR(p)モデル


estimate ステートメントでAR過程とMA過程を指定。

proc arima data=adts ;
    identify var=target;
    estimate p=2; 
run;
quit;

ARIMA(0,0,q):MA(q)モデル


proc arima data=adts ;
    identify var=target;
    estimate q=2; 
run;
quit;

ARIMA(p,0,q):ARMA(p,q)モデル


proc arima data=adts ;
    identify var=target;
    estimate p=2 q=2; 
run;
quit;

ARIMA(p,d,q):ARIMA(p,d,q)モデル


proc arima data=adts ;
    identify var=target(1);
    estimate p=2 q=2; 
run;
quit;

ARIMAXモデル


identify ステートメントcrosscorrestimate ステートメントinput で外生変数を指定。

proc arima data=adts ;
    identify var=target(1) crosscorr=(variable_name);
    estimate p=2 q=2 input=(variable_name);
run;
quit;

SARIMAモデル


nlag でサイクルを指定。

proc arima data=adts ;
    identify var=target(1,12) nlag=12;
    estimate p=(1 2)(1 2) q=(1 2)(1 2); 
run;
quit;

SARIMAXモデル


proc arima data=adts ;
    identify var=target(1,12) nlag=12 crosscorr=(variable_name);
    estimate p=(1 2)(1 2) q=(1 2)(1 2) input=(variable_name);
run;
quit;

将来予測


forecast ステートメントで将来予測。
lead で何期まで予測するか指定。
interval でサイクルの単位。
id で inputデータの必要な変数を outputデータに保持させる。

proc arima data=adts ;
    identify var=target(1,12) nlag=12 crosscorr=(variable_name);
    estimate p=(1 2)(1 2) q=(1 2)(1 2) input=(variable_name);
    forecast lead=12 interval=month id=id_variable_name out=_pred ;
run;
quit;
  
proc sgplot data=_pred;
   band Upper=u95 Lower=l95 x=id_variable_name / LegendLabel="95%CI";
   scatter x=id_variable_name y=target;
   series  x=id_variable_name y=forecast ;
run;


参考


https://support.sas.com/documentation/onlinedoc/ets/132/arima.pdf

本ブログは個人メモです。 本ブログの内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。