ARIMA는 Autoregressive Integrated Moving Average의 약자로, 시계열 분석 및 시계열의 가능한 미래 값을 예측하는 기법입니다.
자동 회귀 모델링과 이동 평균 모델링은 시계열 데이터를 예측하는 두 가지 다른 접근 방식입니다. ARIMA는 이 두 가지 접근 방식을 통합하여 ARIMA라는 이름을 붙였습니다. Forecasting은 시계열의 과거 행동을 사용하여 해당 시계열의 하나 이상의 미래 값을 예측하는 머신 러닝의 한 분야입니다. 작은 상점에 재고를 비축하기 위해 아이스크림을 구입하는 상황을 떠올려 보세요. 날씨가 따뜻해지면서 아이스크림 판매량이 꾸준히 증가하고 있다는 것을 알고 있다면 다음주 주문량이 이번 주 주문량보다 조금 더 많아야 한다고 예측해야 합니다. 주문량이 얼마나 더 많아야 하는지는 이번 주 판매량이 지난 주 판매량과 얼마나 차이가 나는지에 따라 결정해야 합니다. 비교할 과거가 없으면 미래를 예측할 수 없으므로 과거 시계열 데이터는 ARIMA와 모든 Forecasting 및 시계열 분석 방법에서 매우 중요합니다.
ARIMA는 시계열 Forecasting에 가장 널리 사용되는 방법 중 하나이며 작업 중인 시계열 데이터 유형에 따라 두 가지 방법으로 사용할 수 있습니다. 첫 번째 경우, 시계열 데이터의 계절성을 고려할 필요가 없는 비계절 ARIMA 모델을 만듭니다. 단순히 과거 데이터의 패턴을 기반으로 미래를 예측합니다. 두 번째 경우에는 시계열에 영향을 미치는 규칙적인 주기인 계절성을 고려합니다. 이러한 주기는 일별, 주별 또는 월별이 될 수 있으며, 미래 값을 예측하는 데 사용할 수 있는 시계열의 과거 데이터 패턴을 정의하는 데 도움이 됩니다. 많은 데이터 과학과 마찬가지로 Forecasting의 기초는 모델을 학습시킬 수 있는 좋은 시계열 데이터를 확보하는 것입니다. 시계열은 동일한 시간 간격으로 변수를 정렬된 측정 순서로 나열한 것입니다. 동일한 시간 간격 요구 사항 때문에 시간 요소가 있는 모든 데이터 집합이 실제로 시계열 데이터인 것은 아니라는 점에 유념하는 것이 중요합니다.
1970년 통계학자 George Box와 Gwilym Jenkins는 모든 종류의 시계열 모델에 맞는 Box-Jenkins 방법이란 방법을 제안했습니다.1 이 접근 방식은 시계열을 생성한 프로세스가 정상 상태인 경우 모델을 사용하여 근사화할 수 있다는 가정에서 시작하며, 다음과 같은 네 단계로 구성됩니다.
식별: 시계열이 정상 상태인지 여부를 평가하고, 정상적이지 않은 경우 시계열을 정상 상태로 만드는 데 필요한 차이의 수를 평가합니다. 그런 다음 진단 플롯에 사용할 차분 데이터를 생성합니다. 자기 상관 및 부분 자기 상관의 데이터에 대한 ARMA 모델의 매개변수를 식별합니다.
추정: 데이터를 사용하여 모델의 매개변수(즉, 계수)를 학습합니다.
진단 검사: 사용 가능한 데이터의 맥락에서 적합 모델을 평가하고 모델을 개선할 수 있는 영역을 확인합니다. 특히 여기에는 과적합을 확인하고 잔차 오차를 계산하는 작업이 포함됩니다.
Forecasting: 이제 모델이 있으므로 모델을 사용하여 값을 예측할 수 있습니다.
모델이 데이터에 올바르게 적합하다는 것을 확인했으면 ARIMA Forecasting을 시작할 준비가 된 것입니다. 각 단계를 자세히 살펴보겠습니다.
시계열은 정상 또는 비정상일 수 있습니다. 정상 시계열에는 시간이 지나도 일정한 통계적 속성이 있습니다. 즉, 평균, 분산, 자기 상관과 같은 통계는 데이터에 따라 변하는 것이 아닙니다. ARMA를 포함한 대부분의 통계적 Forecasting 방법은 하나 이상의 변환을 통해 시계열을 거의 정상 상태로 만들 수 있다는 가정에 기초합니다. 정상 시계열은 통계적 특성이 과거와 미래가 거의 같을 것이라고 간단히 예측할 수 있기 때문에 비교적 쉽게 예측할 수 있습니다. 비정상 데이터로 작업하는 것은 가능하지만 ARIMA와 같은 접근 방식으로는 어렵습니다.
시계열 데이터의 또 다른 주요 특징은 데이터에 추세가 있는지 여부입니다. 예를 들어, 지난 50년 동안 인플레이션으로 인해 기본 생필품 가격이 상승하는 추세를 보일 수 있습니다. 추세가 데이터의 다른 패턴을 가리기 때문에 추세가 포함된 데이터를 예측하는 것은 어려울 수 있습니다. 데이터에 일관되게 되돌아가는 안정적인 추세선이 있는 경우 추세 정상일 수 있으며, 이 경우 추세선을 피팅하고 데이터에서 추세를 뺀 다음 모델을 피팅하여 추세를 제거할 수 있습니다. 데이터가 추세 정상이 아니라면 차분 정상일 수 있으며, 이 경우 차분으로 추세를 제거할 수 있습니다. 가장 간단한 차분 방법은 각 값에서 이전 값을 빼서 시계열 데이터에 얼마나 큰 변화가 있는지 측정하는 것입니다. 예를 들어, Yt가 기간 t에서 시계열 Y의 값인 경우 기간 t에서 Y의 첫 번째 차이는 Yt-Yt-1과 같습니다.
여기서 정상적이지 않은 시계열 플롯을 볼 수 있습니다. 상승 추세가 뚜렷하고 계절성을 보입니다.
여기서 계절성은 정기적인 12개월 주기입니다. 이 문제는 1990년 4월과 1989년 4월을 구분하도록 시계열을 12단위 차이로 차분하여 해결할 수 있습니다. 시계열에 12단위 지연으로 차분을 적용하면 더 정상적인 시계열을 볼 수 있습니다. 이 시계열의 분산은 여전히 변화하지만, 이 시계열과 이를 사용한 예측에 ARIMA 모델이 적합할 수 있습니다.
정상성은 혼란스러울 수 있는데, 가령, 주기적 동작이 있지만 추세나 계절성이 없는 시계열은 여전히 정상 상태입니다. 주기를 관찰할 때 주기의 길이가 고정되어 있지 않으면 주기의 최고점과 최저점이 어디에서 발생할지 알 수 없습니다. 일반적으로 정상 시계열은 장기적으로 예측 가능한 패턴이 없습니다. 시계열 데이터를 꺾은선형 차트에 그리면 일정한 분산이 있고 큰 급증이나 하락이 없어 거의 수평으로 보입니다.
시계열이 과거 값과 상관 관계가 있는 정도는 자기 상관을 계산하여 확인할 수 있습니다. 자기 상관을 계산하면 데이터가 임의성을 나타내는지 여부와 한 관측치가 바로 인접한 관측치와 얼마나 관련되어 있는지에 대한 질문에 답할 수 있습니다. 이렇게 하면 어떤 종류의 모델이 데이터를 가장 잘 나타낼 수 있는지 알 수 있습니다. 자기 상관은 지연 단위까지 포함하여 점 간의 상관 관계를 보기 위해 표시되는 경우가 많습니다.
자기 상관의 각 지연은 다음과 같이 정의됩니다.
r은 자기 상관의 지연, T는 시계열의 길이, y는 시계열의 값입니다. 자기 상관 계수는 자기 상관 함수(ACF)를 구성합니다.
ACF에서 상관 계수는 x축에 있고 지연 수(지연 순서라고 함)는 y축에 표시됩니다. 자기 상관 플롯은 statsmodels 라이브러리의 plot_acf를 사용하여 Python에서 만들 수 있으며 acf 함수를 사용하여 R에서 만들 수 있습니다.
12시간 단위의 지연으로 차분된 시계열의 이 ACF 플롯에서 0 지연은 그 자체로 완벽한 상관 관계를 갖습니다. 첫 번째 지연은 음수, 두 번째 지연은 약간 양수, 세 번째 지연은 음수 등입니다. 12번째 지연은 그 자체와 강한 상관 관계가 있다는 것을 알 수 있습니다. 월별 데이터를 살펴보고 있었으므로 이는 당연한 결과입니다. 자기 상관이 시계열 전체에서 거의 동일한 주기를 유지한다는 것을 알 수 있으며, 이는 시계열에 여전히 상당한 계절성이 포함되어 있음을 나타냅니다. ACF 플롯은 이 데이터에 가장 적합한 ARIMA 모델의 매개변수를 추론하는 데에도 유용합니다.
시계열 데이터에서 ARIMA 모델을 사용할 준비를 하는 데 있어 또 다른 중요한 플롯은 부분 자기 상관 함수입니다. ACF 플롯은 다양한 k 값에 대한 yt와 yt−k의 관계를 보여줍니다. yt와 yt−1이 상관 관계가 있으면 yt−1과 yt−2도 상관 관계가 있습니다. 그러나 yt와 yt-2가 상관 관계가 있을 수도 있는데, 이는 yt 예측에 사용될 수 있는 새로운 정보가 yt-2에 포함되어 있기 때문이 아니라, 둘 다 yt-1에 연결되어 있기 때문일 수 있습니다. 이 문제를 해결하기 위해 부분 자기 상관을 사용하여 여러 지연 관측값을 제거합니다. 이는 지연 1에서 k까지의 영향을 제거한 후 yt와 yt-k 사이의 관계를 측정합니다. 따라서 첫 번째 부분 자기 상관은 첫 번째 자기 상관과 동일합니다. 그 사이에 제거할 것이 없기 때문입니다. 각 부분 자기 상관은 자기 회귀 모형의 마지막 계수로 추정할 수 있습니다.
R이나 Python 또는 다른 프로그래밍 언어나 라이브러리에서 작업하는 경우 PACF를 계산하고 쉽게 검사할 수 있도록 PACF 플롯을 만들 수 있습니다. 자기 상관 플롯은 statsmodels 라이브러리의 plot_pacf를 사용하여 Python에서 만들 수 있으며 pacf 함수를 사용하여 R에서 만들 수 있습니다.
이 PACF는 위의 ACF 플롯과 동일한 데이터를 사용합니다. PACF 플롯은 ACF 플롯에서와 같이 0이 아닌 1에서 시작하여 전년 동월과 상관 관계가 있는 1.0 지연까지 강한 상관 관계를 보입니다. 첫 해 이후, 지연 횟수가 증가함에 따라 자기 상관이 감소하는 것을 볼 수 있습니다. 해마다 변동이 있는 월별 데이터를 살펴보고 있었으므로 이는 당연한 결과입니다.
이름에서 알 수 있듯이 ARIMA는 전달된 매개변수에 따라 자동 회귀 및 이동 평균 모델을 단일 모델로 통합합니다. 시계열 전체에서 변경 사항을 모델링하는 이 두 가지 방법은 서로 관련되어 있지만 몇 가지 주요 차이점이 있습니다. 자기 회귀 모델에서는 과거 변수 값의 선형 조합을 사용하여 관심 변수를 예측합니다. 자동 회귀라는 용어는 변수 자체에 대한 회귀임을 나타냅니다. 이 기법은 과거 값을 회귀에 대한 입력으로 사용하는 방식이 선형 회귀 모델과 유사합니다. 자기 회귀는 다음과 같이 정의됩니다.
여기서 εt는 백색 노이즈입니다. 이는 다중 회귀와 비슷하지만 예측 변수로 yt의 지연된 값을 사용합니다. 이를 AR(p) 모델, 즉 차수 p의 자동 회귀 모델이라고 합니다.
반면 이동 평균 모델은 회귀에서 예측 변수의 과거 값을 사용하는 대신 과거 예측 오차를 사용합니다. 이동 평균은 단순히 범위에서 k 값의 평균을 구한 다음 범위를 전진시키는데, 여기서 k는 이동 평균 범위의 크기입니다. 예측 값은 실제 값을 사용하여 평가되어 시계열의 각 단계에서 발생하는 오차를 파악합니다. 이동 평균은 다음과 같이 정의됩니다.
εt는 백색 잡음입니다. 이를 차수 q의 이동 평균 모델인 MA(q) 모델이라고 합니다. 물론 εt의 값은 관찰되지 않으므로 일반적인 의미의 회귀는 아닙니다. yt의 각 값은 몇 가지 과거 예측 오류의 가중 이동 평균으로 생각할 수 있습니다.
일반적으로 ARIMA 모델에서는 자동 회귀(AR) 용어 또는 이동 평균(MA) 용어를 사용합니다. ACF 플롯과 PACF 플롯 중 어떤 용어가 가장 적합한지 결정하기 위해 종종 사용됩니다.
시계열이 정상 상태이고 자기 상관의 특성이 결정되면 ARIMA 모델을 적합시킬 수 있습니다. ARIMA 모델에는 일반적으로 p, d, q라고 하는 3개 주요 매개변수가 있습니다.
p: ARIMA의 자기 회귀 부분의 차수
d: 관련된 차분 정도
q: 이동 평균 부분의 차수
일반적으로 ARIMA(p, d, q)의 순서로 작성됩니다. 많은 프로그래밍 언어와 패키지는 분석할 시계열과 이 세 가지 매개 변수를 사용하여 호출할 수 있는 ARIMA 함수를 제공합니다. 대부분의 경우 데이터는 학습 세트와 테스트 세트로 분할되므로 학습된 후 모델의 정확도를 테스트 할 수 있습니다. 일반적으로 시간 플롯만 보고는 데이터에 가장 적합한 p와 q의 값을 알 수 없습니다. 일반적으로 ACF와 PACF 플롯을 사용하여 p 및 q의 적절한 값을 결정할 수 있으므로, 이러한 플롯은 ARIMA를 사용할 때 중요한 용어입니다.
모델에서 AR 용어를 사용해야 하는 경우에 대한 대략적인 기준은 다음과 같습니다.
모델에서 MA 용어를 사용하는 경우에 대한 대략적인 기준은 다음과 같습니다.
접할 수 있는 몇 가지 대표적인 ARIMA 모델 유형이 있습니다.
ARIMA(1,0,0) = 1차 자기 회귀 모델: 시계열이 정상적이고 자기 상관된 경우 이전 값의 배수에 상수를 더한 값으로 예측할 수 있습니다. 오늘 아이스크림 판매량만을 사용하여 내일의 아이스크림 판매량을 직접 예측할 수 있다면 이는 1차 자동 회귀 모델입니다.
ARIMA(0,1,0) = 랜덤 워크: 시계열이 정상이 아닌 경우 가능한 가장 간단한 모델은 랜덤 워크 모델입니다. 랜덤 워크는 시퀀스의 다음 값이 시퀀스의 이전 값을 수정하는 것이므로 난수 목록과 다릅니다. 이러한 방식으로 주가에 대한 다양한 가치를 모델링하는 경우가 많습니다.
ARIMA (1,1,0) = 차분된 1차 자기 회귀 모델: 랜덤 워크 모델의 오차가 자기 상관된 경우, 예측 방정식에 종속 변수의 지연을 하나 더함으로써 문제를 해결할 수 있습니다. 즉, 한 주기만큼 뒤쳐진 Y의 첫 번째 차이를 회귀시키면 됩니다.
상수가 없는 ARIMA(0,1,1) = 단순 지수 평활 모델: 계절성이나 추세가 없는 시계열 데이터에 사용됩니다. 여기에는 과거 관측값의 영향력을 제어하는 단일 평활 매개변수가 필요합니다(0과 1 사이의 계수 값으로 표시됨). 이 기법에서 1에 가까운 값은 모델이 과거 관측에 거의 관심을 기울이지 않는다는 것을 의미하며, 값이 작을수록 예측 시 더 많은 이력을 고려한다는 뜻입니다.
상수가 있는 ARIMA(0,1,1) = 성장에 따른 단순 지수 평활 모델입니다. 이는 단순 지수 평활과 동일하지만 시계열의 Y값이 진행됨에 따라 증가하도록 하는 상수 항이 추가된다는 점이 다릅니다.
물론 ARIMA 모델을 적합시킬 수 있는 다른 많은 방법이 있기 때문에, 여러 모델을 계산하고 비교하여 어떤 모델이 데이터에 가장 적합한지 확인하는 경우가 많습니다. 이 모든 것은 1차 모델로, 선형 프로세스를 매핑합니다. 2차 프로세스를 매핑하는 2차 모델과 더 복잡한 프로세스를 매핑하는 상위 모델이 있습니다.
일반적으로 여러 ARIMA 모델을 데이터에 맞추고 서로 비교하여 시계열 데이터에서 나타나는 패턴을 가장 잘 예측하는 모델을 찾습니다. ARIMA 모델의 정확성을 평가하는 데는 다음과 같은 세 가지 주요 메트릭이 있습니다.
아카이케 정보 기준(AIC). 이는 회귀 모델의 예측 변수를 선택하는 데 널리 사용되며, ARIMA 모델의 순서를 결정하는 데도 유용합니다. AIC는 모델의 적합도와 모델의 단순성/간결성을 단일 통계로 정량화합니다. AIC 점수는 높은 것보다 낮을수록 좋으므로 점수가 낮은 모델을 선호합니다. AIC는 더 간단한 모델을 선호하며, 정확도가 더 단순한 모델과 거의 동일하다면 더 복잡한 모델은 더 높은 점수를 받습니다. 샘플 크기에 대해 약간의 보정을 적용하는 보정된 AIC 또는 AICC도 있습니다.
베이지안 정보 기준(BIC). 이는 모델 선택의 또 다른 기준으로, AIC보다 복잡성에 더 큰 불이익을 주는 기준입니다. AIC와 마찬가지로 BIC가 낮은 모델은 일반적으로 점수가 높은 모델보다 선호됩니다. 모델을 장기 Forecasting에 사용하려는 경우 BIC가 더 나을 수 있지만, 단기 Forecasting은 AIC가 더 바람직할 수 있습니다.
시그마 제곱 또는 시그마2 값은 모델 잔차의 분산입니다. 시그마 항은 가정된 프로세스의 변동성을 설명합니다. 변동성이 높은 데이터이지만 시그마 제곱 점수가 매우 낮거나, 반대로 변동성이 없는 데이터이지만 시그마 제곱 점수가 높은 경우, 이는 모델이 실제 데이터 생성 프로세스를 잘 포착하지 못하고 있다는 신호입니다.
테스트 데이터 세트를 보류한 경우 다른 예측 간격에 대한 RMSE와 같은 정확도 메트릭을 비교할 수도 있습니다. ARIMA 모델은 미래의 단일 시간 단계에 대한 값을 예측할 수도 있고, 한 번에 여러 단계에 대한 값을 예측할 수도 있습니다.
ARIMA 모델을 구성하고 비교하는 또 다른 방법은 ARIMA 모델 생성 및 비교에 자동화된 구성 작업을 적용하는 Auto-ARIMA를 사용하는 것입니다. 최적의 모델에 도달하는 방법에는 여러 가지가 있습니다. 이 알고리즘은 여러 모델을 생성하고 AICc와 최대 우도 추정법의 오류를 최소화하여 ARIMA 모델을 얻으려고 시도합니다.
계절성 자기회귀 누적이동평균(SARIMA 또는 계절성 ARIMA)은 ARIMA를 확장한 것으로, 계절적 구성 요소를 지원하는 시계열 데이터를 처리할 수 있습니다. 이를 위해 3개의 새로운 하이퍼매개변수를 추가하여 시계열의 계절성 구성 성분에 대한 자기 회귀, 차분, 이동 평균은 물론 계절성 기간에 대한 추가 매개변수를 지정합니다. SARIMA 모델은 일반적으로 SARIMA((p,d,q),(P,D,Q))로 표현되며, 여기서 소문자는 시계열의 비계절 구성 성분을 나타내고 대문자는 계절 성분을 나타냅니다.
벡터 자기 회귀 모델(VAR 모델)은 다변량 시계열에 사용됩니다. 각 변수는 변수 자체의 과거 지연과 다른 변수의 과거 지연의 선형 함수가 되도록 구조화되어 있습니다.
ARIMA 모델은 시계열 데이터를 분석하여 과거의 프로세스를 이해하고 시계열의 미래 값을 예측하는 강력한 도구입니다. ARIMA 모델은 자동 회귀 모델과 이동 평균 모델을 결합하여 예측자에게 다양한 시계열 데이터에 사용할 수 있는 고도로 매개 변수화할 수 있는 도구를 제공합니다.
진화하는 ABI 솔루션 환경에 대한 고유한 인사이트를 제공하고 데이터 및 분석 리더를 위한 주요 결과, 가정 및 권장 사항을 강조합니다.
데이터 접근을 간소화하고 데이터 거버넌스를 자동화하세요. 어디서나 모든 데이터를 사용하여 워크로드 비용 최적화, AI 및 분석 확장을 포함하여 데이터 레이크하우스 전략을 데이터 아키텍처에 통합하는 방법을 알아보세요.
데이터 리더가 데이터 기반 조직을 구축하고 비즈니스 우위를 확보하는 방법을 살펴보세요.
오픈 데이터 레이크하우스 접근 방식을 통해 신뢰할 수 있는 데이터를 제공하고 분석 및 AI 프로젝트를 더 빠르게 실행하는 방법을 알아보세요.
다음 4가지 주요 단계를 통해 데이터 및 분석 전략을 비즈니스 목표에 연결하세요.
비즈니스 인텔리전스 문제가 지속되는 이유와 이러한 문제가 조직 전체 사용자에게 어떤 의미가 있는지 자세히 알아보세요.
기업이 성공하려면 데이터를 활용하여 고객 충성도를 높이고 비즈니스 프로세스를 자동화하며 AI 기반 솔루션으로 혁신을 이루어야 합니다.
IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.
더 나은 의사 결정을 위한 AI 기반 인사이트인 Cognos Analytics 12.0을 소개합니다.
1 Time Series Analysis: Forecasting and Control, Holden Day, 1970년.