이동평균선과 계절성, KDD 4단계 패턴 찾기
1. 이동평균선과 계절성, KDD 4단계 패턴 찾기
데이터를 다듬었으니 이제 패턴을 찾습니다. 시간 순서로 쌓인 숫자에서 찾을 패턴은 세 가지입니다. 여러 해에 걸친 큰 방향인 추세, 매년 같은 달에 반복되는 계절성, 그리고 둘로 설명되지 않는 사건입니다. 추세는 이동평균선으로, 계절성은 계절 지수로, 사건은 앞에서 붙인 연표로 봅니다. 여기서 찾은 패턴이 11장 4절 예측과 11장 5절 대시보드의 재료가 됩니다.
시간: 5:05~5:30, 25분입니다. 이동평균선 10분, 계절 지수 8분, 설·추석 달력 효과 7분입니다. 1.2 이평선 교차는 시간이 밀리면 결과 표만 보여 주고 넘어갑니다. 같은 대화창에서 이어 갑니다. 대화창을 새로 열었다면 ijto-17.csv와 events.csv를 다시 첨부하고 11장 1절의 첫 질문부터 보냅니다.
1.1 이동평균선, 들쭉날쭉함을 걷어 내기
이동평균은 최근 몇 개의 값을 평균 낸 것입니다. 온라인 6장 1절에서 "시험 한 번 망쳤다고 실력이 그 점수인 것은 아니다, 최근 세 번의 평균이 실력에 가깝다"고 비유했습니다. 이동평균을 달마다 계산해 이은 선을 이동평균선, 줄여서 이평선이라고 부릅니다. 주식 차트에서 5일선, 20일선, 120일선이라고 부르는 바로 그 선입니다.
몇 개를 평균 내느냐에 따라 선의 성격이 바뀝니다.
| 이평선 | 무엇을 보여 주나 | 약점 |
|---|---|---|
| 3개월선 | 최근 석 달의 흐름. 빨리 반응한다 | 계절의 오르내림이 그대로 남는다 |
| 12개월선 | 최근 1년의 평균. 느리게 반응한다 | 급변을 늦게 알아챈다 |
12개월선에는 특별한 성질이 하나 있습니다. 열두 달을 평균 내면 1월부터 12월까지 모든 달이 꼭 한 번씩 들어가므로 성수기와 비수기가 서로 상쇄되어 계절성이 사라집니다. 남는 것은 추세와 사건뿐입니다. 월별 데이터에서 12개월선이 "진짜 흐름"을 보는 기본 도구인 이유입니다.
total로 3개월 이동평균과 12개월 이동평균(각각 그 달까지의 최근 3개월, 12개월 평균)을 구하고,
월별 입도객(옅은 회색), 3개월선, 12개월선(진하고 굵게)을 한 그래프에 그려줘. 단위는 만 명.
events.csv에서 2020-02~2022-04는 '코로나19' 구간으로 옅게 칠하고,
2015-05 메르스, 2017-03 단체관광 금지, 2024-12 제주항공 참사 자리에 세로 점선과 이름을 붙여줘.
그리고 12개월선 값을 2017-02, 2019-12, 2021-01, 2025-08, 2026-08 다섯 시점만 표로 보여줘.
이렇게 나와야 합니다. 회색 월별 선은 매년 톱니처럼 오르내려 흐름을 읽기 어렵지만, 진한 12개월선만 따라가면 이야기가 한 줄로 정리됩니다.
| 시점 | 12개월선(월평균) | 읽기 |
|---|---|---|
| 2017년 2월 | 133.6만 명 | 지금까지의 꼭대기. 연 1,600만 명 수준 |
| 2019년 12월 | 127.4만 명 | 단체관광 금지 뒤 외국인이 빠졌지만 내국인이 메움 |
| 2021년 1월 | 78.8만 명 | 바닥. 코로나19로 꼭대기의 60% 아래 |
| 2025년 8월 | 111.6만 명 | 회복했다가 2025년 초 다시 주춤 |
| 2026년 8월 | 118.6만 명 | 1년 사이 7만 명 올라옴. 올해는 오르는 흐름 |
12개월선의 기울기를 보는 방법은 간단합니다. 지금 값과 1년 전 값을 비교하면 됩니다. 2026년 8월 118.6만은 2025년 8월 111.6만보다 높으므로 추세는 위를 향합니다. 11장 2절에서 구한 "1~8월 합계 +4.1%"와 같은 이야기를 다른 방법으로 확인한 셈입니다. 검증 3질문의 "다른 방법으로도 같은가"입니다.

위 프롬프트로 받아야 할 그래프를 같은 데이터로 그린 것입니다. 옅은 회색이 월별 입도객, 옅은 파랑이 3개월선, 굵은 파랑이 12개월선입니다. 회색 선은 해마다 여름과 가을에 치솟고 겨울에 꺼지는 톱니라 어느 해가 좋았는지 한눈에 비교하기 어렵습니다. 굵은 선만 따라가면 2017년 2월 꼭대기(133.6만), 단체관광 금지 뒤 완만한 내림, 코로나19 구간(회색 칠)의 급락과 2021년 1월 바닥(78.8만), 2022년의 회복, 2024년 12월 참사 뒤의 짧은 주춤, 2026년의 오름이 이야기 순서대로 보입니다. 3개월선은 그 사이에서 여전히 오르내리는데, 1.2에서 이 오르내림이 어떤 착각을 부르는지 봅니다. AI의 그래프와 맞춰 볼 때는 굵은 선이 2013년 12월부터 시작하는지 확인하세요. 열두 달이 모여야 첫 값이 나오므로 2013년 1~11월에는 12개월선이 없어야 맞습니다.
AI마다 그래프가 조금씩 다릅니다. 색이나 글자 위치는 달라도 괜찮습니다. 확인할 것은 표의 숫자입니다. 12개월선 값이 교재와 다르면 "12개월 이동평균을 그 달 포함 앞 12개월 평균으로 계산했는지" 물어봅니다. 가운데를 기준으로 평균 내는 방식(중심 이동평균)을 쓰면 값이 몇 달씩 밀립니다.
1.2 이평선 교차, 주식 감각을 조심할 것
주식에서는 짧은 이평선이 긴 이평선을 아래에서 위로 뚫고 올라가면 골든크로스, 위에서 아래로 내려가면 데드크로스라고 부르며 흐름이 바뀌는 신호로 봅니다. 입도객에도 그대로 써 볼까요?
2023년부터 지금까지 3개월선이 12개월선을 위로 뚫은 달(골든크로스)과 아래로 내려간 달(데드크로스)을 모두 표로 보여줘.
이렇게 나와야 합니다.
| 골든크로스 | 2023-06 | 2024-05 | 2025-05 | 2026-07 |
|---|---|---|---|---|
| 데드크로스 | 2023-12 | 2024-11 | 2026-01 |
5~6월에 골든크로스, 11~1월에 데드크로스가 해마다 번갈아 나옵니다. 흐름이 매년 두 번씩 바뀐 것이 아닙니다. 3개월선에 남아 있는 계절성이 여름에는 12개월선 위로, 겨울에는 아래로 오르내렸을 뿐입니다. 주식에는 뚜렷한 계절이 없지만 관광에는 있습니다. 계절이 강한 데이터에서는 짧은 이평선의 교차가 계절을 흐름으로 착각하게 만듭니다. 입도객의 흐름은 교차가 아니라 12개월선의 기울기와 YoY로 봅니다.
AI에게 "골든크로스가 났으니 상승 신호야?"라고 물으면 그렇다고 맞장구치는 경우가 많습니다. 이 함정을 아는 것은 사람의 몫입니다.
1.3 계절성, 계절 지수 만들기
이번에는 12개월선이 지워 버린 계절성을 따로 꺼냅니다. 계절 지수는 "그 달이 1년 평균의 몇 배인가"입니다. 1.0이면 평균인 달, 1.1이면 평균보다 10% 많은 달, 0.85면 15% 적은 달입니다.
계절 지수를 만들 때 어떤 해를 쓸지가 중요합니다. 세 구간으로 나눠 비교합니다.
total로 월별 계절 지수(그 달 평균 ÷ 그 구간 전체 월평균)를 구해줘.
구간은 2017~2019년, 2020~2022년, 2023~2025년 세 개로 나눠서 표로 보여주고, 세 구간을 한 선그래프에 겹쳐 그려줘.
구간마다 모양이 다른 달이 있으면 짚어줘.
이렇게 나와야 합니다.
| 월 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2017~2019 | 0.93 | 0.86 | 0.92 | 1.06 | 1.06 | 1.05 | 1.04 | 1.09 | 0.99 | 1.08 | 0.98 | 0.94 |
| 2020~2022 | 0.96 | 0.81 | 0.75 | 0.93 | 1.07 | 1.09 | 1.12 | 1.13 | 0.88 | 1.19 | 1.16 | 0.91 |
| 2023~2025 | 0.90 | 0.85 | 0.90 | 1.03 | 1.08 | 1.04 | 1.07 | 1.11 | 1.01 | 1.10 | 0.97 | 0.93 |
코로나19 전과 뒤의 두 줄은 거의 겹칩니다. 2월이 가장 낮고(0.85 안팎), 8월과 10월이 가장 높으며(1.1 안팎), 봄(4~6월)은 평균보다 조금 높습니다. 7년이 지나도 같은 모양이면 우연이 아니라 제주의 계절성입니다.

표의 세 줄을 겹친 그래프입니다. 가로선 1.0이 그 구간의 월평균이고, 위로 올라간 달이 붐비는 달입니다. 파란 선(2017~2019년)과 검은 선(2023~2025년)은 2월에 함께 바닥을 찍고, 4~5월에 평균 위로 올라섰다가, 9월에 한 번 내려앉고, 10월에 다시 오르는 같은 길을 갑니다. 주황 점선(2020~2022년)만 3월에 0.75로 깊게 꺼지고 가을에 높이 튑니다. 그림으로 보면 "이 구간은 다른 두 구간과 같은 계절을 대표하지 않는다"는 판단이 숫자 표보다 빨리 섭니다.
가운데 줄만 다릅니다. 3월이 0.75로 푹 꺼지고 11월이 1.16으로 튀어 있습니다. 2020년 3월에 코로나19가 막 퍼졌고, 해외여행이 막힌 사람들이 가을에 제주로 몰렸다는 해석이 많습니다. 이 줄은 제주의 계절이 아니라 사건의 흔적입니다.
그래서 KDD 2단계로 한 번 되돌아갑니다. 계절 지수와 예측에 쓰는 해에서 사건이 컸던 2020~2022년은 뺍니다. 빼는 이유를 사건 연표로 설명할 수 있어야 합니다. "그냥 이상해서 뺐다"가 아니라 "코로나19로 무사증 입국이 중단되고 거리두기가 시행된 기간이라 평소의 계절을 대표하지 않는다"라고 말할 수 있으면 근거 있는 전처리입니다.
1.4 달력 효과, 설과 추석은 해마다 옮겨 다닌다
계절성이 매년 같다고 했지만, 매년 같지 않은 것이 하나 있습니다. 설과 추석입니다. 음력이라 양력 날짜가 해마다 바뀝니다. 설은 1월에 들기도 2월에 들기도 하고, 추석은 9월에 들기도 10월에 들기도 합니다. 연휴가 든 달은 내국인이 많아지므로, 같은 달끼리 비교하는 YoY에서도 연휴가 옮겨 간 만큼 숫자가 튑니다. 이것을 달력 효과라고 합니다. 사건 연표에는 2013년부터의 설·추석 연휴가 kind가 '연휴'인 행으로 들어 있습니다.
events.csv에서 kind가 '연휴'인 행 중 2024~2026년 것을 보여주고,
2024~2026년 1월, 2월, 9월, 10월의 내국인(domestic) 입도객과 내국인 YoY를 연도별 표로 정리해줘.
연휴가 어느 달에 들었는지와 YoY를 나란히 보고 무엇이 보이는지 설명해줘.
이렇게 나와야 합니다. (내국인 기준)
| 연도 | 설 | 추석 | 1월 YoY | 2월 YoY | 9월 YoY | 10월 YoY |
|---|---|---|---|---|---|---|
| 2024 | 2월 9~11일 | 9월 16~18일 | -6.2% | -13.2% | -7.3% | -6.3% |
| 2025 | 1월 25~30일 | 10월 3~9일 | -9.4% | -20.7% | +0.6% | +10.0% |
| 2026 | 2월 16~18일 | 9월 24~26일 | +14.0% | +24.3% | ? | ? |
2025년 10월 내국인은 작년보다 10.0% 많은데 9월은 거의 그대로입니다. 2024년에는 추석이 9월이었고 2025년에는 10월이었으며, 그것도 개천절부터 한글날까지 이어진 7일 연휴였습니다. 연휴가 9월에서 10월로 옮겨 간 만큼 10월이 부풀었습니다. 9월과 10월을 합쳐 보면 2025년은 2024년보다 5.5% 많아, 10월만 볼 때(+10.0%)보다 차분한 숫자가 됩니다. 연휴가 옮겨 다니는 달은 두 달을 합쳐서 비교하는 것이 달력 효과를 걷어 내는 가장 쉬운 방법입니다.
1~2월도 같은 방법으로 합쳐 봅니다.
1월과 2월 내국인을 합쳐서 2023~2026년 해마다 비교하고, 전년 대비 증감률을 알려줘.
2025년 1~2월이 줄었다면 events.csv에서 그 직전(2024년 12월 전후)에 어떤 사건이 있었는지 찾아줘.
이렇게 나와야 합니다.
| 1~2월 내국인 | 2023 | 2024 | 2025 | 2026 |
|---|---|---|---|---|
| 합계 | 205.8만 | 185.7만 | 158.0만 | 187.6만 |
| 전년 대비 | -9.8% | -14.9% | +18.7% |
2025년 1~2월 내국인은 두 달을 합쳐도 2024년보다 14.9% 적습니다. 설이 2월에서 1월로 옮겨 갔을 뿐이라면 두 달을 합쳤을 때 차이가 사라져야 하는데, 그렇지 않습니다. 달력으로 설명되지 않는 무언가가 남았습니다. 사건 연표를 보면 바로 앞에 2024년 12월 3일 비상계엄 선포와 12월 29일 제주항공 2216편 참사(2025년 1월 4일까지 국가애도기간)가 있습니다. 항공 사고 직후 여행 심리가 얼어붙었다는 가설을 세울 수 있습니다. 가설이지 결론은 아닙니다. 확인하려면 같은 시기 다른 국내 관광지의 방문객이나 데이터허브의 제주 항공 여객(ijto-50)을 함께 봐야 합니다.
그리고 2026년 1~2월은 작년보다 18.7% 많습니다. 낮았던 2025년과 비교했으니 기저효과가 섞여 있습니다. 2024년과 비교하면 거의 같은 수준(185.7만 → 187.6만)입니다. 증가율 하나만 보면 "올해 초 내국인 폭증"이지만, 두 해 전과 나란히 놓으면 "작년의 움푹 꺼진 자리가 원래대로 돌아왔다"입니다.
진행자 메모: 2026년 추석은 9월 24~26일입니다. 작년에는 10월이었으니 올해는 반대로 9월이 부풀고 10월이 줄어 보일 것이라고 예고해 둡니다. 11장 4절에서 9~12월을 예측할 때 이 한 줄이 예측을 고치는 '사람의 맥락'으로 다시 나옵니다.
1.5 직접 해보기
- 1.1의 그래프를 외국인(
foreign)으로 바꿔 달라고 합니다. 외국인의 12개월선은 지금 2017년 꼭대기의 몇 % 수준까지 돌아왔나요? - 1.3의 계절 지수를 내국인과 외국인으로 나눠 달라고 합니다. 외국인의 성수기는 내국인과 같은 달인가요?
- 사건 연표에서 2017년 추석 연휴(10일)를 찾아 달라고 하고, 2017년 10월 내국인 YoY를 확인합니다. 긴 연휴가 숫자에 흔적을 남겼나요?
- AI에게 "2025년 초 내국인 감소가 제주항공 참사 때문이라고 단정해도 돼?"라고 물어봅니다. AI가 단정한다면 9장 4절의 상관과 인과로 반박해 봅니다.
마지막 수정