시계열 분석 이동평균 MA(q) 과정을 위한 파라미터 선택 및 예측

   이동평균에 대해서  기초이론을 보지 않고 처음 방문한 페이지이면 아래의 페이지를 먼저 보시고 오시길 바랍니다. 

https://rdmkyg.blogspot.com/2021/08/blog-post.html


MA(q) 과정을 위한 파라미터의 선택

 AR 모델의 적합에서와 동일한 데이터로 MA 모델을 적합시킨다  그리고 ACF를 통해 MA과정의 차수를 결정한다.   
# 패키지 로딩 
  library(readxl)
  library(httr)

# 데이터 셋 가져오기 
  url = "https://drive.google.com/u/0/uc?id=1txatfA9L88BFAfDKKXbqfGMSw6TBfwhQ&export=download"
  GET(url, write_disk(tf <- tempfile(fileext = ".xlsx")))
  demand <- read_excel(tf, 1L) 

## R
  acf(demand[["Banking orders (2)"]])

ACF를 사용하여 MA 모델의 차수를 결정한다. 


지연 3과 9에서 임계유의값이 확인 되므로, 이 지연들에 대해 MA 모델을 적합 시킨다.  이때 출력된 내용을 확인 하여 모델의 계수를 0으로 잘못 제한 하는 실수를 하지 않도록 주의 해야 한다. 

## R
# rep(0,5)는 0,0,0,0,0을 만든다.
  ma.est = arima(x=demand[["Banking orders (2)"]],
                 order = c(0, 0, 9),
                 fixed = c(0,0,NA,rep(0,5),NA,NA)
                 
                 )

  ma.est  
## 
## Call:
## arima(x = demand[["Banking orders (2)"]], order = c(0, 0, 9), fixed = c(0, 0, 
##     NA, rep(0, 5), NA, NA))
## 
## Coefficients:
##       ma1  ma2      ma3  ma4  ma5  ma6  ma7  ma8      ma9  intercept
##         0    0  -0.4725    0    0    0    0    0  -0.0120  79689.809
## s.e.    0    0   0.1459    0    0    0    0    0   0.1444   2674.593
## 
## sigma^2 estimated as 1.4e+09:  log likelihood = -717.31,  aic = 1442.61

AR 모델에서 했던 것처럼 모델의 적합을 검사해야 한다 .  그러기 위해서는 모델의 잔차에 대한 ACF그래프를 그리고,  잔차에 대한 모든 적합으로 부터 전체적인 임의성을 검사하는 륭-박스 검정으로 별도의 성능 검사를 수행해야 한다. 

Box.test() 함수에는 자유도의 개수를 지정할 수 있다.  즉 특정 값으로 제한하지 않고 자유롭게 추정될 모델의 파라미터 개수를 지정하는 것이다.  위 코드 출력 결과로부터 MA3,MA9, 절편이 자유 파라미터라는 것을 알 수 있다. 

## R
# fitdf 인수로 자유도를 설정
  Box.test(ma.est$residuals, lag = 10, type = "Ljung", fitdf = 3)
## 
##  Box-Ljung test
## 
## data:  ma.est$residuals
## X-squared = 7.6516, df = 7, p-value = 0.3643

잔차 데이터 간의 시간적 상관관계가 없다는 귀무가설을 기각할 수 없습니다.  마찬가지로, 잔차에 대한 ACF의 그래프는 시간적 상관관계가 없다. 


 MA(q) 과정의 예측
  forecast 패키지의 fitted() 메서드를 사용하여 MA과정에 대한 예측을 생성할 수 있다. 
## R
  fitted(ma.est, h=1)
## Time Series:
## Start = 1 
## End = 60 
## Frequency = 1 
##  [1]  90116.64  80626.91  74090.45  38321.61  74734.77 101153.20  65930.90
##  [8] 106351.80 104138.05  86938.99 102868.16  80502.02  81466.01  77619.15
## [15] 100984.93  81463.10  61622.54  79660.81  88563.91  65370.99 104679.89
## [22]  48047.39  73070.29 115034.16  80034.03  70052.29  70728.85  90437.86
## [29]  80684.44  91533.59 101668.18  42273.27  93055.40  68187.65  75863.50
## [36]  40195.15  82368.91  90605.60  69924.83  54032.55  90866.20  85839.41
## [43]  64932.70  43030.64  85575.32  76561.14  82047.95  95683.35  66553.13
## [50]  89532.20  85102.64  80937.97  93926.74  47468.84  75223.67 100887.60
## [57]  92059.32  84459.85  67112.16  80917.23

MA 모델은 강한 평균회귀 mean reversion를 보이므로 예측이 과정의 평균으로 빠르게 수렴하는 것을 알 수 있다.  과정이 자체상관이 없는 백색잡음 함수라는 점을 생각해보면 타당한 것이다. 

모델에 설정된 차수 이상의 범위를 예측한다면 정의에 따라 예측은 필연적으로 과정의 평균이 된다. MA(1) 모델을 고려해 보자.

$ y_t = μ + θ _1 × e_{t-1} + e_t $

한 단계 미래의 예측을 위한 $y_{t+1}의 추정은$ y_t = μ + θ _1 × e_{t-1} + e_t $ 이다. 그리고 두 단계 미래의 예측을 하는 경우, 그 추정은 아래와 같다. 

 $ E(y_{t+2} = μ + e_{t+2} + θ_1×e_{t+1}) = μ + 0 + θ_1 × 0 = μ$

MA(1) 과정은 한 단계의 시간을 넘어선 정보에 입각한 예측이 불가능 하며,  이를 MA(q) 과정에 대해 일반화 할 수 있다.  이는 q 단계의 시간을 넘는 정보에 입각한 예측이 과정의 평균보다 더 유의미한 정보를 제공하지 못한다고 말 할 수 있다. 정보에 입각한 예측이란 예측ㄱ이 가장 최근의 측정값들이 영향을 미친다는 것을 의미 한다. 

NOTE_ 일발표기법은 음수이다.
일반적으로 MA 모델은 여기서 보인 것과는 다르게 작성 된다. 보통θ계수 앞에 음의 부호가 사용된다. MA 모델공식의 도출 방식 때문에 이러한 차이가 발생한다. MA 모델을 파라미터 제약을 가진 AR 모델이라고 생각해볼 수 있다. 많은 대수적 계산으로 이 공식은 θ에 대한 음의 계수를 이끌어 낸다.

적합 시킨 MA(9) 모델이 생성한 예측으로 이를 확인 할 수 있다. 이번에는 10단계를 앞선 예측을 수행해 본다.
## R
  fitted(ma.est, h =10)
## Time Series:
## Start = 1 
## End = 60 
## Frequency = 1 
##  [1]       NA       NA       NA       NA       NA       NA       NA       NA
##  [9]       NA       NA 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81
## [17] 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81
## [25] 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81
## [33] 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81
## [41] 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81
## [49] 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81 79689.81
## [57] 79689.81 79689.81 79689.81 79689.81

10 단계 앞선 미래 예측을 시도하면 매시간 단계에서 예측이 평균이라는 것을 알 수 있다.  복잡한 통계 모델이 없어도 평균을 구할 수 있다. 

  작동 방식에 대한 이해는 매우 중요하다.  작동방식을 이해하지 않고,  단순히 모델을 적용만 한다면 잘못된 예측 내용을 매일 상세에게 보내거나 부적합한 모델을 사용하는 것을 모른 채 계산자원을 낭비하는 등 당황스로운 일이 발생 할 것이다. 

# 참고서적 :  실적 시계열 분석 :  한빛 미디어




댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...