Rのts.arima関数を使ってみる

今回の目的は、Rの使い方に慣れる・Rの使い方思い出すこと。
従って、適切なモデリングかどうかといったことは気にしない。

1.CSVからデータを読み込む
2.時系列データへ変換する
3.とりあえず、ts.arimaを使用してみる
4.とりあえず、ts.arimaで推定された最適モデルをforecast関数で予測してみる
5.forecastによる予測をプロットしてみる

1.CSVからデータを読み込む

tdata<-read.csv("tdata.csv")

2.時系列データへ変換する

tdata.close<-tdata[,5]
tdata.close.ts<-as.ts(as.numeric(tdata.close))

3.とりあえず、ts.arimaを使用してみる

tdata.close.ts.arima<-auto.arima(tdata.close.ts,max.p=100,stepwise=T,trace=T)

ARIMA(2,1,2) with drift         : 2351.92
ARIMA(0,1,0) with drift         : 2360.76
ARIMA(1,1,0) with drift         : 2350.63
ARIMA(0,1,1) with drift         : 2349.009
ARIMA(0,1,0)                    : 2358.813
ARIMA(1,1,1) with drift         : 2352.039
ARIMA(0,1,2) with drift         : 2351.01
ARIMA(1,1,2) with drift         : 2353.963
ARIMA(0,1,1)                    : 2347.139
ARIMA(1,1,1)                    : 2350.147
ARIMA(0,1,2)                    : 2349.122
ARIMA(1,1,2)                    : 2352.03

Best model: ARIMA(0,1,1)                    

4.とりあえず、ts.arimaで推定された最適モデルをforecast関数で予測してみる

forecast(auto.arima(tdata.close.ts,max.p=100,stepwise=T,trace=T),level=c(10,50,90),h=100)

 ARIMA(2,1,2) with drift         : 2351.92
 ARIMA(0,1,0) with drift         : 2360.76
 ARIMA(1,1,0) with drift         : 2350.63
 ARIMA(0,1,1) with drift         : 2349.009
 ARIMA(0,1,0)                    : 2358.813
 ARIMA(1,1,1) with drift         : 2352.039
 ARIMA(0,1,2) with drift         : 2351.01
 ARIMA(1,1,2) with drift         : 2353.963
 ARIMA(0,1,1)                    : 2347.139
 ARIMA(1,1,1)                    : 2350.147
 ARIMA(0,1,2)                    : 2349.122
 ARIMA(1,1,2)                    : 2352.03

 Best model: ARIMA(0,1,1)                    

    Point Forecast    Lo 10    Hi 10    Lo 50    Hi 50    Lo 90    Hi 90
341       19686.24 19685.27 19687.21 19681.03 19691.44 19673.55 19698.92
342       19686.24 19685.00 19687.47 19679.59 19692.88 19670.03 19702.44
343       19686.24 19684.78 19687.69 19678.41 19694.06 19667.15 19705.33
344       19686.24 19684.59 19687.89 19677.38 19695.09 19664.65 19707.83
345       19686.24 19684.42 19688.06 19676.46 19696.01 19662.41 19710.07
346       19686.24 19684.26 19688.21 19675.62 19696.85 19660.36 19712.11
347       19686.24 19684.11 19688.36 19674.85 19697.62 19658.46 19714.01
348       19686.24 19683.98 19688.49 19674.12 19698.35 19656.69 19715.78
349       19686.24 19683.85 19688.62 19673.43 19699.04 19655.01 19717.46
350       19686.24 19683.73 19688.74 19672.78 19699.69 19653.42 19719.05
351       19686.24 19683.61 19688.86 19672.16 19700.31 19651.91 19720.56
352       19686.24 19683.50 19688.97 19671.56 19700.91 19650.46 19722.01
353       19686.24 19683.40 19689.08 19670.99 19701.48 19649.06 19723.41
354       19686.24 19683.29 19689.18 19670.44 19702.03 19647.72 19724.75
355       19686.24 19683.19 19689.28 19669.91 19702.56 19646.42 19726.05
356       19686.24 19683.10 19689.37 19669.39 19703.08 19645.16 19727.31
357       19686.24 19683.01 19689.47 19668.89 19703.58 19643.94 19728.53
358       19686.24 19682.91 19689.56 19668.41 19704.07 19642.76 19729.72
359       19686.24 19682.83 19689.65 19667.93 19704.54 19641.60 19730.87

5.forecastによる予測をプロットしてみる

plot(forecast(auto.arima(tdata.close.ts,max.p=100,stepwise=T,trace=T),level=c(10,50,90),h=100))

まぁ、使い方はわかるけど、モデルとしては全然駄目駄目ですなw。