← 7. 시계열

ARIMA·SARIMA·SARIMAX

과거의 패턴과 미리 아는 정보를 구분해서 씁니다.

p·d·q계절 차분외생변수예측구간

910개ARIMA690개SARIMA+ 주간 계절성570개SARIMAX+ 예정 출발편 수최종 평가 MAE(개) · 공항 일별 수하물 처리량

공항은 내일 몇 개의 수하물을 처리해야 할지 미리 알아야 합니다. 처리량을 너무 적게 예상하면 직원 배치가 부족해지고, 지나치게 많이 예상하면 장비와 인력이 불필요하게 대기할 수 있습니다. 그런데 일별 수하물 처리량은 단순히 어제와 비슷한 수준으로 유지되지 않습니다. 주말과 평일의 패턴이 다르고, 연휴와 항공편 운항계획에 따라 수요가 크게 달라지기도 합니다.

이처럼 시간이 흐르면서 관측되는 값의 움직임을 이용해 미래를 예측하는 대표적인 방법이 ARIMA(AutoRegressive Integrated Moving Average)입니다. 여기에 반복적인 계절 패턴을 명시적으로 반영하면 SARIMA(Seasonal ARIMA)가 되고, 항공편 운항계획처럼 결과에 영향을 주는 외부 변수를 추가하면 SARIMAX(Seasonal ARIMA with eXogenous variables)를 사용할 수 있습니다.

세 방법은 서로 경쟁하는 완전히 별개의 분석이 아니라, 예측에 활용하는 정보의 범위를 단계적으로 확장한 모형입니다. 이번 글에서는 각 모형의 원리와 차수 설정, 실제 예제, 진단, 예측 정확도, 예측구간과 외생변수 사용 시 주의사항을 설명합니다.

SECTION 1

ARIMA는 어떤 데이터를 예측하나요?

ARIMA는 과거 관측값과 과거 예측오차의 구조를 활용해 미래의 시계열을 예측하는 모형입니다.

매일 또는 매월 같은 간격으로 기록한 자료에 적용할 수 있으며, 시간 순서가 중요한 데이터에 사용합니다. 오늘의 수하물 처리량이 어제와 관련되고, 예상보다 많이 처리된 날의 충격이 이후에도 남을 수 있다는 점을 모형에 반영합니다.

8천10천홀드아웃 56일2024-012025-12마지막 8주1주2주3주4주5주6주7주8주
일별 수하물 처리량

ARIMA에서 중요한 것은 회귀분석처럼 관측값이 서로 독립적이라고 가정하지 않는다는 점입니다. 오히려 관측값 간 시간적 의존성을 직접 모델링합니다. 다만 특정한 반복 계절성이 강하거나 미래에 알려진 외부 정보를 활용해야 한다면 기본 ARIMA만으로 충분하지 않을 수 있습니다.

SECTION 2

ARIMA의 세 가지 차수 p, d, q는 무엇인가요?

ARIMA는 일반적으로 ARIMA(p,d,q)로 표시합니다.

세 숫자는 모형이 어떤 시간적 구조를 반영하는지 결정합니다.

차수이름역할
p자기회귀(AR) 차수과거 관측값의 영향을 몇 시점까지 반영하는지 설정
d차분(I) 차수추세 등으로 인한 비정상성을 줄이기 위해 몇 번 차분하는지 설정
q이동평균(MA) 차수과거 예측오차의 영향을 몇 시점까지 반영하는지 설정

예를 들어 ARIMA(1,1,1)은 시계열을 한 번 차분하고, 차분된 계열에서 한 시점 전 값과 한 시점 전 충격을 활용하는 모형입니다. 여기서 이동평균(MA)은 최근 7일 수하물 처리량을 단순히 평균 내는 이동평균과는 다릅니다. ARIMA의 MA 항은 과거 오차의 선형 결합을 의미합니다.

모형의 형태를 이해하기 위한 단순화된 식은 다음과 같습니다.

φ(B)(1 − B)d yt = c + θ(B) εt

여기서 B는 시차 연산자, φ(B)는 자기회귀 다항식, θ(B)는 이동평균 다항식입니다. 실제 예측에서는 상수항·추세항의 포함 방식도 소프트웨어의 모형 정의에 따라 확인해야 합니다.

SECTION 3

SARIMA는 무엇을 추가하나요?

SARIMA는 ARIMA에 계절적인 자기회귀·차분·이동평균 구조를 추가한 모형입니다.

보통 SARIMA(p,d,q)(P,D,Q,s)로 표현합니다. 앞의 소문자 차수는 비계절적 구조이고, 뒤의 대문자 차수는 계절적 구조입니다. s는 계절 주기를 뜻합니다.

171421ACF171421PACF시차(일)계절 시차 7·14·21
ACF와 PACF

공항의 일별 수하물 처리량에 매주 비슷한 패턴이 있다면 s = 7을 고려할 수 있습니다. 월별 자료에서 매년 패턴이 반복된다면 일반적으로 s = 12를 고려합니다. 다만 일별 자료의 주간 계절성과 연간 계절성이 동시에 중요하다면 단일 계절 주기 SARIMA만으로 둘을 모두 충분히 설명하기 어렵습니다. 달력 변수나 다른 다중계절성 모형을 추가로 검토할 수 있습니다.

예를 들어 SARIMA(1,1,1)(1,0,1,7)은 일반적인 단기 시간 의존성에 더해 7일 간격의 계절적 의존성을 반영합니다. 요일에 따른 평균 차이만으로 설명되는 구조인지, 7일 시차에서 자기상관이 남는 구조인지에 따라 적절한 모형 설정이 달라질 수 있습니다.

SECTION 4

SARIMAX는 어떤 외부 정보를 사용하나요?

SARIMAX는 SARIMA의 시간 의존 구조에 외생 설명변수(exogenous regressors)를 더한 모형입니다.

공항의 수하물 처리량을 예측할 때 항공사의 예정 출발편 수를 알고 있다면, 과거 처리량뿐 아니라 예정 항공편 수도 사용할 수 있습니다. 예를 들어 다음과 같은 모형을 설정할 수 있습니다.

yt = β0 + β1 xt + ut

φ(B)(1 − B)d(1 − Bs)D ut = θ(B) Θ(Bs) εt

8천9천10천70편80편90편1편당 약 +124개예정 출발편 수
예정 출발편과 처리량

여기서 xt는 해당 날짜의 예정 출발편 수이고, ut는 ARIMA 계열의 시간 의존 구조를 따르는 회귀 잔차입니다. 이는 SARIMAX의 한 가지 흔한 회귀-ARIMA 오차 표현이며 구현에 따라 모수화가 다를 수 있습니다.

외생변수를 사용하려면 예측하려는 미래 날짜의 변수값도 알고 있거나 별도로 예측해야 합니다. 예정 항공편 수는 미리 확인할 수 있지만, 실제 출발편 수는 당일 지연·취소로 달라질 수 있습니다. 운영 예측이라면 예측 시점에 실제로 알 수 있는 정보만 사용해야 합니다.

SECTION 5

예제: 공항 일별 수하물 처리량 예측

한 중형 공항이 2024년 1월 1일부터 2025년 12월 31일까지 731일의 일별 수하물 처리량을 기록했다고 가정하겠습니다.

공항은 2026년 첫 주에 필요한 처리 인력을 계획하려고 합니다. 데이터에는 일별 처리 수하물 수와 해당 날짜의 예정 출발편 수, 요일, 공휴일 여부가 기록되어 있습니다.

항목설정
분석 단위일별
전체 관측 기간2024-01-01~2025-12-31, 731일
목표변수일별 처리 수하물 수(개)
주간 계절 주기7일
외생변수 후보예측 시점에 확보된 예정 출발편 수
최종 평가 기간2025-11-06~2025-12-31, 마지막 56일
학습 기간2024-01-01~2025-11-05, 675일
최종 예측 대상2026-01-01~2026-01-07
학습675일2024-01-01 ~ 2025-11-05→홀드아웃56일2025-11-06 ~ 12-31→예측7일2026-01-01 ~ 01-07
기간 분할

이 기간 구분에서 마지막 56일은 최종 성능 평가를 위한 홀드아웃으로 남겨두었습니다. 실제 분석에서는 훈련 구간 안에서 별도의 시계열 교차검증을 수행해 차수를 선택하고, 홀드아웃은 그 선택을 평가하는 데 사용해야 합니다. 홀드아웃에서 가장 좋은 모형을 반복적으로 골라 사용하면 최종 성능을 낙관적으로 판단할 위험이 있습니다.

SECTION 6

분석 전에 어떤 그래프와 진단을 확인하나요?

먼저 일별 수하물 처리량을 시간 순서대로 그려 장기적 상승·하락, 일주일 단위 패턴, 연휴 전후의 급증, 누락된 날짜 등을 확인합니다.

하루 단위의 이상값은 기록 오류일 수도 있지만 항공편 집중이나 특별 행사로 발생한 실제 수요일 수도 있으므로 삭제하기 전에 원인을 살펴야 합니다.

그다음 자기상관함수(ACF)와 편자기상관함수(PACF)를 검토합니다. 7, 14, 21일 시차에서 자기상관이 반복된다면 주간 계절성을 의심할 수 있습니다. 비계절적 추세 때문에 정상성이 의심된다면 ADF 단위근 검정 등의 결과를 참고하고 차분 필요성을 검토합니다.

다만 ADF 검정의 p값 하나로 차분 차수 d를 자동 결정하지는 않습니다. 시계열 그래프, 차분 후 ACF와 변동성, 모형의 잔차 및 예측 성능을 함께 확인해야 하며, 과도한 차분도 피해야 합니다.

SECTION 7

일반 차분과 계절 차분은 무엇이 다른가요?

일반적인 1차 차분은 오늘과 어제의 차이를 구합니다.

Δyt = yt − yt−1

Δ7yt = yt − yt−7

일반 차분 · y(t) − y(t−1)+2천−2천표준편차903개계절 차분 · y(t) − y(t−7)+2천−2천표준편차468개
일반 차분과 계절 차분

반면 7일 주기의 계절 차분은 오늘과 일주일 전 같은 요일의 차이를 구합니다. 예를 들어 월요일 처리량이 8,400개이고 이전 월요일 처리량이 8,100개라면 계절 차분값은 300개입니다. 두 차분은 목적이 다릅니다. 일반 차분은 비계절적인 장기 추세에 대응하고, 계절 차분은 반복되는 계절적 수준 변화를 줄이는 데 사용합니다.

계절성이 존재한다고 반드시 D = 1이 필요한 것은 아닙니다. 계절적 평균 차이를 요일 변수로 표현할 수도 있고, 계절적 AR·MA 항으로 설명할 수도 있습니다. 실제 데이터에 따라 d와 D를 설정해야 합니다.

SECTION 8

세 모형을 어떻게 비교하나요?

이 예제에서는 훈련 데이터에서 세 가지 후보 모형을 검토했다고 가정하겠습니다.

다음 차수는 설명을 위한 후보이며 실제 데이터를 이용해 추정한 최적 차수는 아닙니다.

과거 관측값·오차7일 계절 구조예정 출발편 수ARIMA✓SARIMA✓✓SARIMAX✓✓✓
세 모형이 쓰는 정보
후보모형포함하는 정보
ARIMAARIMA(1,1,1)비계절적 자기상관과 차분
SARIMASARIMA(1,1,1)(1,0,1,7)ARIMA 구조 + 주간 계절성
SARIMAXSARIMAX(1,1,1)(1,0,1,7)SARIMA 구조 + 예정 출발편 수

모형 선택에는 훈련 구간의 AIC·AICc, 잔차 진단, 롤링 오리진 방식의 검증 오차 등을 활용할 수 있습니다. 다만 서로 다른 차분이나 우도 정의를 사용하는 모형의 정보기준을 무조건 직접 비교하는 것은 적절하지 않을 수 있습니다. 또한 예측 성능을 평가할 때는 반드시 같은 평가 기간과 예측 시점을 적용해야 합니다.

외생변수를 사용한 SARIMAX가 언제나 가장 좋은 모형인 것은 아닙니다. 외생변수의 정보가 부족하거나 미래 값의 불확실성이 크면 단순한 SARIMA가 더 안정적일 수 있습니다.

SECTION 9

최종 평가 결과는 어떻게 읽나요?

아래는 마지막 56일을 이용해 각각 한 날짜씩 앞을 예측하는 동일한 조건에서 계산한 성능표입니다.

각 날짜의 예측에는 해당 예측 시점에 이용 가능한 과거 수하물 처리량과 예정 항공편 정보만 사용했습니다.

모형MAE(개)RMSE(개)
ARIMA9101,180
SARIMA690910
SARIMAX570760
6008001,0001,2001,180910760RMSE910690570MAEARIMASARIMASARIMAX
1일 앞 예측 성능

평균절대오차(MAE)는 실제 처리량과 예측값의 차이를 절댓값으로 바꾼 뒤 평균 낸 수치입니다. SARIMAX의 MAE가 570개라는 결과는 해당 평가 방식에서 하루 예측이 실제 처리량과 평균적으로 약 570개 차이 났다는 뜻입니다.

평균제곱근오차(RMSE)는 큰 오차에 더 민감합니다. SARIMAX의 RMSE가 760개로 다른 모형보다 작게 나타났으므로 비교적 큰 예측 실패도 줄어든 것으로 해석할 수 있습니다. 다만 위 표는 1일 앞 예측의 결과이므로, 7일 앞 예측에서도 같은 순위가 유지된다고 단정할 수는 없습니다.

SECTION 10

실제 7일 예측과 예측구간은 어떻게 해석하나요?

다음은 2025년 말까지 관측된 데이터를 사용해 모형을 다시 추정한 뒤, 예정 출발편 수를 투입하여 계산한 2026년 1월 1~7일 예측 예시입니다.

날짜예정 출발편예상 수하물(개)95% 예측구간(개)
1월 1일728,2007,000~9,400
1월 2일788,9007,600~10,200
1월 3일849,7008,300~11,100
1월 4일819,3007,800~10,800
1월 5일758,6007,000~10,200
1월 6일768,7007,000~10,400
1월 7일799,1007,300~10,900
7천8천9천10천11천관측예측 · 95% 구간
2026년 1월 첫 주 예측

1월 3일의 예상 처리량은 9,700개이며, 95% 예측구간은 8,300~11,100개입니다. 이 구간은 모형 가정과 지정한 예정 출발편 수가 적절하다는 조건에서 새로운 일별 관측값의 불확실성을 표현합니다. 매일 실제 처리량이 구간 안에 들어온다는 보장은 아니며, 95%는 모형의 반복적 예측 성질에 관한 기준입니다.

운영자는 평균 예측값으로 기본 인력을 산정하고, 상한에 가까운 수요가 나타났을 때 대응할 수 있는 탄력 인력이나 장비를 별도로 계획할 수 있습니다. 단, 이 구간은 예정 항공편 자체의 변경 가능성을 충분히 포함하지 않을 수 있습니다. 대규모 취소나 임시 증편이 예상된다면 외생변수 시나리오를 별도로 계산하는 것이 좋습니다.

SECTION 11

잔차 진단은 왜 필요한가요?

예측 오차가 작더라도 잔차에 체계적인 패턴이 남아 있다면 모형이 중요한 시간 의존성을 놓쳤을 가능성이 있습니다.

따라서 적합 후에는 잔차 시계열과 ACF, Ljung–Box 검정, 잔차 분산의 변화 등을 확인해야 합니다.

Ljung–Box · SARIMAX 잔차p = 0.28자기상관 없음을 기각하지 못함171421잔차 ACF
잔차 진단

예를 들어 SARIMAX 잔차에 대한 Ljung–Box 검정의 p값이 0.28로 나타났다고 가정하겠습니다. 이는 선택한 시차까지 잔차 자기상관이 없다는 귀무가설을 기각할 충분한 근거가 없다는 뜻입니다. 하지만 잔차가 완전히 독립적이거나 모형이 반드시 옳다는 증거는 아닙니다.

연휴처럼 특정 날짜에서 반복적으로 큰 오차가 발생한다면 공휴일 더미나 이벤트 변수, 별도의 달력 효과를 고려할 수 있습니다. 이때도 미래 날짜에 미리 확인할 수 있는 변수만 예측에 투입해야 하며, 성능을 확인할 때 과거 정보 누수를 피해야 합니다.

SECTION 12

ARIMA·SARIMA·SARIMAX를 사용할 때 주의할 점

예측 구간의 시간 순서를 지켜야 합니다.

시계열 데이터에서는 행을 무작위로 섞어 훈련·평가 데이터를 분할하면 미래 정보가 과거 예측에 들어갈 수 있습니다. 따라서 시간 기준 분할과 롤링 오리진 검증을 사용하는 것이 좋습니다.

외생변수의 미래 이용 가능성을 확인해야 합니다.

SARIMAX의 항공편 변수는 예측 시점에 확보된 운항계획이어야 합니다. 나중에 확정된 실제 운항 실적을 과거 예측에 넣으면 성능이 과대평가됩니다.

계절 주기를 기계적으로 지정하지 않아야 합니다.

일별 데이터라고 해서 항상 7일 주기가 핵심인 것은 아닙니다. 주간·연간·공휴일 효과가 동시에 존재하는지 확인하고 필요하면 다른 모형을 고려해야 합니다.

차분을 많이 한다고 예측력이 좋아지는 것은 아닙니다.

과도한 차분은 유용한 수준 정보를 제거하고 예측을 불안정하게 만들 수 있습니다. 잔차와 예측 오차를 함께 확인해야 합니다.

모형의 계수를 곧바로 인과효과로 해석하지 않아야 합니다.

SARIMAX에서 예정 항공편 수와 수하물 처리량 사이에 양의 관계가 나타나더라도, 이는 예측에 유용한 조건부 관계일 뿐 외생적 인과효과가 입증된 것은 아닙니다.

SECTION 13

ARIMA·SARIMA·SARIMAX와 ETS는 무엇이 다른가요?

ETS는 수준·추세·계절성의 변화를 평활하는 상태공간 모형 계열이며, ARIMA는 자기상관과 차분·오차 구조에 초점을 맞춥니다.

두 접근법 모두 다양한 시계열에 사용할 수 있고, 특정 상황에서는 수학적으로 밀접한 관계를 가집니다.

방법주된 특징고려할 상황
ETS수준·추세·계절성의 평활비교적 안정적인 패턴을 활용하는 예측
ARIMA비계절적 시차 의존 구조자기상관과 차분이 중요한 시계열
SARIMA반복 계절 시차 구조주간·월간 등 일정한 계절 주기
SARIMAX계절적 구조 + 외부 설명변수미래 외생변수값이 확보된 예측

어느 방법이 항상 정확하다고 말할 수는 없습니다. 같은 예측 범위, 같은 데이터 조건으로 평가하고 운영상 필요한 해석 가능성 및 유지관리 부담까지 고려해야 합니다.

SECTION 14

분석 결과는 어떻게 보고하나요?

논문이나 분석 보고서에는 관측 기간과 빈도, 학습·평가 기간, 선정한 차수, 외생변수의 정보 획득 시점, 잔차 진단 및 예측오차를 함께 제시하는 것이 좋습니다.

여러 날을 한꺼번에 예측했다면 예측 지평별 성능도 구분하여 보고해야 합니다.

결과 보고 예시

공항의 일별 수하물 처리량을 예측하기 위해 2024년 1월 1일부터 2025년 12월 31일까지의 731일 자료를 분석하였다. 첫 675일은 모형 학습에, 마지막 56일은 최종 평가에 사용하였다. 일반 ARIMA, 주간 계절성을 반영한 SARIMA, 예정 출발편 수를 외생변수로 추가한 SARIMAX를 비교하였다. 동일한 1일 앞 예측 평가에서 MAE는 각각 910개, 690개, 570개로 나타났으며, SARIMAX의 RMSE는 760개로 세 모형 중 가장 낮았다.

최종 모형을 전체 관측 기간에 다시 적합한 후 2026년 1월 1~7일을 예측한 결과, 1월 3일의 예상 처리량은 9,700개였고 95% 예측구간은 8,300~11,100개였다. 다만 예측 결과는 입력한 예정 출발편 수와 모형의 오차구조가 적절하다는 가정에 의존하므로 운항계획 변경 시 예측값을 갱신할 필요가 있다.

실제 보고서에서는 최종 차수의 선택 근거, 계수 추정 결과, 잔차 검정, 예측구간의 산출 방식 및 예측 시점에 이용 가능한 데이터 범위도 제시해야 합니다.

✓마무리

시간 패턴과 미래에 아는 정보를 구분해 활용해야 합니다

ARIMA는 과거 값과 예측오차의 구조를 통해 미래를 예측하고, SARIMA는 반복되는 계절적 시차 구조를 추가합니다.

SARIMAX는 여기에 외생변수를 반영하여 과거 수하물 처리량만으로 포착하기 어려운 운영계획의 변화를 예측에 활용할 수 있습니다.

세 모형을 선택할 때는 차수만 비교하는 것보다 데이터의 계절 구조, 외생변수의 미래 이용 가능성, 잔차 진단, 예측 지평별 오차를 함께 검토하는 것이 중요합니다. 또한 최종 예측은 하나의 숫자로만 제시하기보다 불확실성을 나타내는 예측구간과 함께 설명하는 것이 실무 의사결정에 유용합니다.

KEY TAKEAWAY

핵심은 가장 복잡한 모형을 선택하는 것이 아니라, 실제 예측 시점에 확보할 수 있는 정보로 미래를 얼마나 안정적으로 설명할 수 있는지 확인하는 데 있습니다.