작성자: 17기 김희준
본 포스팅은 DMQA 김성범 교수님의 ARIMA 모델 강의를 바탕으로 작성되었습니다.
https://www.youtube.com/watch?v=ma_L2YRWMHI
과거 시점의 일정기간(N)의 평균으로 다음 시점을 예측하는 방법.
아래 표는 기간 N=3으로 잡은 경우이다. 만약 시점6까지 관측이 되었고, 7부터 예측을 해야한다고 가정하면 아래 표처럼 예측할 수 있다. 하지만 보다시피 가장 마지막 구간 평균치로만 예측하기 때문에 미래의 예측값이 모두 동일하다는 단점이 있다.
시점 t | 관측값 | 구간 평균치 | 예측값 |
1 | 20 | ||
2 | 60 | ||
3 | 25 | 35.00 | |
4 | 70 | 51.67 | |
5 | 28 | 41.00 | |
6 | 72 | 56.67 | |
7 | 56.67 | ||
8 | 56.67 |
구간 평균법 한계
구간 평균법에서 구간 N 결정
아래 수식은 단순지수 평활법의 수식이다.
위 수식대로, t시점에는 가중치 α(0<α<1)를 둔다. α의 값이 0과 1 사이이므로 과거시점으로 갈수록 지수적으로 감소하게 된다.
단순지수 평활법을 요약하면 다음과 같다.
우선 L0을 구해야 한다. D는 현재까지 수집한 데이터이고, 데이터 개수는 n개이다. 이 데이터를 산술평균 해준 것이 L0
이다. 그러고 나서 Lt+1을 재귀적으로 계산해주면 된다. 그런데 마지막 부분을 보면 예측값은 시점이 어떻든간에 Lt로 고정되어있음을 알 수 있다.
아래 표로 보면, 6개의 데이터가 주어져있고 이를 산술평균 한 것이 1행의 L값인 45.83이다. α를 0.1로 설정하여 Lt
값을 구해나가면 아래와 같다. 시점 7부터는 예측을 해야 한다.
t | 관측값 | Level | 예측값 |
0 | 45.83 | ||
1 | 20 | 43.25 | |
2 | 60 | 44.93 | |
3 | 25 | 42.93 | |
4 | 70 | 45.64 | |
5 | 28 | 43.88 | |
6 | 72 | 46.69 | |
7 | 46.69 | ||
8 | 46.69 |
구간평균법과 마찬가지로 단순지수 평활법도 모든 예측값은 가장 마지막 값으로 동일하게 채워진다는 한계가 있다.
가중치 α를 결정
- 큰 α 사용 -> 최근 데이터에 보다 큰 가중치 적용(smooth한 데이터에 사용)
- 작은 α 사용 -> 과거 데이터에 보다 큰 가중치 적용(noise한 데이터에 사용)
- 주로 α=0.2, α=0.3을 사용
단순지수평활법과 달리 단순회귀분석으로 L_0(y절편)과 β_0(기울기)을 결정한다. 이 때 β는 트렌드를 반영하는 수치이다.
구간평균법과 마찬가지로 단순지수 평활법도 모든 예측값은 가장 마지막 값으로 동일하게 채워진다는 한계가 있다.
가중치 α를 결정
수식을 보면 단순지수 평활법과 굉장히 유사하나, Bt라는 growth rate가 새롭게 추가되었다. Bt+1을 업데이트하는 수식은 아래와 같다. 이 때도 β라는 가중치를 설정해주어야 한다.
앞선 평활법들과의 본질적인 차이로는, 예측값이 시점에 따라 상이하다는 것이다.
표로 나타내면 다음과 같다.
7시점의 예측값은 Lt+Bt이므로 60.75+5.97=66.72이고, 8시점의 예측값은 Lt+2*Bt이므로 60.75+2*5.97=72.69이다.
t | 관측값 | Level | Trend | 예측값 |
0 | 24.93 | 5.97 | ||
1 | 20 | 29.81 | 5.86 | |
2 | 60 | 38.10 | 6.10 | |
3 | 25 | 42.29 | 5.91 | |
4 | 70 | 50.38 | 6.13 | |
5 | 28 | 53.66 | 5.85 | |
6 | 72 | 60.75 | 5.97 | |
7 | 66.72 | |||
8 | 72.69 |
이처럼 앞선 방식들과 다르게 시점에 따라 다른 예측값을 내놓게 된다.
l_T는 시점 T에서의 Level
b_T는 시점 T에서의 growth rate(Trend)
sn_T는 Additive seasonal factor
l_T는 시점 T에서의 Level
b_T는 시점 T에서의 growth rate(Trend)
sn_T는 Multiplicative seasonal factor
시계열 분석의 여러 전통 모델은 정상 시계열을 가정하고 있다. 과거 관찰값을 바탕으로 미래를 예측하기 위해선 관찰값들이 안정적으로 유지되고 있는지, 계속 변동하는 상태인지를 확인해야 하는데 이 안정성을 판단하는 지표가 정상성이다. 정상 시계열은 어느 시점에서 관찰하든 유사한 형태를 보이고, 규칙이 없기에 예측이 어렵다.
정상성을 확인하는 방법
ACF(Autocorrelation Function)
관측값의 시점에 대한 함수이다. 즉, 관측값 자기 자신의 시점을 shift했다는 의미이다. 밑에 그림을 보면 위에 있는 것이 sin 함수 그래프이고, 그 밑의 것이 sin 함수에 대한 ACF 그래프이다. ACF의 x축을 보면 Lag라고 되어있는데, 이것은 관측값 자기 자신과의 시차를 의미한다. 즉 x값이 1이면 시차가 1인 경우, 2이면 시차가 2인 경우를 의미한다.
시차가 0이면 상관관계는 1이고(시차가 0이라는 건 자기 자신과의 관계를 의미하니 1이 나온 것은 당연한 결과이다.) 시차가 1이면 상관관계가 0.5, 시차가 2이면 -0.5인 것을 알 수 있다.
ACF 그래프를 그려봤을 때 특정한 패턴이 없이 랜덤한 형태를 띠면서, 임계값보다 큰 상관관계를 보이면 정상성이 없다고 볼 수 있다. 반대로, 상관계수가 임계값보다 낮은 경우에 정상성이 있다고 볼 수 있다. 대부분의 정상 시계열은 일부 시점을 제외하면 상관계수가 임계값의 범위 내에 들어와있다. 만약 모든 시점에서 상관계수가 임계값 범위 내에 있다면 이것은 백색잡음이라고 부른다. 이 때 임계값은 ±(1.96T(시계열 길이))^(1/2)로 구한다.
이 역시 ACF 그래프를 그려보면 판별할 수 있다.
위 두개의 그래프는 눈으로 보더라도 평균이 일정치 않고 분산 역시 점점 커진다. 그리고 ACF 그래프를 그려보면 일정한 패턴을 보이면서 점점 상관관계가 줄어들고 있고, 후반부에 가서는 임계값보다 작은 상관계수를 보이므로 정상성이 갖춰진다고 볼 수 있다.
자기회귀(AR) 모델은 과거가 미래를 예측한다는 직관적인 사실에 의존한다.
아래는 가장 간단한 AR(1), 모델의 수식이다. 즉 하나의 변인만을 지녔으므로 선형회귀 모델과 동일한 형식이다. 가장 직전의 시점에만 의존한다는 의미이다. 직전 시점에 의존한다는 의미는, 현재 값을 알아내기 위해 참고할 수 있는 정보가 직전 시점 1개뿐이라는 얘기다 이 때 오차항 e는 일정한 분산 및 평균 0을 가진다고 가정해야 한다.
일반적인 회귀식과 다르게 x가 들어가는 것이 아닌 y 자기 자신이 x 대신 들어가고 있음을 알 수 있다. 그래서 자기회귀라는 이름이 붙은 것이다.
공식을 일반화 해보면 아래와 같다. p개의 이전 시점에 의존하는 AR(p) 모델이다. 즉 이전 시점 p개에 대한 정보를 참고할 수 있다.
t 시점의 데이터를 q개의 이전시점의 오차들로 표현하는 방식이다. AR 모델이 과거의 값을 활용하여 미래를 예측하는 것과 대조적으로, MA 모델은 과거의 오차를 활용하여 미래를 예측한다.
이름 그대로 AR과 MA를 혼합한 모델이다.
앞서 소개한 AR, MA, ARMA 세 가지 모델은 데이터가 정상성(Stationary)을 갖추고 있어야만 적용할 수 있다. 하지만 대부분의 일상 속 데이터는 비정상성을 띠고 있다. 그래서 이 세 가지 모델로는 비정상 프로세스를 처리할 수 없다. 그래서 등장한 것이 차분(Differnecing) 과정을 추가한 ARIMA 모델이다. ARIMA를 살펴보기 전에 차분에 대해 알아보자.
차분은 현재시점 관측값에서 과거 시점 관측값을 빼주는 행위이다. 이로써 변화를 제거하여 시계열의 평균 변화를 일정하게 만드는 데 도움을 준다. 결과적으로 추세나 계절성이 제거되거나, 감소하게 된다.
다시 말하자면, 차분은 현재 시점의 데이터에서 d 시점 이전의 데이터를 뺀 것이다. 예를 들면 아래 표와 같다.
t | x | 1st differencing | 2nd differencing |
1 | 2 | ||
2 | 7 | 5 | |
3 | 10 | 3 | 8 |
4 | 5 | -5 | -2 |
5 | 8 | 3 | -2 |
1st differencing은 1시점 이전의 값을 뺀 것이고, 2nd differencing은 2시점 이전의 값을 뺀 것이다.
그래프가 일정하게 증가하거나 일정하게 감소하면 1차 차분이 효과적이고, 좀 더 복잡한 trend를 가지면 2차 차분까지 할 필요가 있다. 대부분의 데이터는 2차 차분까지가 충분하다.
ARIMA의 I는 Integrated의 약자로, Differencing을 나타낸다. 그래서 ARIMA의 파라미터는 p,d,q가 있다.
-P: AR모델의 차수
-d: Differencing을 실행한 횟수
-q: MA모델의 차수
[시계열 스터디 3주차(엄기영)] (0) | 2023.03.22 |
---|---|
시계열 스터디 3주차(김태영) : ARIMA / SARIMA (0) | 2023.03.20 |
시계열 스터디 2주차 (신윤) (0) | 2023.03.16 |
[시계열 스터디 2주차(엄기영)] (0) | 2023.03.16 |
시계열 스터디 2주차(조성윤) (0) | 2023.03.16 |
댓글 영역