다시 이음

시계열 데이터 예측에 대하여(Forecasting: Principles and Practice)-(1) 본문

AI 일별 공부 정리

시계열 데이터 예측에 대하여(Forecasting: Principles and Practice)-(1)

Taeho(Damon) 2021. 12. 30. 11:42

안녕하세요.

 

오늘은 Sequential data(시간 순서에 따라 순차적으로 쌓이는 데이터)를 처리하기 위해 필요한 시계열 데이터 분석 방법에 대해서 정리를 해보려고 합니다.

 

해당 글은 Hyndman, R.J., & Athanasopoulos, G. (2018) Forecasting: principles and practice, 2nd edition, OTexts: Melbourne, Australia. 온라인 교재의 내용을 요약,정리한 글이며 제가 주로 사용하는 파이썬이 아닌 R로 설명되어 있어 이해함에 부족함이 있을 수 도 있다는 점을 알려드립니다.

 

시간이 되신다면 위의 링크를 통하여 실제 교재를 보시는 것을 추천드립니다.

 

 

Forecasting

 

1. 예측 될 수 있는 것이란?

 

예측을 하기 쉬운 것과 어려운 것이 있습니다. 예를 들어 내일 일출시간은 예측하기 쉽고 다음날의 로또 당첨 번호는 예측하기 어렵죠.

 

이러한 예측 가능성은 아래와 같은 요인에 의존합니다.

 

  1. 영향을 주는 요인을 얼마나 잘 이해할 수 있는지
  2. 사용할 수 있는 데이터가 얼마나 많은지
  3. 예측이 우리가 예측하려는 것에 영향을 줄 수 있는지 여부 - 이 부분에서는 본 교재에서는 환율을 예로 들고 있습니다. 예를 들어 환율이 내일 오를 것이라고 예측을 한 경우, 사람들이 예측한 결과에 따른 행동을 하게 되고 그 행동으로 인해 예측한 상황이 벌어지는 상황이 생기게 됩니다. 

 

예측에 있어서 핵심적인 과정

 

1) 정확한 예측이 가능한 때가 언제인가

2) 예측이 의미가 없을 때가 언제인가 ( 동전던지기보다 나을 것이 없다 )

 

위의 두가지를 아는 것입니다.

 

즉, 데이터 안에서 진짜 패턴과 관계를 잡아내야하고 그와 반대로 무시해야하는 무작위적인 요동을 제외 할 줄 알아야 합니다.

 

 

많은 사람들은 잘못된 가정(환경이 변하면 예측이 불가능할 것이다.)을 하곤 합니다.

그러나, 좋은 예측은 변하는 방식을 잡아내야 합니다. 존재하는 상황만이 아니라 변하는 방식을 잡아내는 것을 목적으로 합니다.

 

예측 기법으로는 단순한 기법(최근 관측값을 예측값으로 사용하는 것), 복잡한 기법(신경망(neural network)이나 계량경제학적(econometric)), 사용할 데이터가 없는 경우와 같은 경우도 있습니다. 

 

사용할 기법은 어떤 종류의 데이터를 사용할 수 있는지와 수량의 예측가능성에 따라 달라집니다.

 

 

2. 예측, 계획 그리고 목표

 

예측이란 주어진 이용가능한 모든 정보(과거 데이터 및 예측에 영향을 끼칠 수 있는 미래 사건에 대한 지식을 포함)를 바탕으로 가능한 한 정확하게 미래를 예측하는 것입니다.

 

목표는 예측 및 계획과 연관되어 있는 것이 좋지만, 이것이 항상 일어나는 것은 아닙니다. 목표를 어떻게 달성할지에 대한 계획과 목표가 실현 가능한지에 대한 예측 없이 목표를 세우는 경우가 너무나도 자주 있습니다.

 

계획예측과 목표에 대한 대응입니다. 계획은 여러분의 예측과 목표를 일치시키는데 필요한 적절한 행동을 결정하는 일을 포함합니다.

 

 

특정한 용도에 따라 단기,중기,장기 예측이 필요합니다.

 

1) 단기 예측은 인사, 생산, 수송 계획 등에 필요합니다. 계획 과정의 한 부분으로 수요 예측도 필요합니다.

 

2) 중기 예측은 원자재 구입, 신규 채용, 장비나 기계 구입 등 미래 자원 공급을 결정하는데 필요합니다.

 

3) 장기 예측은 전략적으로 계획을 세우는데 사용합니다. 시장 기회, 환경 요인, 내부 자원을 반드시 고려하여 결정합니다.

 

 예측 시스템에는 예측할 문제를 찾는 것, 적용할 예측 기법의 범위를 선택하는 것, 각 문제에 적합한 기법을 선택하는 것, 시간에 따라 예측 기법을 평가하고 다듬는 것에 관한 전문 역량을 개발하는 일이 필요합니다.

 

 

3. 예측을 하기위해서 선(先)결정해야하는 부분

 

1) 무엇을 예측할 것인가

2) 예측할 범위는 어느정도인가(전체 혹은 부분)

3) 어느 정도를 예측할 것인가(1개월뒤,1년뒤?)

4) 얼마나 자주 예측해아하는가

 

예측을 하기 전에 예측을 사용할 사용자의 요청을 확실히 파악하는 게 좋습니다.

 

 

4. 예측 데이터와 기법

 

어떤 데이터를 사용하는 지에 따라 적절한 예측 기법이 달라집니다.

 

이용할 수 있는 데이터가 없거나 예측에 상관없는 데이터만 있는 경우,

정성적인 예측 기법 - 과거 데이터를 사용하지 않고 좋은 예측값을 내도록 잘 개발된 구조화된 접근법

 

과거 수치 정보를 사용할 수 있거나 과거 패턴의 몇 가지 양상이 미래에도 계속될 것이라고 가정하는 것이 합리적일 때,

정량적인 예측 기법 - (시간에 따라 일정한 간격으로 모든) 시계열이나 (특정 시점에서 모은) 횡단면(cross-sectional) 데이터를 사용합니다.

 

 

시계열 예측

 

주식 주가, 강우량, 기업의 판매결과, 기업의 연간 수익 과 같이 순차적으로 관측된 것을 시계열 데이터로 다룰 수 있습니다.

 

'시계열 데이터를 예측한다'의 목표는 관측값의 수열이 미래에 계속될 것인지 예측하는 것입니다.

 

단순한 시계열 예측 기법은 예측할 변수 정보만 이용하고 이외에 변수에 영향을 미치는 다른 요인들을 고려하지 않습니다.

즉, 추세, 계절성 패턴은 고려하지만(외삽), 마케팅계획, 경쟁사활동, 경제상황 등의 정보는 무시합니다.

 

대표적인 시계열 예측용 모델 : 분해 모델, 지수 평활법, ARIMA 모델

 

 

예측 모델

 

1) 예측 변수를 고려한 모델(설명 모형)

 

예측 변수(predictor variable)는 시계열을 예측할 때 종종 유용합니다.

 

예를 들어, 여름 기간 동안 더운 지역의 시간당 전기 수요(ED, electricity demand)를 예측하려는 상황을 생각해봅시다. 예측 변수를 고려하는 모델은 이러한 형태일 것입니다.

 

 

예측 변수로 (완벽하게) 설명할 수 없는 전기 수요량은 항상 변화할 것이기에 이 관계는 정확하지 않습니다.

위의 모델에서 우변에 있는 “오차(error)”항은 무작위 변동과 더불어 모델에 포함하지 않은 관련 변수의 영향까지 고려하는 역할을 합니다.

 

어떤 것이 전기 수요의 변동을 일으키는지 설명할 때 도움이 되기 때문에 이 모델을 설명 모형(explanatory model)이라고 부릅니다.

 

2) 시계열 예측 모델

 

전기 수요 데이터가 시계열이라서, 예측할 때 시계열 모델을 사용할 수도 있습니다. 이 경우에, 적합한 시계열 예측식의 형태는 다음과 같습니다.

 

 

*여기에서 는 현재 시간, 은 한 시간 후, 은 한 시간 전, 는 2시간 전, 나머지도 이와 같습니다.

 

여기에서는 변수의 과거 값으로 미래 예측을 합니다만, 시스템에 영향을 줄 수 있는 외부 변수는 사용하지 않습니다. 또 다시, 우변의 “오차(error)” 항으로 무작위 변동과 모델에 넣지 않은 관련 변수의 효과를 감안합니다.

 

3) 혼합형 예측 모델

 

위의 두 모델의 특징을 결합한 세 번째 종류의 모델도 있습니다. 예를 들어, 다음과 같이 주어질 것입니다.

 

 

동적 회귀(dynamic regression) 모델, 패널(panel) 데이터 모델, 종단적(longitudinal) 모델, 수송 함수(transfer function) 모델, (f가 선형이라고 가정하는) 선형 시스템(linear system) 모델이라고도 불리웁니다.

 

예측하려는 변수의 과거 값만 다루지 않고 다른 변수에 관한 정보도 포함하기 때문에 설명 모형은 유용합니다.

 

 

하지만, 예측하는 사람이 설명 모델이나 혼합된 모델 대신에 시계열 모델을 선택할 수도 있는 몇 가지 이유가 있습니다.

 

1) 시스템을 잘 이해하지 못하거나, 이해하더라도 변수의 행동에 영향을 주는 관계를 측정하기가 아주 어려운 경우입니다.

2) 관심 있는 변수를 예측할 수 있으려면 다양한 예측 변수의 미래값을 알 필요가 있거나 예측할 필요가 있는 경우입니다.

3) 주된 관심이 왜 일어나는지가 아니라 무엇이 일어나는지만 예측하는데 있는 경우입니다.

4) 시계열 모델이 설명 모델이나 혼합 모델보다 더 정확한 예측값을 내는 경우입니다.

 

사용할 수 있는 자원과 데이터, 비교 모델의 정확도, 예측 모델이 사용될 방식에 따라 예측에 사용할 모델이 달라집니다.

 

 

5. 예측 작업의 단계

 

1) 문제정의 : 데이터 수집 과정, 데이터베이스 유지 보수, 예측값 제공 방식 등을 문제 정의를 통해 정해야 합니다.

 

2) 정보 수집 : 최소한으로 통계 데이터와 도메인 전문지식이 필요합니다. 

 

3) 탐험적 분석 : 데이터를 그래프로 나타내는 것으로 시작하여 일관된 패턴, 추세, 계절성, 경기 순환 및 특이점을 확인합니다. 

 

4) 모델 선택 : 과거 데이터를 이용할 수 있는 정도, 예측 변수(forecast variable)와 설명 변수(explanatory variable) 사이 관계의 강도, 예측값이 사용될 방식에 따라 사용할 가장 좋은 모델이 달라집니다. ( 회귀모델, 지수 평활 기법, ARIMA모델, 동적 회귀 모델, 계층적 예측, 신경망 모델, 벡터 자귀회귀 )

 

5) 예측 모델 사용 및 평가 : 실제 상황에서 예측 모델을 사용할 때는, 결측치(또는 빠진 값; missing values)과 이상값(outlier)를 처리하는 방법 또는 짧은 시계열을 다루는 방법 같은 수많은 실제적인 문제가 등장합니다.

 

 

6. 통계적 예측 관점

 

 우리가 예측값을 얻으면, 확률변수(random variable)가 가질 수 있는 가능한 값들의 범위에서 가운데를 추정합니다.

 

예측구간(prediction interval)은 확률변수가 비교적 높은 확률로 취할 수 있는 범위를 제시합니다.(80%, 95%)

 

상대적인 확률 값에 따라 이 무작위 변수가 가질 수 있는 값은 “확률분포(probability distribution)”라고 합니다. 예측할 때, 이것을 예측분포(forecast distribution)라고 부릅니다.

 

예측할 때, y^(y hat)과 같이 표기하고 보통은 예측분포의 평균 혹은 중앙값(median)을 가리킵니다. 

 

 

 

오늘은 예측에 대한 것과 예측을 위해 필요한 단계, 정보, 기법 등에 대해서 얇고 넓게 알아보았습니다.

 

다음 시간에는 시계열 시각화에 대해서 좀더 집중을 하여 살펴보도록 하겠습니다.