【時系列】ARIMA(R)
前回のARIMAモデルをRで実装していきたいと思います。
使用するデータ
2015年1月から2018年7月までの日経225の終値を利用したいと思います。データの作成方法は下記のサイトを参考にしました。
ちなみにPythonやらで使用したいためcsvでいったん出力しています。
ARIMAモデルを入れてみる
今回は上記の終値を対数をとっています。
#data nikkei225 <- read.csv("C:/Users/USER/Documents/R/nikkei225.csv",row.names=1) #ARIMAモデル #install.packages("forecast") library(forecast) Arima <- auto.arima( log(nikkei225$終値), ic="aic", stepwise=F, approximation=F, max.p=5, max.q=5) Arima #Series: log(nikkei225$終値) #ARIMA(1,1,1) # #Coefficients: # ar1 ma1 #0.6933 -0.7464 #s.e. 0.2040 0.1890 # #sigma^2 estimated as 0.0001681: log likelihood=2518.12 #AIC=-5030.24 AICc=-5030.21 BIC=-5015.97 #予測 yosoku <- forecast(Arima,level=c(50,95),h=30) yosoku #Point Forecast Lo 50 Hi 50 Lo 95 Hi 95 #862 9.989377 9.980632 9.998122 9.963966 10.01479 #863 9.989555 9.977511 10.001598 9.954559 10.02455 #864 9.989678 9.975242 10.004113 9.947731 10.03162 #865 9.989763 9.973386 10.006141 9.942173 10.03735 #866 9.989822 9.971775 10.007869 9.937381 10.04226 #・・・ #図示 plot(forecast(Arima,level=c(50,95),h=30)) # 信頼区間を50%, 95%で設定して表示(前者の方が狭い) # 向こう30区間の予測値と信頼区間を表示
SARIMAもやってみる
と思ったのですが、forecastパッケージのauto.arimaが勝手に季節調整してくれる?みたいなので割愛します。
ARIMAX
auto.arimaの変数にxregを入れることで説明変数を増やすことができます。
#ARIMAX Arimax <- auto.arima( log(nikkei225$終値), xreg=nikkei225$Friday, ic="aic", stepwise=T, approximation=T, )