시계열 예측 방법 중 exponential smoothing과 함께 가장 널리 사용하는 방식
데이터에 나타나는 자기상관(autocorrelation) 을 표현하기 위해 만들어진 모델이다.
exponential smoothing : 추세와 계절성을 표현
8.1 정상성과 차분
8.1.1 정상성(Stationarity)
해당 시계열 데이터가 시점과 무관한 특징을 가진다.
추세나 계절성이 존재 → 정상성 X
백색잡음인 시계열 데이터 → 정상성 O
주기 O (추세 X, 계절성 X) → 정상성 O
주기는 고정된 길이를 가지고 있지 않고, 주기의 고점이나 저점이 어딘지 확실히 알 수 없다.
일반적으로 정상성 O → 예측할 수 있는 패턴 X
ㄟ(▔,▔)ㄏ
주기는 고정된 길이를 가지고 있지 않고,
주기의 고점이나 저점이 어딘지 확실히 알 수 없다.
주기는 해당 주기의 길이를 파악할 수 없기 때문에, 시점과 무관하다는 것을 의미하는지?
예시 : 정상성 유무 판단
계절성이 있는 (d), (h), (i)는 정상성 X
추세가 있고 수준이 변하는 (a), (c), (e), (f), (i)
ㄟ(▔,▔)ㄏ
(c)와 (f)는 추세가 있다고 할 수 있나?
수준이 변하는 그래프인가?
분산이 증가하는 (i)
(b)는 정상성을 나타낸다.
(g)는 주기가 존재하여 정상성이 없는 시계열 데이터로 볼 수 있지만, 주기의 불규칙성이 존재하여 주기의 시작이나 끝을 예측할 수 없기 때문에 이 시계열은 정상성을 나타낸다.
8.1.2 차분(differencing)
관측값들의 차이를 계산하는 것
정상성이 없는 시계열 데이터를 정상성을 나타내게 할 수 있는 방법
위 [예시] 그림에서 (a)는 시계열 데이터, (b)는 시계열 데이터의 일일변동 데이터인데, (a)에서는 정상성이 없었으나, (b)에서는 추세나 수준 변화가 없어지면서 정상성을 나타냄을 알 수 있다.
ACF 그래프
정상성 X → ACF가 느리게 감소, r_1은 종종 큰 양수를 갖는다.
차분의 ACF를 보면 95% 한계 바깥에 자기상관 값이 없기 때문에 단순히 백색잡음 시계열처럼 보인다. → 일일 변동이 기본적으로 이전 거래일의 데이터와 관련이 없는 값임을 나타낸다. → 정상성 O
8.1.3 확률보행 모델(random walk model)
차분 y_t' (관측값의 차이)
yt′=yt−yt−1
첫 번째 관측값에 대한 차분 y_1'을 계산할 수 없기 때문에
T-1 개의 차분만을 가진다.
백색잡음 데이터의 차분을 구할 때,
yt−yt−1=εt
로 표현할 수 있고, 여기서 ε_t는 백색잡음을 의미한다.
이를 정리하면 "확률보행 모델" 을 얻을 수 있다.
yt=yt−1+εt
8.1.4 2차 차분
차분을 구했을 때도 정상성이 없을 수 있는데, 이 때 차분의 차분을 구하면서 정상성을 나타내는 시계열 데이터를 얻을 수 있다.
yt′′=yt′−yt−1′′
=(yt−yt−1)−(yt−1−yt−2)
=yt−2yt−1+yt−2
T-2 개의 차분만을 가진다.
"변화에서 나타나는 변화"를 모델링하게 되는 것인데, 실제로는 2차 차분 이사응로 구하는 경우는 거의 없다.
8.1.5 계절성 차분
이전 계절의 관측치와의 차이
m이 계절의 개수라 할 때,
yt′=yt−yy−m
시차 m차분 이라고도 한다.
계절성 차분 데이터가 백색잡음처럼 보인다면, 아래와 같은 식으로 표현할 수 있다.
yt=yt−m+εt
이 모델을 통해 구한 예측값은 같은 계절의 마지막 관측값과 같다.
계절성 차분의 2차 차분
yt′′=yt′−yt−m′′
=(yt−yt−m)−(yt−m−yt−m−1)
=yt−yt−1−yt−m+yt−m−1
계절성 차분과 1차 차분을 둘 다 적용할 때,
어떤 것을 먼저 적용해도 큰 차이 X
단, 계절성 패턴이 강하다? 계절성 차분을 먼저 하면 1차 차분을 안 해도 되는 경우가 있다.
1차 차분? 2차 차분? 계절성 차분?
어떤 차분을 구할지는 주관적인 요소가 필요하다.
모델링 과정에서 항상 몇 가지 선택이 존재하고 분석하는 사람마다 다른 선택을 할 수 있다.
이 외의 다른 시차값은 사용하지 않는 것이 좋다. (직관적 해석 불가)
8.1.6 단위근검정
차분을 구하는 것이 필요할지에 대한 객관적인 방법
검정 방법은 다양하고, 서로 다른 가정에 기초하기 때문에 상반되는 답을 낼 수 있다.
퀴아트코프스키-필립스-슈미트-신 검정 (KPSS)
Kwiatkowski-Phillips-Schmidt-Shin 검정
귀무가설 : 이 검정은 데이터에 정상성이 나타난다.
귀무가설이 거짓이라는 증거를 찾음으로써 (== p value < 0.05) 데이터가 정상성을 보이지 않음을 증명한다.
8.2 후방이동 기호(Backshift)
시계열의 시차를 다룰 때 유용한 연산자 B
시차(lag)를 나타내어 L 이라고도 표현한다.
Byt=yt−1
데이터를 한 시점 뒤로 옮기는 역할을 한다.
두 시점 뒤로 옮길 때는 아래와 같이 표현한다.
B(Byt)=B2yt=yt−2
월별 데이터에서 "지난해 같은 달"을 표현할 때는 아래와 같이 표현한다.
B12yt=yt−12
차분을 구하는 과정에서 후방이동 기호의 사용
1차 차분
yt′=yt−yt−1=yt−Byt=(1−B)yt
2차 차분
yt′′=yt−2yt−1+yt−2=(1−2B+B2)yt=(1−B)2yt
d차 차분 (1−B)dyt
차분을 연산자로 결합했을 때 대수의 법칙을 적용할 수 있다.
예시
(1−B)(1−Bm)yt=(1−B−Bm+Bm+1)yt
=yt−yt−1−yt−m+yt−m−1
8.3 자기회귀 모델(AutoRegressive Model)
자기 자신에 대한 변수의 회귀 모델
다중 회귀 모델에서는
목표 예상 변수 x의 선형 조합을 이용하여 관심 있는 변수 y를 예측한다.
자기회귀 모델에서는
과거 관측치의 선형 조합을 이용하여 관심 있는 변수를 예측한다.
y_t의 시차 값을 예측변수로 다룬다!
차수 p의 autoregressive model : AR(p) (εt : 오차항)
yt=c+ϕ1yt−1+ϕ2yt−2+...+ϕpyt−p+εt
autoregressive model은 다양한 종류의 시계열 패턴을 유연하게 다룰 수 있다.
예시
Figure 8.5는 차수 p가 1일 때와 2일 때 yt를 표현한 것이고, ϕ1,…,ϕp에 따라서도 시계열 패턴이 달라진다. εt에 따라 눈금이 달라진다.
AR(1) 모델
ϕ1=0일 때, yt==εt
ϕ1=1일 때, c=0이면, yt는 확률보행 모델
ϕ1=1일 때, c=0이면, yt는 표류가 있는 확률보행 모델
ϕ1<0 (음수)일 때, yt는 평균값을 중심으로 진동한다.
보통 자기회귀 모델은 정상성이 보이는 데이터에만 사용한다.
이 경우 매개변수 값에 대한 제한조건이 필요하다.
AR(1)의 경우 −1<ϕ1<1
AR(2)의 경우 −1<ϕ2<1,ϕ1+ϕ2<1,ϕ2−ϕ1<1
...
8.4 이동 평균 모델(Moving Average Model)
AutoRegressive Model에서 과거 값을 사용했다면,
이동 평균 모델에서는 과거의 예측 오차 ε을 사용한다.
q차 이동 평균 모델 MA(q)
yt=c+εt+ϕ1εt−1+ϕ2εt−2+...+ϕqεt−q
yt 각 값을 "과거 몇 개의 예측 오차 ε의 가중 이동 평균"으로 볼 수 있다.
이동 평균 vs 평활
이동 평균 모델은 미래 값을 예측할 때 사용한다.
평활은 과거 값의 추세-주기를 측정할 때 사용한다.
예시
Figure 8.6는 차수 p가 1일 때와 2일 때 yt를 표현한 것이고, ϕ1,…,ϕp에 따라서도 시계열 패턴이 달라진다. εt에 따라 눈금이 달라진다.
정상성을 나타내는 AR(p) 모델을 MA(∞)로 사용할 수 있다.
예시
yt=ϕ1yt−1+εt
=ϕ1(ϕ1yt−2+εt−1)+εt
=ϕ12yt−2+ϕ1εt−1+εt
=ϕ13yt−3+ϕ12yt−2+ϕ1εt−1+εt
...
−1<ϕ1<1 이므로 k가 커질수록 ϕ1k은 작아진다.
결론적으로 AR(p)모델에서 MA(∞)식을 얻을 수 있다.
yt=εt+ϕ1εt−1+ϕ12εt−2+ϕ13εt−3+...
MA 모델은 invertible하다.
즉, MA(q) 모델을 AR(∞)로도 표현할 수 있다.
단, 몇몇의 제한 조건이 필요하다.
(AutoRegressive model의 정상성 제한 조건과 비슷하다)
MA(1)의 경우 −1<ϕ1<1
MA(2)의 경우 −1<ϕ2<1,ϕ2+ϕ1>−1,ϕ1−ϕ2<1
...
예시 : 왜 ∣θ∣<1 인가?
MA(1) : yt=et+θ1et−1 를 AR(∞)로 표현하자.
가장 최근의 오차 = 현재와 과거 관측값의 선형 함수
et=j=0∑∞(−θ)jyt−j
ㄟ(▔,▔)ㄏ
"과거의 모든 관측값의 가중치 곱"은
과거의 예측값에서 오차를 뺀 값이다.
현재의 오차는
"현재 예측값"에서 "현재 관측값"의 가중치곱을 뺀 값이다.
근데 위 식을 보면 음수에도 ^j가 포함되어,
과거의 모든 관측값의 가중치 곱이 양/음수를 반복하게 되는데,
어떻게 식이 성립할 수 있는지 모르겠다.
∣θ∣>1이면, 더욱 과거의 관측값일수록 현재 오차에 미치는 영향이 커진다. 🫤
∣θ∣=1이면, 가중치가 상수이고, 모든 관측값이 현재 오차에 미치는 영향이 동일하다. 🫤
∣θ∣<1이면, 최근 관측값일수록 현재 오차에 미치는 영향이 커진다. 😊
MA(1)의 경우 −1<ϕ1<1 의 제한 조건을 가진다.
8.5 비-계절성 ARIMA 모델
AutoRegressive Integrated Moving Average : 이동 평균을 누적한 자기회귀
계절성 ARIMA 모델의 적절한 계절성 차수 (P,D,Q)m를 선정할 때, 계절성 시차를 고려해야한다.
예제 : 유럽 분기별 소매 거래
time plot을 보고, 정상성, 계절성 여부 파악
정상성 X, 계절성 O
계절성 차분을 먼저 구하여 정상성 O를 만든다.
1차 차분으로 정상성 X 라면, 한 번 더 차분을 진행한다.
ACF, PACF에 기초하여 적절한 ARIMA 모델을 찾는다.
ACF에서 시차 1의 유의미한 뾰족 막대 → 비계절성 MA(1)
ACF에서 시차 4의 유의미한 뾰족 막대 → 계절성 MA(1), 관측값 개수 m=4
=> 1차 차분과 계절성 차수을 나타내는 ARIMA(0,1,1)(0,1,1)4
ㄟ(▔,▔)ㄏ
위에서 정상성 확보를 위해 2차 차분까지 했다고 설명되어있는데
왜 여기서는 1차 차분인건지?
ARIMA 모델의 잔차를 확인한다.
ACF와 PACF 둘 다 시차 2에서의 유의미한 뾰족 막대
시차 3에서 덜 유의미하지만 뾰족한 막대 => 이렇게 유의미한 뾰족 막대가 등장한다면,
추가적인 비계절성 항을 추가할 것을 고려해야 한다.
비계절성 항을 조절하며 정보 기준 산출 → 최소값
정보 기준을 비교하는 것은 같은 차수로 차분을 구한 ARIMA 모델에 대해서만 의미가 있다.
ARIMA(0,1,3)(0,1,1)4의 AICc : 68.53
ARIMA(0,1,2)(0,1,1)4의 AICc : 74.36
...
AICc가 가장 작은 ARIMA(0,1,3)(0,1,1)4 선택
다시 선택한 ARIMA 모델로 잔차를 확인한다.
ACF 그래프를 보면 모든 잔차가 유의미한 범위 안에 들어오고, 뾰족한 막대가 없다. → 백색잡음
추가로 융-박스 검정을 통해 잔차에 자기상관관계가 없음을 확인할 수 있다.
예측을 진행할 계절성 ARIMA 모델 선택을 완료한 것이다.
확인 절차를 거친 ARIMA 모델을 통해 예측을 진행한다.
2차 차분을 통해 구했기 때문에 예측값이 데이터의 최근 추세를 따라간다.
ㄟ(▔,▔)ㄏ
왜 2차 차분 때문에 최근 추세를 따라가나?
c=0, d=2이면, 장기 예측값이 직선 형태로 나타나게 될 것입니다.
c≠0, d=2이면, 장기 예측값이 2차 곡선 추세로 나타나게 될 것입니다.
위 내용이 최근 추세를 따라간다는 것에 대한 반증이 되는지 궁금하다.