Train과 inference의 속도 그리고 학습에 필요한 데이터의 양은 모델마다 다양하다. 시계열의 패턴과 상황에 따라서 다르기 때문에 예측 기법의 로직을 이해해야 상황에 따라 활용 가능하다. 또한, 데이터에 따라서 아주 간단하지만 효과적인 예측 기법도 존재한다.
평균 기법
평균 기법은 예측한 미래의 값은 과거 데이터의 평균과 같다. 과거 데이터를 y1....yT라고 쓴다면, 예측값은 다음과 같이 쓸 수 있다.
단순 기법(naive method)
단순 기법은 모든 예측값을 단순하게 마지막 값으로 둔다.
주식 예측의 경우 마지막 종가를 다음날의 예측값으로 두는 것이다 (금융 도메인에서는 매우 정확하며, 많은 딥러닝 모델이 단순 기법을 이기지 못한다)
계절성 단순 기법(Seasonal naive method)
단순 기법에 계절성을 고려하는 것이며, 각 예측값을 연도의 같은 계절의 마지막 관측값으로 둔다.
바로 전날의 값을 다음날의 예측으로 활용하는 것이 아니라, 마지막으로 관측한 같은 계절의 최신값을 관측값으로 두는 방식이다. 식의 m은 계절성의 주기(seasonal period), k = [(h-1)/m]+1
표류 기법(drift method)
표류 기법은 단순 기법을 수정하여 예측값이 시간에 따라 증가하거나 감소하게 할 수 있다. 여기서 표류(drift)라고 하는 것은 시간에 따른 변화량을 과거 데이터에 나타나는 평균 변화량으로 정한다. Yt 뒤에 붙은 term이 평균 변화량 sum (y_t-y_t-1)/T을 보여준다. 이렇게 된다면, 단순 전날의 값을 예측값으로 쓰면서, 평균 변화량 만큼 예측값을 증가하거나 감소시킬 수 있다.
변환과 조정
(1) 달력 조정
간단하게, 월 길이가 달라서 생기는 변동이 있을 수 있다. 어떤 월에는 28일까지 있을 수도 있으며, 31일까지도 있는 월이 존재한다. 따라서, 이를 처리하기 위해서 간단하게 각 월의 전체 판매량을 활용하는 것이 아닌, 거래일별 판매량을 사용할 수 있다. 또는 월별 총 생산량 대신에 일별 평균 생산량을 활용하면 월 길이가 달라서 생기는 변동을 효과적으로 제거할 수 있다.
(2) 인구 조정
인구에 따라 달라지는 수치를 1명당 데이터 또는 천명, 백만명당의 데이터로 변환하는 것이다. 예를 들어, 어떤 특정 지역에서 시간에 따른 병원 침상 개수를 다루고 있을 때, 인구수를 고려하지 않으면 안된다. 당연히, 인구수가 많으면 병원의 침상 개수가 많을 것이다. 따라서, 결과를 쉽게 해석하기 위해서 인구 변화 효과를 제거하여야 한다. 이때, 인구 증가에 따른 전체 침상수는 증가할 수 있지만, 천명당 침상수는 감소할 수 있다.
(3) 인플레이션 조정
돈의 가치에 영향을 받는 데이터는 모델링에 앞서 적절하게 조절해야 한다. 예를 들어, 인플레이션 때문에 집의 평균 가격이 증가했을 것이다. 20년 전의 돈의 가치와 현재의 돈의 가치는 같지 않기 때문에, 모든 값을 특정 연도의 돈 가치로 나타내도록 금융의 시계열을 조절할 수 있다. 이러한 처리를 하기 위해서 정부기간에서 만든 가격 지수를 활용할 수 있다.
(4) 수학적 변환
데이터에서 시계열의 수준에서 비례하여 증가하거나 감소하는 변동을 보이면, 변환(transformation)이 활용될 수 있다. 예를 들어, log transformation은 매우 유용하다. 또, 제곱근과 세제곱근을 활용하는 거듭곱 변환(Power transformation)도 존재한다. 이 두 가지 변환을 모두 포함하는 것이 박스-칵스(Box-Cox)변환의 일종이다. 이 변환은 매개변수 lambda에 따라 달라지고 다음과 같이 정의할 수 있다.
박스-칵스(Box-Cox) 변환에서 로그는 lambda가 0이면, 자연로그를 사용하지만, lambda가 0이 아니면, 거듭곱 변환을 사용한다. 이러한 변환은 예측 구간(Predictive interval)에는 큰 영향을 준다.
잔차(Residuals)
시계열 모델에서 잔차(Residuals)는 모델을 맞춘 후에 남는 것을 의미한다. 대부분의 시계열 모델에서 잔차는 관측값과 대응되는 적합 값(fitted value, 예측값)과 관측값의 차이이다. 잔차는 어떤 모델이 데이터의 정보와 패턴을 적절하게 파악했는지를 확인하는데 매우 유용하다. 좋은 예측 모델의 특징은 다음 특징의 잔차를 가진다.
1. 잔차(Residual)에는 상관관계가 없다. 잔차 사이의 상관관계가 있다면, 잔차에 예측값을 계산할 때 사용해야 하는 정보가 남아 있는 것이다.
2. 잔차의 평균은 0이다. 잔차의 평균이 0이 아니라면, 예측값이 편향(bias)된다.
따라서, 이러한 특징을 만족하지 않다면 예측 기법을 고도화할 수 있다. 예를 들어, 잔차의 평균이 m이면, 단순히 모든 예측치에 m을 더하면 편향의 문제가 해결된다. 상관관계가 존재하는 문제를 해결하는 것은 뒤편에..
자기상관에 대한 포트맨토 검정(portmanteau)
잔차에 대한 ACF 그래프를 보는 것에 더하여, 자기상관(autocorrelation)이 백색잡음 과정에서 얻은 것과 의미있게 다른 지 여부를 검정할 수 있다.
(1) 박스-피어스 검정은 고려하는 시차(lagged value)와 관측값 개수 T가 있을 때, 각 r_k가 0에 가까우면 Q는 작을 것이다.
(2) 융-박스(Ljung-Box) 검정은 아래와 같이 표현되며, 큰 Q* 값들은 자기상관값이 백색잡음 시계열에서 온 것이 아니라는 것을 의미한다.
여기서 위 두 포트맨토 검정 값인 Q와 Q* 모두 (h-K) 자유도를 갖는 카이제곱 분포를 따른다. 여기에서 P-value 값이 상대적으로 크다면 잔차(residual)이 백색잡음(white noise) 시계열과 다르지 않다고 결론 내릴 수 있다.
박스-피어스 검정의 귀무가설은 자기상관이 없는 white noise라는 것이기 때문에, 상관관계인 r을 표준편차가 1이고 평균이 0인 표준정규분포에서 뽑은 값이라고 볼 수 있다.
'블로그 > Statistics & Math' 카테고리의 다른 글
[Time Series] 시계열 그래프와 추세, 자기 상관, 백색 잡음 (0) | 2024.01.22 |
---|---|
[Time Series] Preface to this read-along (1) | 2024.01.22 |
[ANOVA] One-way ANOVA, ANOVA table (0) | 2022.07.22 |
[비모수 통계] KS test (Kolmogorov–Smirnov test) 방법 (0) | 2022.06.30 |
[기초 통계] 08. 모비율 검정(One sample case) (0) | 2022.06.29 |