예측 검증과 백테스트, KDD 4~5단계
1. 예측 검증과 백테스트, KDD 4~5단계
드디어 오늘의 질문에 답할 차례입니다. "올해 9~12월 제주에 몇 명이 올까? 그리고 그 예측을 믿어도 될까?" 앞부분은 예측이고 뒷부분은 검증입니다. "9~12월을 예측해줘" 한 줄이면 AI는 그럴듯한 숫자를 바로 내놓습니다. 그 숫자를 믿어도 되는지는 백테스트로 채점해 봐야 압니다. 여기서는 예측 방법 네 가지에게 실제 데이터로 시험을 네 번 치르게 하고, 그 성적표를 보고 마지막 예측을 고릅니다.
시간: 5:30~6:00, 30분입니다. 개념 5분, 시험 네 번 15분, 남은 넉 달 예측 10분입니다. 시험이 밀리면 1.5(2020년)는 결과 표만 보여 주고 넘어갑니다. 온라인 6장 3절을 들은 분에게는 같은 방법을 3년치 연습 데이터 대신 14년치 실제 데이터로 다시 하는 시간입니다.
1.1 개념 정리, 예측 네 가지와 백테스트
예측 기법은 수십 가지지만 오늘은 네 가지만 씁니다. 모두 엑셀로도 할 수 있는 단순한 방법이고, 실무 예측의 상당수가 이 수준에서 이루어집니다.
| 방법 | 계산 | 무엇을 믿나 | 무엇을 놓치나 |
|---|---|---|---|
| ① 평균 그대로 | 최근 12개월 평균(12개월선의 마지막 값)을 그대로 | 최근 1년의 수준 | 계절도 추세도 모름 |
| ② 단순 추세 | 학습 기간에 직선을 맞춰 연장 | 큰 방향 | 성수기와 비수기를 모름 |
| ③ 작년 같은 달 | 작년 같은 달 값을 그대로 | 계절성 | 올해의 성장이나 감소를 모름 |
| ④ 계절 × 성장률 | 작년 같은 달 × (작년 합계 ÷ 재작년 합계) | 계절성과 성장 | 성장률이 튀면 같이 튐 |
①은 11장 3절의 12개월선, ②는 온라인 6장 2절의 추세선, ④는 온라인 6장 3절에서 오차를 4.4%로 줄였던 방법입니다.
백테스트는 예측의 모의고사입니다. 과거의 일부를 '아직 모르는 척' 가리고 예측한 뒤, 가렸던 실제값과 비교해 몇 점인지 매깁니다. 세 단계로 합니다.
채점 기준은 MAPE(평균 절대 백분율 오차), 곧 "평균적으로 몇 퍼센트 빗나갔나"입니다. 온라인 6장 3절의 기준표를 그대로 씁니다.
| MAPE | 해석 |
|---|---|
| 10% 미만 | 꽤 정확합니다. 인력·재고 계획에 써도 됩니다 |
| 10~20% | 방향은 맞지만 정밀한 수치로는 부족합니다. 범위로 말합니다 |
| 20% 초과 | 개선이 필요합니다 |
1.2 시험 규칙을 AI에게 알려 주기
AI에게 "백테스트해줘"라고만 하면 AI마다 다른 방법, 다른 기간으로 계산해 결과를 비교할 수 없습니다. 그래서 규칙을 한 번 정확히 알려 주고, 뒤에서는 "시험: ○○"이라고만 부릅니다. 9장 5절 좋은 질문 공식의 '요청'을 아주 구체적으로 쓰는 연습입니다.
지금부터 예측 '시험'을 여러 번 할 거야. 규칙은 이래.
- 열(total, domestic, foreign 중 하나), 학습 기간(○년~○년), 시험 연도를 내가 정해 줄게.
- 학습 기간 데이터만 보고 시험 연도의 각 달을 아래 네 방법으로 예측해.
① 평균: 학습 기간 마지막 12개월의 평균을 모든 달에 똑같이
② 추세: 학습 기간 월별 값에 직선(최소제곱)을 맞춰 시험 연도로 연장
③ 작년: 시험 연도 바로 전해의 같은 달 값
④ 계절×성장: ③ × (시험 연도 전해 합계 ÷ 그 전해 합계)
- 실제값과 비교해 방법별 MAPE(%)를 소수 첫째 자리까지 구해.
- 결과는 '달, 실제, ①, ②, ③, ④' 표(만 명)와 MAPE 한 줄로 보여주고, 성장률도 같이 알려줘.
규칙을 이해했으면 "준비됐어"라고만 답해줘.
1.3 첫 번째 시험, 2025년을 맞혀 보기
2023~2024년 두 해로 배워서 2025년 열두 달을 예측합니다. 2020~2022년은 11장 3절에서 정한 대로 학습에서 뺍니다.
시험: total, 학습 2023~2024년, 시험 연도 2025년.
실제와 네 예측을 한 선그래프에 겹쳐서도 그려줘.
이렇게 나와야 합니다. (성장률 1.030)
| 방법 | ①평균 | ②추세 | ③작년 | ④계절×성장 |
|---|---|---|---|---|
| MAPE | 11.7% | 11.1% | 8.6% | 8.8% |
계절을 아는 ③과 ④가 10% 아래로 들어오고, 계절을 모르는 ①과 ②는 10%를 넘습니다. 온라인 6장 3절의 쇼핑몰 연습 데이터에서 본 결론이 실제 제주 데이터에서도 그대로 나옵니다. 계절이 뚜렷한 데이터는 계절을 아는 방법이 이깁니다.
그래프에서 숫자보다 먼저 볼 것이 있습니다. 어느 달이 왜 빗나갔나입니다.
- 1~3월: 네 방법 모두 실제보다 높게 예측했습니다. 2월은 ④가 104만, 실제는 83만입니다. 11장 3절에서 본 2025년 초의 움푹 꺼진 자리입니다. 사건 연표의 비상계엄과 제주항공 참사가 바로 앞에 있습니다. 과거의 패턴만 배운 예측은 그해에 처음 일어난 사건을 알 수 없습니다.
- 10월: ③과 ④ 모두 실제(135만)보다 10만 명 넘게 낮게 예측했습니다. 2024년 10월에는 추석이 없었고 2025년 10월에는 7일짜리 추석 연휴가 있었습니다. 달력 효과입니다.
오차의 원인을 사건과 달력으로 설명할 수 있다는 것, 이것이 사건 연표를 함께 쓰는 이유입니다.
MAPE가 교재와 다르게 나오면 "②의 직선을 학습 기간 몇 개월로 맞췄는지, ④의 성장률이 몇인지 알려줘"라고 묻습니다. 대부분 학습 기간을 다르게 잡았거나 2026년까지 포함한 경우입니다. 규칙을 다시 붙여 넣고 시험을 다시 시키면 됩니다.
1.4 두 번째 시험, 외국인과 기저효과
같은 시험을 외국인으로 봅니다.
시험: foreign, 학습 2023~2024년, 시험 연도 2025년.
이렇게 나와야 합니다. (성장률 2.687)
| 방법 | ①평균 | ②추세 | ③작년 | ④계절×성장 |
|---|---|---|---|---|
| MAPE | 25.1% | 38.2% | 14.9% | 130.8% |
전체에서 1등이었던 ④가 외국인에서는 130.8%, 예측이 실제의 두 배를 넘었습니다. 성장률을 보면 이유가 보입니다. 2024년 외국인 합계를 2023년으로 나눈 성장률이 2.687, 거의 2.7배입니다. 2023년은 코로나19 뒤 외국인이 막 돌아오기 시작한 해라 아주 낮았고, 그 낮은 해와 비교하니 성장률이 부풀었습니다. 1교시에 배운 기저효과입니다. ④는 이 부푼 성장률을 2025년에 그대로 곱해 "올해도 2.7배"라고 예측한 것입니다.
같은 방법이 전체에서는 1등, 외국인에서는 꼴찌입니다. 어떤 방법이 좋은지는 데이터마다 시험해 봐야 압니다. 그리고 성장률을 곱하는 방법을 쓸 때는 그 성장률이 기저효과로 부풀지 않았는지 먼저 봅니다.
1.5 세 번째 시험, 사건이 예측을 깨뜨릴 때
이번에는 2018~2019년으로 배워서 2020년을 예측해 봅니다. 2019년 말에 이 예측을 했다면 어땠을까요?
시험: total, 학습 2018~2019년, 시험 연도 2020년.
이렇게 나와야 합니다.
| 방법 | ①평균 | ②추세 | ③작년 | ④계절×성장 |
|---|---|---|---|---|
| MAPE | 63.8% | 77.5% | 63.7% | 73.7% |
네 방법 모두 60~80% 빗나갔습니다. 방법이 나빠서가 아닙니다. 2019년까지의 어떤 숫자에도 코로나19는 들어 있지 않았습니다. 2020년 3월 실제는 48만 명인데 예측은 116만~135만 명입니다. 외국인으로 같은 시험을 보면 오차가 수천 %까지 올라갑니다.
여기서 백테스트의 한계와 쓸모가 함께 드러납니다. 백테스트는 "평소라면 이 정도 맞는다"를 알려 줄 뿐, 처음 보는 사건까지 막아 주지는 못합니다. 그래서 실무에서는 세 가지를 같이 합니다.
| 할 일 | 이유 |
|---|---|
| 예측을 범위로 말하기 | 평소의 오차만큼은 미리 각오한다 |
| 사건 연표를 계속 갱신하기 | 큰 사건이 생기면 그 달부터 예측을 다시 본다 |
| 시나리오를 같이 내기 | "사건이 없으면 ○명, 비슷한 사건이 생기면 ○명"으로 대비한다 |
1.6 네 번째 시험, 올해 1~8월 채점
마지막 시험은 진짜 올해입니다. 2024~2025년으로 배워서 2026년 1~8월을 예측하고, 이미 나온 실제값으로 채점합니다.
시험: total, 학습 2024~2025년, 시험 연도 2026년. 단, 시험은 1~8월만 채점해줘.
그리고 지금까지 네 번의 시험 MAPE를 한 표로 모아줘. 행은 시험, 열은 네 방법.
이렇게 나와야 합니다.
| 시험 | ①평균 | ②추세 | ③작년 | ④계절×성장 | 교훈 |
|---|---|---|---|---|---|
| 2025년 전체 | 11.7% | 11.1% | 8.6% | 8.8% | 계절을 아는 방법이 이긴다 |
| 2025년 외국인 | 25.1% | 38.2% | 14.9% | 130.8% | 부푼 성장률은 기저효과 |
| 2020년 전체 | 63.8% | 77.5% | 63.7% | 73.7% | 처음 보는 사건은 못 막는다 |
| 2026년 1~8월 | 6.5% | 7.3% | 8.2% | 8.3% | 작년에 사건이 있으면 작년 따라 하기가 진다 |
이번에는 ①평균이 1등입니다. 2025년 초가 유난히 낮았기 때문에 그 해를 그대로 따라 한 ③과 ④가 2026년 1~2월을 크게 낮게 잡았습니다(2월 실제 104만, ③은 83만). 반면 ①은 1년 평균을 쓰니 2025년 초의 움푹 꺼진 자리에 덜 휘둘렸습니다.
모든 시험에서 1등인 방법은 없습니다. 그래서 예측은 한 방법의 숫자 하나가 아니라, 여러 방법의 결과와 그 오차를 같이 보고 사람이 고르는 일입니다. 이것이 KDD 5단계, 평가입니다. 이 표는 11장 5절 대시보드에 그대로 들어갑니다.
진행자 메모: 네 번의 시험 표를 화면에 띄우고 "여러분 회사라면 어떤 방법을 쓰겠습니까?"를 묻습니다. 정답은 없고, "작년에 큰일이 있었는지", "성장률이 기저효과로 부풀지 않았는지"를 먼저 따지는 답이 나오면 충분합니다.
1.7 남은 넉 달 예측, 숫자 하나가 아니라 범위로
이제 오늘의 질문에 답합니다. 2026년 9~12월 예측은 ④를 조금 고친 방법으로 합니다. 성장률을 "작년 ÷ 재작년" 대신 "올해 1~8월 ÷ 작년 1~8월"로 씁니다. 11장 2절에서 구한 1.041입니다. 올해 실제로 나온 여덟 달의 흐름을 반영하므로, 2025년 초의 사건이나 2023년의 기저효과에 덜 휘둘립니다. 같은 방법을 과거 세 해(2023~2025년)의 9~12월에 적용해 보면 MAPE가 4.9%, 4.5%, 13.2%로 평균 약 7.5%입니다. 이 오차를 넉넉히 반영해 위아래 8%를 범위로 붙입니다.
2026년 9~12월 total을 예측해줘.
방법: 2025년 같은 달 값 × (2026년 1~8월 합계 ÷ 2025년 1~8월 합계).
월별 예측과 위아래 8% 범위를 만 명 단위 표로 보여주고,
2026년 1~8월 실제 합계에 넉 달 예측을 더한 2026년 연간 예상(범위 포함)도 알려줘.
이렇게 나와야 합니다. (성장률 1.041)
| 월 | 2025년 실제 | 2026년 예측 | 범위(±8%) |
|---|---|---|---|
| 9월 | 118.2만 | 123.0만 | 113만 ~ 133만 |
| 10월 | 134.8만 | 140.3만 | 129만 ~ 152만 |
| 11월 | 120.4만 | 125.3만 | 115만 ~ 135만 |
| 12월 | 114.4만 | 119.1만 | 110만 ~ 129만 |
1~8월 실제 935만 명에 넉 달 예측(약 508만 명)을 더하면 2026년 한 해는 약 1,443만 명(1,402만~1,484만)입니다. 2025년 1,386만 명보다 많고, 2016년 꼭대기 1,585만 명에는 아직 못 미칩니다.
사람의 맥락으로 한 번 더 고치기
AI의 계산은 여기까지입니다. 이제 11장 3절의 진행자 메모를 꺼냅니다. 2025년 추석은 10월, 2026년 추석은 9월(24~26일)입니다. 위 예측은 2025년의 10월을 그대로 본떴으니, 7일 연휴가 든 10월을 올해도 연휴가 있는 것처럼 높게 잡았습니다. 올해는 연휴가 9월로 옮겨 가므로 9월은 위 예측보다 많고, 10월은 적을 가능성이 큽니다.
고치는 방법은 11장 3절에서 배운 대로 두 달을 합쳐서 보는 것입니다. 9~10월 합계는 그대로 두고, 나누는 비율만 추석이 9월에 있었던 해를 따릅니다.
2026년 추석은 9월 24~26일이고, 2025년 추석은 10월이었어.
방금 예측한 9~10월 합계는 그대로 두고, 추석이 9월이던 2024년의 9월·10월 비율로 다시 나눠줘.
고치기 전과 후를 나란히 보여줘.
이렇게 나와야 합니다.
| 9월 | 10월 | 9~10월 합계 | |
|---|---|---|---|
| 고치기 전 | 123.0만 | 140.3만 | 263.3만 |
| 고친 뒤 (2024년 9월 비중 48.7%) | 128.3만 | 135.1만 | 263.3만 |
합계는 같지만 두 달의 모양이 바뀌었습니다. 숙박업이나 렌터카 회사라면 이 5만 명 차이가 인력 배치를 바꿉니다. AI는 2026년 추석이 언제인지 알려 주지 않으면 반영하지 않습니다. 11장 2절에서 "왜는 데이터 바깥에 있다"고 했던 것처럼, 데이터 바깥의 맥락은 사람이 프롬프트에 넣어야 합니다.

1.7의 두 표를 하나로 그린 그림이고, 11장 5절 대시보드의 예측 차트가 될 모양입니다. 회색 선이 2025년 실제, 검은 선이 2026년 1~8월 실제, 세로선 오른쪽의 파란 점선이 추석을 반영해 고친 9~12월 예측, 그 둘레의 옅은 띠가 위아래 8% 범위입니다. 검은 선이 1~3월에 회색 선보다 한참 위에 있는 것은 2025년 초가 유난히 낮았기 때문이고(11장 3절), 4월부터는 두 선이 엇비슷하게 갑니다. 예측 점선이 회색 선보다 조금 높은 것은 1.041을 곱했기 때문이고, 9월이 회색 선보다 크게 높은 것은 추석이 9월로 옮겨 온 만큼 고쳤기 때문입니다. 띠의 폭은 과거 9~12월 백테스트 오차를 넉넉히 잡은 것이라, 실제 9월 값이 이 띠 안(약 118만~139만 명)에 들어오는지가 한 달 뒤의 첫 채점입니다.
이 예측의 정답은 곧 나옵니다. 제주관광공사가 9월 통계를 올리면 데이터허브에 자동으로 들어옵니다. 그때 새 CSV를 받아 "2026년 9월 실제와 내 예측 128.3만을 비교해줘"라고 하면 채점이 끝납니다. 예측을 저장해 두었다가 한 달 뒤에 채점해 보는 것, 그것이 실무의 백테스트입니다.
1.8 직접 해보기
- "시험: domestic, 학습 2023~2024년, 시험 연도 2025년"을 보내 봅니다. 어떤 방법이 1등인가요? 내국인의 2025년 성장률이 1보다 작은 이유는 무엇일까요?
- "시험: total, 학습 2017~2019년, 시험 연도 2023년"처럼 코로나19 전 세 해로 배워 2023년을 예측해 봅니다. 학습 기간과 시험 연도 사이에 큰 사건이 끼어 있으면 어떤 일이 생기나요?
- 1.7의 예측을 외국인으로 바꿔 해 봅니다. 사건 연표의 '중국 단체관광객 한국 무비자 입국 시행'(2025년 9월~)과 '중국, 자국민에 일본 여행 자제 권고'(2025년 11월)는 외국인 예측을 위로 고칠 근거가 될까요, 이미 1~8월 성장률에 들어 있을까요? AI와 토론해 봅니다.
- "9~12월 예측이 범위로 113만~152만이면 너무 넓어서 쓸모없다"는 말에 두 문장으로 답해 봅니다. 범위를 좁히려면 무엇이 더 필요할까요?
마지막 수정