ADsP NOTE검색

데이터 분석 / 6분 읽기

시계열 분석 기초, 추세와 계절성을 구분하고 예측 검증하기

추세는 장기적인 방향이고 계절성은 알려진 고정 주기에 따른 반복이며, 이동평균과 차분은 서로 다른 계산입니다. 미래를 예측할 때는 과거로 학습하고 뒤 기간으로 검증하며, 전처리에도 예측 시점에 알 수 있었던 정보만 사용합니다.

내일을 맞히려는데 다음 주 자료가 들어 있다면

도서관의 하루 대여량을 예측하는 모델을 만든다고 해보겠습니다. 월요일을 예측하면서 화요일부터 금요일까지의 관측값을 학습에 사용하면 실제 예측 시점보다 많은 정보를 갖게 됩니다. 결과 점수가 좋아도 내일 운영에 사용할 때 같은 조건을 재현할 수 없습니다. 시계열은 값뿐 아니라 관측 순서와 당시 알 수 있었던 정보가 중요합니다.

시계열에서는 가까운 시점의 값이 서로 관련될 수 있습니다. 시간 순서를 지우고 나누면 미래 정보가 섞이거나 평가가 지나치게 쉬워질 수 있습니다. 아래 대여량은 이 차이를 계산하려고 만든 가상 자료입니다.

추세와 계절성은 무엇이 반복되는지로 구별합니다

추세는 장기간에 걸쳐 값이 올라가거나 내려가는 방향입니다. 항상 직선일 필요는 없습니다. 계절성은 요일, 월, 분기처럼 알려진 주기에 맞춰 반복되는 변화입니다. 계절이라는 이름 때문에 봄여름가을겨울만 생각하기 쉽습니다. 매주 토요일 이용량이 늘어나는 패턴도 주간 계절성입니다.

관측 상황먼저 검토할 성분확인할 점
여러 달에 걸쳐 기본 대여량이 증가추세증가가 지속되는지, 수준이 바뀌었는지
매주 토요일 대여량이 반복적으로 증가계절성같은 요일 주기가 반복되는지
일정하지 않은 길이로 장기 상승과 하락이 반복순환 변동고정된 달력 주기와 구별되는지
예고 없는 행사나 오류로 하루 값이 크게 달라짐잔차에서 확인할 변동알려진 사건이나 측정 오류가 있는지

달력에서 다음 반복 시점을 짚을 수 있는가?가 계절성과 순환 변동을 구별하는 단서입니다. 다만 한 번의 토요일 급증만으로 매주 반복되는 계절성을 확인할 수는 없습니다.

시계열 분해에서는 추세와 순환을 묶은 성분, 계절 성분, 나머지 성분으로 나누어 보기도 합니다. 원래 값의 크기가 커져도 계절 변동 폭이 비슷하면 덧셈 모형을, 수준이 커질수록 변동 폭도 비례해서 커지면 곱셈 모형을 검토할 수 있습니다. 0이나 음수가 있는 자료에서는 로그나 곱셈 표현을 적용하기 전에 정의 가능한지 확인해야 합니다.

이동평균은 값을 평탄하게 만들고 차분은 변화를 계산합니다

하루 대여량이 순서대로 8, 10, 12, 14권이라고 하겠습니다. 가장 최근 세 값의 단순 이동평균은 (10+12+14)/3 = 12권입니다. 다음 날 실제 값이 16권으로 관측되면 최근 세 값은 12, 14, 16이 되고 평균은 14권으로 바뀝니다. 창 안의 값이 바뀌며 평균도 이동하기 때문에 이동평균이라고 부릅니다.

이와 달리 1차 차분은 현재 값에서 직전 값을 뺍니다. 10, 12, 15, 18의 1차 차분은 2, 3, 3입니다. 수준 자체보다 증가량을 보는 것입니다. 이동평균은 평균을 내고 차분은 두 시점의 차이를 구합니다. 둘 다 변동을 다루지만 같은 계산은 아닙니다.

추세를 시각적으로 살피는 중심 이동평균은 해당 시점 뒤의 값도 사용할 수 있습니다. 과거를 설명하는 데는 쓸 수 있지만 아직 오지 않은 날을 예측하는 입력값에 그대로 쓰면 미래 정보가 들어갑니다. 분석 목적이 설명인지 예측인지, 그 시점에서 뒤의 값을 알 수 있었는지 함께 점검하세요.

최근 평균을 다음 값의 예측으로 쓰는 것은 간단한 기준 방법입니다. 이 규칙이 어떤 자료에서나 좋은 예측을 만드는 것은 아닙니다. 꾸준히 증가하는 자료라면 평균이 현재 수준보다 늦게 따라갈 수 있습니다. 예측 결과는 마지막 관측값을 그대로 사용하는 단순 예측이나, 같은 계절의 지난 값을 쓰는 계절 단순 예측과도 비교해 봅니다.

차분했다고 정상성이 보장되지는 않습니다

약한 정상성을 설명할 때는 평균과 분산이 시간에 따라 일정하고, 두 시점 사이의 공분산이 시점 자체가 아니라 시차에 의존하는 조건을 봅니다. 매일 같은 값이 나와야 정상이라는 뜻은 아닙니다. 값은 흔들려도 그 흔들림의 통계적 성질이 시간에 따라 크게 달라지지 않는지 살핍니다.

추세가 있는 자료에 차분을 적용하면 정상성에 가까운 형태가 되는 경우가 있습니다. 그렇다고 차분을 한 번 했다는 사실만으로 정상성을 보장할 수는 없습니다. 분산 변화, 계절 구조, 급격한 수준 변화가 남아 있을 수 있습니다. 불필요하게 차분을 반복하면 해석하기 어려운 변동을 만들 수 있어 원자료와 차분 자료를 함께 확인합니다.

월별 자료에서 12개월 전 값과의 차이를 계산하는 계절 차분은 직전 달과의 차이를 계산하는 일반 1차 차분과 다릅니다. 기준 간격을 적지 않고 차분했다는 말만 남기면 같은 계산인지 확인할 수 없습니다. 차분 결과를 원래 단위의 예측으로 되돌릴 때 필요한 마지막 관측값도 보관합니다.

ARIMA의 세 숫자는 창 크기 세 개가 아닙니다

비계절 ARIMA(p,d,q)에서 p는 자기회귀 차수, d는 차분 횟수, q는 이동평균 차수입니다. 자기회귀인 AR은 과거의 값과 현재 값을 연결합니다. I는 Integrated를 뜻하며 차분의 역과정인 누적과 연결된 이름입니다. 모형 표기의 d는 원래 계열을 몇 번 차분하는지 나타냅니다. MA는 현재와 과거의 오차항으로 현재 값을 설명하는 구조입니다.

여기서 MA라는 이름이 앞서 계산한 최근 세 값의 산술평균과 헷갈리기 쉽습니다. 관측값을 평균 낸 것인지, 오차항을 사용하는 모형인지를 질문해 보세요. ARIMA의 q는 단순 이동평균 창에 들어가는 관측값 개수가 아닙니다. ARIMA(1,1,0)은 1차 차분한 계열에 자기회귀 차수 1을 쓰고 이동평균 항은 쓰지 않는 비계절 모형 표기입니다.

자기상관함수 ACF는 시차별 상관을, 편자기상관함수 PACF는 중간 시차의 영향을 통제한 관계를 살피는 데 사용합니다. 특정 정상 모형의 이론적 모양은 차수 후보를 고르는 단서가 되지만, 실제 표본 그래프가 언제나 뚜렷하게 끊어지는 것은 아닙니다. 계절 ARIMA의 추가 차수와 잔차 진단은 별도로 검토할 항목입니다.

미래 구간을 남기고 예측 시점을 옮겨 봅니다

1월부터 6월까지 일별 자료가 있다면 먼저 1~4월로 학습하고 5월을 검증하는 식으로 시간을 나눌 수 있습니다. 최종 설정을 고른 뒤에는 따로 남긴 6월 자료로 평가합니다. 실제 날짜 경계는 자료 길이와 예측하려는 기간에 맞춰 정합니다. 단순히 앞의 80%를 학습에 쓴다는 비율만으로 평가가 적절해지는 것은 아닙니다.

한 번의 구간에 결과가 치우치는지 확인하려면 예측 기준일을 여러 번 옮깁니다. 예를 들어 1~3월로 4월을, 1~4월로 5월을 예측합니다. 각 회차에서 그때까지 관측된 자료만 사용해야 합니다. 결측치 대치와 표준화 기준도 학습 구간에서만 계산하며, 실제 운영이 한 달 뒤를 예측한다면 검증도 같은 예측 거리에 맞춥니다.

마지막에는 시간축, 관측 간격, 빠진 날짜, 예측 거리 네 항목을 기록해 두세요. 특히 기록이 빠진 날과 대여량이 실제 0인 날은 다릅니다. 이를 구분하지 않으면 주간 평균이나 계절 패턴부터 왜곡될 수 있습니다. 빠진 날짜를 실제 0으로 취급할지 판단하기 전에는 누락과 오류를 구분하는 데이터 품질 점검을 참고하세요.

핵심 정리와 실수 점검

핵심 정리

  • 계절성은 알려진 고정 주기에 맞춘 반복이며 순환 변동과 구별합니다.
  • 단순 이동평균, 차분, ARIMA의 MA 항은 서로 다른 개념입니다.
  • 검증할 미래 구간은 남겨 두고 전처리도 예측 당시 사용 가능한 정보로 수행합니다.

놓치기 쉬운 지점

  • 중심 이동평균의 미래 관측값을 실제 예측 입력에 사용하는 실수
  • 차분 한 번이 모든 자료의 정상성을 보장한다고 해석하는 실수
  • ARIMA의 q를 최근 q개 관측값의 산술평균으로 해석하는 실수

확인할 내용

  • 추세와 고정 주기의 반복을 분리해서 설명한다.
  • 차분의 기준 간격과 이동평균의 창을 적는다.
  • 검증 시점 이후 자료가 전처리에 섞이지 않았는지 점검한다.

이해한 내용 확인하기

직접 작성한 학습용 문항입니다. 공식 기출문제가 아닙니다.

Q1. 매일 오후 특정 시간에 이용량이 반복해서 늘어납니다. 사계절과 관계없으므로 계절성이 아닌가요?

생각한 뒤 해설 보기

계절성일 수 있습니다. 계절성은 사계절만이 아니라 일중 또는 주간처럼 알려진 고정 주기에 맞춘 반복도 포함합니다. 반복되는 자료가 충분한지 확인해야 합니다.

Q2. 5, 7, 13의 최근 세 값 이동평균과 1차 차분을 각각 구해 보세요.

생각한 뒤 해설 보기

이동평균은 (5+7+13)/3 = 25/3, 약 8.3333입니다. 1차 차분은 7−5 = 2, 13−7 = 6이므로 2, 6입니다.

Q3. ARIMA(2,1,1)의 마지막 1은 직전 관측값 하나의 평균을 뜻하나요?

생각한 뒤 해설 보기

아닙니다. 마지막 숫자는 MA 차수 q이며 과거 오차항을 사용하는 모형 구조를 나타냅니다. 관측값의 산술평균 창 크기와 다릅니다.

Q4. 1~6월 전체 평균으로 결측값을 채운 뒤 1~4월 학습과 5~6월 평가로 나누었습니다. 시간 순서만 지켰으니 괜찮나요?

생각한 뒤 해설 보기

아닙니다. 전처리 평균에 미래 평가 기간의 정보가 포함됐습니다. 학습 구간에서 대치 기준을 계산하고 이후 구간에 적용해야 합니다.

Q5. 자료가 위아래로 움직이면 정상성이 없는 것인가요?

생각한 뒤 해설 보기

그렇지 않습니다. 값이 움직이는지 자체가 아니라 평균, 분산, 시차별 공분산 같은 통계적 성질이 시간에 따라 일정한지를 확인합니다.

객관식 유형 연습 →

더 궁금한 점

예측 성능이 높은 복잡한 모형부터 고르면 되나요?

마지막 값이나 같은 계절의 지난 값을 사용하는 단순 기준과 먼저 비교해 보세요. 같은 예측 거리와 같은 검증 구간에서 개선되는지 확인해야 합니다.

참고 자료와 확인 범위

함께 다듬는 노트

이해되지 않는 설명이 있었나요?

틀린 계산, 어려운 표현, 다음에 읽고 싶은 주제를 알려주세요.

의견 보내기