본문 바로가기
시계열 자료분석/시계열 회귀모형

[FPP3] 7.4 시계열 회귀모형의 유용한 예측변수

by be-favorite 2021. 8. 25.

 

 

❗️블로그 옮김:  https://www.taemobang.com

 

방태모

안녕하세요, 제 블로그에 오신 것을 환영합니다. 통계학을 전공으로 학부, 석사를 졸업했습니다. 현재는 가천대 길병원 G-ABC에서 Data Science를 하고있습니다. 통계학, 시계열, 통계적학습과 기계

www.taemobang.com

 

시계열 회귀모형에서 유용하게 쓰이는 예측변수(predictors)들을 소개하려고 합니다:

1 Trend

시계열 자료에 추세(trend)는 흔히 존재합니다. 선형 추세의 경우는 다음과 같이 $x_{1, t} = t$를 예측변수로 하여 손 쉽게 모형에 반영할 수 있습니다:

 

\begin{equation} y_t = \beta_0 + \beta_1 t + \epsilon_t, \end{equation}

 

여기서 $t = 1, 2, \cdots, T$입니다. 비선형(non-linear) 추세의 경우는 추후에 별도의 글로 포스팅하겠습니다.😊

 

2 Dummy variables

다음으로는 더미변수입니다. 시계열 $x$가 시계열 $y$와 선형적 관계가 있다는 가정을 바탕으로, 시계열 $y$를 모델링하는 시계열 회귀에서 더미변수를 통해 설명할 수 있는 부분은 다음과 같이 몇 가지가 있습니다:

 

(1) Public holidays

첫 번째는 바로 일별 주기를 갖는 시계열 외에는 반영하기 어려운 공휴일(public holidays) 효과입니다. 시계열 자료의 값이 특정 공휴일에 영향을 받는 경우는 꽤나 빈번하게 존재합니다. 이때 우리는 반영하고자 하는 공휴일의 날짜에 1, 그 외에 0 값을 줌으로써 휴일 효과를 모형화 할 수 있습니다. 반영하고자 하는 공휴일이 여러 개이고 공휴일 각각에 대한 효과를 다르게 주고 싶다면, 공휴일 개수만큼 더미변수가 필요할 겁니다. 그리고, 휴일 효과의 반영에서는 한 가지 고민이 필요한 부분이 있습니다. 우리나라의 경우 음력을 따르는 공휴일들이 있으며, 이들은 매년 날짜가 다르고 특히 며칠 간 지속되는 성격을 갖고 있습니다(i.e. 추석, 설).[각주:1] 이러한 경우, 더미변수는 똑같은 로직으로 해당 공휴일의 특정 기간에 1, 그외 날짜는 0으로 코딩하면 됩니다. 다만, 매해 날짜를 체크하여 다른 날짜에 반영해야 하므로 조금 번거로울 수 있습니다. 정교한 모델링을 위해서 이정도는 감수해야겠죠...😅 본 글과는 외람된 말이지만, 전통적인 시계열 회귀모형과는 조금 달리, 시계열을 추세, 계절성 등의 성분으로 분해한 뒤에 비선형의 함수를 통해 회귀적으로 추정하여 예측 모델링하는 prophet 모형서는 비교적 편하고 좀 더 정교하게끔 휴일효과를 반영할 수 있게 해줍니다. 시계열 예측모형에 관심이 있는 분이라면 prophet에 대해 한 번쯤 공부해보시길 추천합니다.

 

(2) Outlier

더미변수는 자료의 이상점(outlier)을 설명할 때도 사용될 수 있습니다. 자료의 이상점을 삭제하는 것이 아닌, 자료 자체는 그대로 보존하며 이상점의 효과를 더미변수로 반영하는 것입니다. 이러한 경우 더미변수는 이상점의 관측 시점에서만 1값을 가지며, 나머지 관측 시점에는 0값을 가집니다. 이렇게 이상점을 삭제하는 것이 아닌 효과 자체를 반영하는 것은 어떤 특별한 행사 일정이 존재했던 시계열 자료에 매우 유용합니다. 예를 들어, 브라질의 관광객 수를 예측한다고 했을 때. 2016년 개최되었던 리우 올림픽의 효과를 모형에 반영할 필요가 있을겁니다. 올림픽 기간의 자료들이 이상점으로 보인다는 이유만으로, 무작적 해당 기간의 관측 자료들을 삭제한 뒤에 평균 대치를 수행하는 행위는 당연히 지양해야겠죠?

 

3 Seasonal dummy variables

우리가 일별 자료에 대해 예측이 필요한 상황이고, 요일(the day of week) 효과를 모형의 예측변수로 반영하고 싶은 상황이라 해보겠습니다. 아마 다음과 같은 더미변수를 고려할 수 있을겁니다:

 

그림1. 요일효과 더미변수 출처: Forecasting: principles and practice, 3rd edition

 

7개의 요일 효과를 반영하는 데에는 6개의 더미변수만 필요로 된다는 점을 주의해서 보시기 바랍니다. 이는 7번째 수준(위와 같은 코딩 예의 경우, 일요일)은 모형의 절편(intercept)에서 반영되기 때문이며, 해당 수준의 더미변수들은 모두 0으로 설정되어 있음을 확인하실 수 있습니다.

 

많은 분들이 7번째 수준을 7번째 더미변수를 통해 반영하려고 하는 경우가 있으나, 이는 회귀를 실패하게 만드는 원인이 됩니다. 이를 용어로는 "dummy variable trap"이라고 표현합니다. 절편과 더불어 7번째 더미변수까지 모형에 포함하게 되면 추정해야할 모수(parameters)들이 너무 많아집니다. 그래서, 일반적인 룰은 범주형 변수(categorical variables, 본 예의 경우 요일 효과)의 수준보다 하나 적은 수의 더미변수를 만드는 것입니다. 즉, 분기별 자료의 경우 3개의 더미변수, 월별 자료의 경우 11개의 더미변수, 일별 자료의 경우 6개의 더미변수과 같이 말이죠.

 

이렇게 추정된 각 더미변수들의 회귀계수의 의미는 제거된 수준(일요일)에 비한 각 수준들의 효과 크기를 나타낸다고 할 수 있습니다. 예를 들어, 일별 장난감 판매 개수를 모델링하는 상황에 $d_{1,t}$의 추정된 회귀계수의 값이 $-10$이라고 한다면, 일요일 대비 월요일의 경우 평균적으로 10개의 장난감이 덜 팔린다고 할 수 있겠습니다.

 

4 Intervention variables

특정 사건 또는 활동의 개입이 예측에 영향을 미치는 경우가 있으며, 이때 개입(interventions)을 변수로 모형에 반영해야 하는 경우가 생깁니다. 예를 들어, 경쟁사의 활동, 광고 지출, 특정 산업 활동 등과 같은 것들이라고 할 수 있습니다.

 

개입의 효과가 하나의 기간 동안만 지속되는 경우 "spike" variable을 개입변수로써 사용하며, 이는 하나의 개입 기간동안에만 1, 나머지 기간에는 0을 갖는 더미변수로 반영할 수 있습니다. 즉, spike variable은 이상점을 모델링하는 경우에 사용되는 더미변수와 동일하다고 할 수 있습니다. 그 외 다른 개입들은 즉시 또는 영구적으로 영향을 미칩니다. 만약 개입이 시계열의 수준(level)을 변화시키는 경우(즉, 개입 이후 갑자기 그리고 영구적으로 시계열의 값이 변화하는 것) "step" variable을 개입변수로 사용하며, step variable은 개입 시점 전에는 0, 개입 시점 후에는 1값을 취합니다.

 

영구적으로 영향을 미치는 개입효과의 또다른 형태는 기울기를 변화시키는 것이라고 할 수 있습니다. 이때 개입은 piecewise linear trend[각주:2]를 통해 반영할 수 있습니다. 즉, 추세가 개입 시전 전 후로 변화하며, 그에 따라 시계열은 비선형의 추세를 갖게 될 것 입니다. 이 부분의 추후 비선형 추세를 주제로한 글을 포스팅할 때 좀 더 자세히 알아보도록 하겠습니다.😊

 

5 Trading day

매출 자료의 한 달 거래일(trading days)의 수는 상당히 다를 수 있으며, 이는 매출에 지대한 영향을 미칩니다. Business time series를 다룰 때 종종 볼 수 있는 경우이며, 이를 위해 각 월의 거래 일 수를 모형의 예측변수로 포함시킬 수 있습니다. 여기서 더 나아가 요일의 효과까지 반영하고 싶다면, 다음과 같은 예측 변수를 고려할 수 있습니다:

 

\begin{aligned} x_1 = {\rm{number \ of \ Mondays \ in \ month;}}\end{aligned}\begin{equation} \cdots \end{equation}\begin{aligned} x_7 = {\rm{number \ of \ Sundays \ in \ month.}}\end{aligned}

 

6 Distributed lags

Business time series에서 광고 지출을 예측변수로 포함시키는 것이 종종 효과적일 때가 있습니다. 그러나, 광고 효과는 직후 나타나지 않을 수도 있으며 지속성을 가집니다. 이를 모형에 반영하기 위해서는 광고 지출의 지연 효과(lag effect)를 반영해줄 필요가 있습니다. 즉, 다음과 같은 예측변수를 고려할 수 있습니다:

 

\begin{aligned} x_1 = {\rm{advertising \ for \ previous \ month;}}\end{aligned}\begin{equation} \cdots \end{equation}\begin{aligned} x_m = {\rm{advertising \ for \ }} m {\rm{\ months \ previously}}\end{aligned}

 

이렇게 지연효과를 시계열 회귀모형에 반영한 경우를 특히 "distributed lag models"이라고 부릅니다.

 

7 Fourier series

푸리에 급수(furier series)[각주:3]가 뜬금없이 시계열 회귀모형에 등장하여 당황하신 분들도 있겠지만, 시계열 회귀모형에서 푸리에 급수는 자료의 계절 패턴을 반영하는 데에 사용됩니다. 앞서 살펴봤듯이 더미변수를 통해 계절성을 반영하는 할 수도 있지만, 푸리에 급수의 경우 긴 기간의 계절성을 갖는 자료의 계절 패턴을 아주 잘 표현한다고 할 수 있습니다.

 

$m$을 계절 주기라고 한다면, 푸리에 항들은 다음과 같이 주어질 수 있습니다. 편의상 처음 몇몇 푸리에 항에 대해서만 써보겠습니다:

 

\begin{aligned} x_{1,t} = sin(\frac{2\pi t}{m}), x_{2,t} = cos(\frac{2\pi t}{m})\end{aligned}\begin{equation} x_{3,t} = sin(\frac{4\pi t}{m}), x_{4,t} = cos(\frac{4\pi t}{m}) \end{equation}\begin{aligned} x_{5,t} = sin(\frac{6\pi t}{m}), x_{6,t} = cos(\frac{6\pi t}{m}), \end{aligned}

 

등등. 월별 계절성을 갖는 자료의 경우, 이러한 예측변수 중 처음 11개를 사용하는 경우, 11개의 더미변수를 사용하는 것과 정확하게 동일한 예측값을 얻을 수 있습니다. 푸리에 급수를 사용하여 계절 패턴을 표현하는 경우 갖는 또 하나의 장점은, $m$이 클 때 더미변수보다 훨씬 더 적은 수의 예측변수만으로 계절성을 표현할 수 있다는 점입니다. $m \approx 52$인 주별 자료와 $m \approx 365$인 일별 자료의 경우가 그렇다고 할 수 있습니다.[각주:4]다만, 짧은 계절 주기를 갖는(e.g. 분기별 자료) 경우 계절 패턴의 반영에 푸리에 급수를 사용하는 것이 더미변수를 사용하는 경우보다 갖는 큰 이점은 거의 없다고 할 수 있습니다. 모형에 푸리에 급수를 포함시켜 계절 패턴을 반영하는 시계열 회귀 모형은 연속적인 푸리에 항들이 harmonic을 이룬다고 하여 종종 "harmonic regression model"이라 칭하기도 합니다.

 

 

📝참고 문헌
[1] Hyndman, R.J. & Athanasopoulos, G. (2021) Forecasting: principles and practice, 3rd edition, OTexts: Melbourne, Australia. OTexts.com/fpp3. Accessed on 25-08-2021.


  1. 다른 나라 이러한 성격을 갖는 공휴일로는 부활절을 예로 들 수 있겠습니다. [본문으로]
  2. 구간을 나누어 각 구간에 대해 선형 추세를 반영하는 것 [본문으로]
  3. 푸리에 급수에 따르면, 모든 주기함수는 정현파 함수(sin, cos)의 무한합으로 표현될 수 있음 [본문으로]
  4. 주별 자료의 경우 계절 패턴의 반영에 필요한 더미변수의 수는 51개에 해당합니다. 반면에, 푸리에 급수는 훨씬 더 작은 수의 항을 도입해서도 계절 패턴을 반영할 수 있습니다 [본문으로]

'시계열 자료분석 > 시계열 회귀모형' 카테고리의 다른 글

Distributed lag non-linear models  (0) 2021.04.02
Distributed lag models  (0) 2021.03.05
ARIMA 오차 회귀모형  (2) 2021.03.05
허구적 회귀  (0) 2021.03.05
Prophet 모형  (0) 2020.07.06

댓글