자기회귀 누적 이동평균(ARIMA)

자기회귀 누적 이동평균(ARIMA)
기업이 다가오는 시즌의 제품 수요를 어떻게 정확하게 예측하고 출시를 최적화하는지 궁금했던 적이 있나요? 바로 이때 ARIMA가 활용됩니다. ARIMA는 과거 패턴을 분석하여 미래 시계열 값을 예측하는 통계 모델입니다.
ARIMA의 작동 방식을 살펴보며 그 중요성, 이점, 과제를 논의해 보겠습니다.
ARIMA란 무엇인가?
자기회귀 누적 이동평균(AutoRegressive Integrated Moving Average, ARIMA)은 시계열 예측에 널리 사용되는 통계 모델입니다. 이 모델은 과거 데이터를 사용하여 데이터셋의 패턴을 이해하고 미래 값을 예측합니다. 이 모델은 미래 값을 예측하기 위해 세 가지 구성 요소인 자기회귀(AR), 차분(I), 이동평균(MA)을 사용합니다. 각 구성 요소는 과거 값과 미래 값 사이의 관계를 설명함으로써 모델의 예측을 형성합니다.
각 구성 요소의 역할은 다음과 같습니다:
자기회귀(p): AR은 미래 값이 과거 값에 의존한다고 가정합니다. AR 차수는 모델이 현재 값을 예측하는 데 사용하는 과거 값의 개수를 의미합니다. 예를 들어 AR 차수가 3이면, 모델은 가장 최근의 과거 값 세 개를 기반으로 현재 값을 예측합니다.
차분/ 누적(d): 이는 시계열을 정상적으로 만들기 위해 필요한 차분의 정도를 결정합니다. 평균과 분산 같은 통계적 특성이 시간에 따라 변하는 비정상 시계열에서는 차분을 적용하면 시계열을 안정화하는 데 도움이 됩니다.
이동평균(q): MA는 시계열의 현재 값과 과거 예측 오차 사이의 관계를 포착합니다. MA 차수는 시계열의 현재 값과 과거 예측 오차 사이의 관계를 반영합니다. 예를 들어 MA(2) 또는 2차 MA는 현재 값을 예측하기 위해 과거 두 개 오차의 가중 평균을 계산합니다.
수학적으로 ARIMA 모델은 ARIMA (p, d, q)로 표현되며 다음과 같이 나타냅니다:
y′t=I+α1y′t−1+α2y′t−2+⋯+αpy′t−p+et+θ1et−1+θ2et−2+⋯+θqet−q
여기서:
Yt: 시계열의 현재 값
c: 상수항
φ₁, φ₂, ..., φp: 자기회귀 계수
θ₁, θ₂, ..., θq: 이동평균 계수
εt: 잡음 오차항
p: 자기회귀의 차수
q: 이동평균의 차수
d: 차분/ 누적의 차수
이는 차분된 시계열의 현재 값(y′t)이 과거 값(y′t-₁, y′t-₂, ..., y′t-p)과 과거 오차항(et-₁, et-₂, ..., et-q)의 선형 결합임을 나타냅니다.
ARIMA는 어떻게 작동하나요?
자기상관과 이동평균은 ARIMA 모델의 핵심 구성 요소입니다. 자기상관은 과거 값과 현재 값 사이의 직접적인 관계를 식별하는 데 도움이 되며, 이동평균은 과거 예측 오차의 간접적인 영향을 고려하는 데 도움이 됩니다.
이들이 함께 작동하는 방식을 단계별로 살펴보겠습니다:
정상성
ARIMA 모델을 사용한 시계열 예측의 첫 번째 단계는 시계열이 정상적인지 확인하는 것입니다. 비정상 데이터는 부정확한 예측과 편향된 모델 결과로 이어질 수 있으므로 ARIMA는 정상성 가정에 기반합니다. 시계열 데이터가 비정상적이면 ARIMA는 차분을 적용하여 정상적으로 만듭니다. 이는 현재 값에서 이전 값을 빼는 과정을 포함합니다. 차분의 차수(d)는 이 과정이 반복되는 횟수를 결정합니다.
그림- 비정상 데이터와 정상 데이터 .png
그림: 비정상 데이터와 정상 데이터
모델 식별
모델 식별은 자기회귀(p) 및 이동평균(q) 구성 요소에 적절한 값을 결정합니다. 자기상관 함수(ACF)와 편자기상관 함수(PACF)는 이 과정에 필수적인 도구입니다:
자기상관 함수
자기상관 함수는 자기회귀(AR) 구성요소(p)의 차수를 식별합니다. 지연 k에서 상관관계를 보이면, 현재 값이 k 기간 전의 값과 관련되어 있음을 시사하며, 여기서 k는 시계열에서 현재 값과 이전 값 사이의 지연 수(시간 단계)를 나타냅니다.
부분 자기상관 함수
부분 자기상관 함수(PACF)는 이동평균(MA) 구성요소(q)의 차수를 식별합니다. 지연 k에서 유의한 상관관계를 보이면, 현재 값이 k 기간 전에 발생한 예측 오차와 관련되어 있음을 나타냅니다.
Figure- Lag-1 autocorrelation.png
그림: 지연-1 자기상관
모델 추정
자기회귀(AR) 차수와 이동평균(MA) 구성요소를 결정한 후, ARIMA는 모델 매개변수를 추정합니다. 모델 매개변수는 현재 값과 과거 값(AR) 사이, 그리고 현재 값과 과거 오차(MA) 사이의 관계 강도를 정량화합니다.
최대우도추정(MLE)은 ARIMA 모델에서 매개변수 추정에 가장 일반적으로 사용되는 방법입니다. MLE는 주어진 데이터를 관측할 가능도를 최대화하는 값을 찾아 모델 매개변수를 추정합니다. ARIMA 모델의 경우, 우도 함수는 일반적으로 오차가 정규분포를 따른다는 가정에 기반합니다. 최소제곱법과 베이지안 방법은 ARIMA 모델에서 매개변수 추정을 위한 다른 접근 방식입니다.
모델 예측
추정된 ARIMA 모델은 마지막으로 과거 데이터를 기반으로 미래 값을 예측합니다. 필요한 경우, AR 및 MA 구성요소의 차수를 조정하거나 계절성과 같은 다른 요인을 고려하여 모델을 개선할 수도 있습니다.
Figure- ARIMA forecasts.png
그림: ARIMA 예측
유사 개념과의 비교
ARIMA는 데이터 분석 및 예측의 맥락에서 다른 유사 개념과 자주 비교됩니다. 일반적인 오해를 해소하기 위한 비교는 다음과 같습니다:
ARIMA vs. SARIMA: SARIMA(Seasonal ARIMA)는 시계열 데이터 분석에서 계절성을 구체적으로 포함하는 ARIMA의 확장입니다. ARIMA는 명확한 계절 패턴이 없는 시계열 데이터를 위한 통계 모델입니다.
ARIMA vs. Exponential Smoothing: ARIMA와 exponential smoothing은 시계열 예측을 위한 방법입니다. ARIMA는 추세, 계절성, 자기상관을 포함한 기저 패턴을 모델링하기 위해 통계 기법을 사용합니다. 반면 exponential smoothing은 최근 관측치에 오래된 관측치보다 더 큰 가중치를 부여하는 가중 평균의 더 단순한 방법을 적용합니다. ARIMA는 복잡한 패턴이 있는 데이터에 더 적합한 반면, exponential smoothing은 비교적 안정적인 추세와 최소한의 계절성을 가진 시계열에 잘 작동하여 복잡한 데이터에 대한 적응성이 낮습니다.
ARIMA vs. Vector Autoregression (VAR): VAR은 여러 변수가 서로 영향을 미치는 다변량 시계열 예측에 적합합니다. ARIMA는 단변량 시계열에 적합하며 정상성을 달성하기 위해 시계열 차분이 필요합니다.
ARIMA의 장점과 과제
ARIMA는 여러 장점을 제공하여 가장 널리 사용되는 시계열 예측 모델 중 하나입니다. 그러나 특정 과제도 수반하므로, ARIMA를 적용하기 전에 분석의 특성과 구체적인 목표를 고려해야 합니다.
장점
시계열 예측에 ARIMA 모델을 사용하는 장점은 다음과 같습니다:
유연성: ARIMA는 선형 및 비선형 추세, 계절 패턴, 변동성, 자기상관을 포함한 광범위한 시계열 데이터를 처리할 수 있습니다. 이를 통해 경제 지표 및 주가의 비선형 패턴과 같은 실제 시계열의 일반적인 특성을 다룰 수 있습니다.
단순성: ARIMA 모델은 단순한 작동 방식과 투명한 가정 덕분에 이해하기 쉽습니다. 비교적 많은 관측값을 가진 긴 시계열을 처리할 수 있습니다.
정확도: ARIMA 모델의 정확도는 데이터 품질에 따라 달라집니다. 따라서 가정을 고려하고 적절한 모델을 선택하면 정확한 결과를 얻을 수 있습니다.
해석 가능성: ARIMA 모델 매개변수는 자기회귀 및 이동평균 계수를 포함하여 명확한 해석을 가집니다. 이러한 계수는 과거 값과 오차가 미래 값에 어떻게 영향을 미치는지에 대한 통찰을 제공합니다.
폭넓은 적용 가능성: ARIMA 모델은 금융 모델링, 수요 예측, 부하 예측과 같은 예측 애플리케이션을 위해 여러 산업 전반에서 널리 사용됩니다. 따라서 많은 프로그래밍 언어에 내장되어 있으며, 폭넓은 지지자 커뮤니티를 보유하고 있습니다.
다른 모델의 기반: ARIMA 모델은 SARIMA 및 ARIMAX와 같은 더 복잡한 시계열 모델의 기반입니다. 추가 요인을 고려함으로써, 시계열의 과거 값만을 사용하는 것보다 예측 정확도를 향상시키는 데 도움이 됩니다.
과제
ARIMA 모델의 과제는 다음과 같습니다:
정상성 가정: ****ARIMA 모델은 시계열이 정상적이라고 가정하며, 그렇지 않은 경우 정상성을 달성하기 위해 데이터를 변환합니다. 그러나 많은 실제 데이터셋은 비정상적이며, 이를 전처리하면 모델링 과정이 복잡해질 수 있습니다.
선형 관계: ARIMA는 선형 모델이며 데이터의 복잡한 비선형 관계를 포착할 수 없습니다. 따라서 경제 위기, 외부 충격 등으로 인해 발생하는 데이터의 급격한 변화를 정확하게 포착하지 못할 수 있습니다.
모델 식별: ARIMA 모델의 성능은 적절한 매개변수(p, d, q)를 선택하는 데 달려 있습니다. 그러나 이는 종종 시행착오나 그리드 서치 방법을 필요로 하며, 과적합 또는 과소적합으로 이어질 수 있습니다.
이상치에 대한 민감성: ARIMA 모델은 이상치에 민감할 수 있으며, 이는 성능에 영향을 미칠 수 있습니다. 따라서 원하는 결과를 얻기 위해서는 신중한 데이터 전처리가 필요합니다.
장기 예측: ARIMA는 장기 예측에 적합하지 않습니다. 이는 ARIMA 모델이 과거 패턴을 기반으로 하며, 예기치 못한 사건이나 데이터 생성 과정의 구조적 변화를 충분히 포착하지 못할 수 있기 때문입니다.
ARIMA의 사용 사례, 도구 및 제공업체
ARIMA 모델은 다양한 분야에서 시계열 예측 및 분석에 널리 적용됩니다. 여기에는 경제 및 금융, 수요 예측, 생산 및 용량 계획, 헬스케어 등이 포함됩니다.
예를 들어, ARIMA 모델은 인도의 COVID-19 사례 확산을 예측하는 데 사용되었습니다. 연구자들은 2020년 3월 14일부터 5월 3일까지의 일일 COVID-19 사례 데이터를 사용하여 ARIMA 모델을 학습시켰고, 이는 만족스러운 정확도를 보였습니다.
많은 프로그래밍 언어와 통계 패키지가 ARIMA 모델을 구현하기 위한 도구를 제공합니다. 여기에는 다음이 포함됩니다:
R
R은 ARIMA 모델링을 포함하여 광범위한 시계열 분석 기능을 갖추고 있습니다. stats, forecast, tseries를 포함한 여러 라이브러리는 R에서 ARIMA 모델을 구현하는 기능을 제공합니다.
Python
Python 또한 ARIMA를 구현하기 위한 광범위한 통계 라이브러리를 제공합니다. 여기에는 Statsmodels, Numpy, Pandas 등이 포함됩니다.
MATLAB
MATLAB은 ARIMA 모델링을 위한 내장 함수를 갖춘 상용 수학 컴퓨팅 소프트웨어입니다. 또한 ARIMA 모델링을 다른 워크플로와 결합하기 위해 다른 소프트웨어 도구 및 프로그래밍 언어와의 통합도 허용합니다.
ARIMA의 FAQ
ARIMA는 무엇에 사용되나요?
AutoRegressive Integrated Moving Average (ARIMA)는 시계열 분석 및 예측에 사용되는 통계 모델입니다. 이는 과거 값을 기반으로 시계열의 미래 값을 예측하는 데 널리 사용되는 방법입니다.
ARIMA는 다른 시계열 예측 모델과 어떻게 다른가요?
ARIMA는 유연성, 해석 가능성, 광범위한 적용 가능성으로 인해 다른 시계열 예측 모델과 다릅니다. ARIMA는 추세, 계절성, 자기상관을 포함하여 시계열 데이터의 다양한 패턴을 포착할 수 있습니다. ARIMA 모델의 매개변수는 명확하게 해석할 수 있으며, 더 복잡한 모델과 비교하기 위한 기준선 역할을 할 수 있습니다.
ARIMA 예측을 어떻게 해석하나요?
ARIMA 예측은 일반적으로 시계열의 예상 미래 값에 대한 점 추정치로 해석됩니다. 평균제곱오차(MSE), 평균절대오차(MAE), 제곱근평균제곱오차(RMSE)와 같은 다양한 지표를 사용하여 예측 정확도를 평가할 수 있습니다.
ARIMA 모델의 가정은 무엇인가요?
아래는 ARIMA 모델의 가정입니다:
정상성: 시계열의 통계적 특성(평균, 분산, 자기상관)은 시간에 따라 일정하게 유지되어야 합니다.
선형성: ARIMA는 현재 값과 과거 값 및 오차 사이에 선형 관계가 있다고 가정합니다.
정규성: 오차는 정규분포를 따른다고 가정합니다.
오차의 자기상관 없음: 오차는 서로 상관관계가 없다고 가정합니다.
관련 리소스
시계열 데이터 저장 및 전처리에 대해 더 읽어보세요:


