데이터분석/Machine Learning

R을 이용한 ARIMA(Autoregressive integrated moving average) 분석 예

늘근이 2016. 1. 10. 13:20

ARIMA 모델 (Autoregressive integrated moving average)

 

ARIMA (p,d,q)

에서 AR - p MA - q I - 차분 횟수

 

 

변태는 아니지만, 연도에 따른 여자들 치마길이 분석을 ARIMA(Autoregressive integrated moving average)를 해본다.

 

 

> skirts <- c(608,  617,  625,  636,  657,  691,  728,  784,  816,  876,  949,  
997, 1027, 1047, 1049, 1018, 1021, 1012, 1018,  991,  962,  921,  
871,  829,  822,  820,  802,  821,  819,  791,  746,  726,  661,  
620,  588,  568,  542,  551,  541,  557,  556,  534,  528,  529,  523,  531)
 
 
 

비정상적인 추이. 딱히 계절도 없다. 그냥 엄청 길어졌다 짧아진것일뿐.

 

 

차분 1번 가능

 

> sts1 <- diff(sts, differences=1)
 
 
 

한번 더하면 

 

> sts2 <- diff(sts, differences=2)

 

 

 

 

acf() / pacf() 함수를 이용해볼수도 있다

 

 

> acf(sts2, lag.max=20)
 
 

 

 

arima 자동

 
> auto.arima(skirts)
Series: skirts 
ARIMA(1,2,0)                    

Coefficients:
          ar1
      -0.2997
s.e.   0.1424

sigma^2 estimated as 388.7:  log likelihood=-193.66
AIC=391.33   AICc=391.62   BIC=394.9

 

 

스캔함수는 다음과같이 하면 헤더가 무시되고 불러옴

 

> v <- scan('http://robjhyndman.com/tsdldata/annual/dvi.dat', skip=1)

 

> vts <- ts(v,start=c(1500))
> plot(vts)

 

 

 

 

 

* ACF : Auto Correlation function

* PACF : Partial Auto Correlation function