[CAST 통계 스터디] 7강. 예측 정확도와 오차 측정 이해하기
1. 학습 목적
CAST Express 시뮬레이션의 목적은 단순히 결과값을 만드는 것이 아니라, 실제 공항 운영 상황을 얼마나 정확하게 재현하고 예측할 수 있는지 검증하는 것이다.
모형설계서에서는 시뮬레이션 결과를 실제 공항의 통계 데이터와 비교하여 모델의 현실성을 검증하고, 차이가 발생하면 여객 도착분포나 처리속도 등의 파라미터를 조정하는 Calibration 과정을 수행하도록 되어 있다. 허용 오차범위의 예시로 ±5~10%도 제시하고 있다. :chatgpt-content-reference{index="1"}
이번 강의에서는 이러한 Validation을 정량적으로 수행하기 위해 다음 개념을 학습한다.
- Error
- Absolute Error
- MAE
- RMSE
- Percentage Error
- MAPE
- Bias
- Over-prediction / Under-prediction
- Peak Error
- Peak Time Error
※ MAE, RMSE, MAPE, Bias 등의 구체적인 통계지표는 현재 모형설계서에 직접 명시되어 있지는 않다. 본 강의에서는 설계서의 Validation/Calibration을 실무적으로 정량화하기 위한 일반적인 통계 기법으로 학습한다.
2. Error 오차
오차는:
실제값과 예측값의 차이
이다.
이번 학습에서는 다음과 같이 정의한다.
Error = Actual - Predicted
예를 들어:
실제 대기시간 = 12분
CAST 예측 = 10분
이면:
Error = 12 - 10 = +2분
이다.
즉 CAST가 실제보다 2분 낮게 예측했다.
3. 오차의 방향
오차의 부호를 보면 모델이 어느 방향으로 틀렸는지 알 수 있다.
Error > 0
실제값 > 예측값
→ Under-prediction, 과소예측
예:
실제 = 15분
CAST = 10분
Error = +5분
즉 실제 혼잡보다 낮게 예측했다.
Error < 0
실제값 < 예측값
→ Over-prediction, 과대예측
예:
실제 = 8분
CAST = 12분
Error = -4분
즉 실제보다 혼잡을 크게 예측했다.
4. Error 평균만 보면 생기는 문제
다음 결과를 가정한다.
| 시간 | 실제 | 예측 | Error |
|---|---|---|---|
| 08:00 | 10 | 7 | +3 |
| 08:10 | 8 | 11 | -3 |
평균 Error는:
(+3 + -3) / 2 = 0
이다.
그러나 두 시점 모두 실제로는 3분씩 틀렸다.
양의 오차와 음의 오차가 서로 상쇄된 것뿐이다.
따라서 단순 Error 평균만으로는 모델의 정확도를 판단하기 어렵다.
이를 해결하기 위해 Absolute Error를 사용한다.
5. Absolute Error 절대오차
절대오차는 오차의 방향을 제거하고 얼마나 많이 틀렸는지만 확인하는 값이다.
공식은:
Absolute Error = |Actual - Predicted|
이다.
예:
Error = +3 → Absolute Error = 3
Error = -3 → Absolute Error = 3
즉 과대예측인지 과소예측인지와 관계없이 오차의 크기만 본다.
6. MAE Mean Absolute Error
MAE는:
절대오차의 평균
이다.
예:
| 시간 | 실제 | 예측 | 절대오차 |
|---|---|---|---|
| 08:00 | 10 | 7 | 3 |
| 08:10 | 8 | 11 | 3 |
| 08:20 | 15 | 13 | 2 |
| 08:30 | 12 | 13 | 1 |
MAE는:
(3 + 3 + 2 + 1) / 4 = 2.25분
이다.
즉:
CAST 예측값은 실제 대기시간과 평균적으로 약 2.25분 정도 차이가 난다.
라고 해석할 수 있다.
7. MAE의 장점
MAE는 원래 데이터와 같은 단위를 사용하기 때문에 이해하기 쉽다.
예:
Waiting Time MAE = 2.3분
이면:
평균적으로 실제 대기시간과 약 2.3분 정도 차이가 발생한다.
라고 바로 이해할 수 있다.
다른 예:
Queue Length MAE = 35명
이면:
실제 Queue와 평균적으로 약 35명 정도 차이가 발생한다.
는 의미이다.
8. RMSE Root Mean Squared Error
RMSE는 다음 순서로 계산한다.
- 오차 계산
- 오차 제곱
- 제곱값의 평균 계산
- 제곱근 계산
개념적으로:
RMSE = √(오차²의 평균)
이다.
RMSE의 가장 중요한 특징은:
큰 오차에 더 큰 벌점을 준다.
는 것이다.
9. RMSE가 큰 오차에 민감한 이유
예를 들어 오차가 다음과 같다고 한다.
1, 1, 1, 10
MAE는:
(1 + 1 + 1 + 10) / 4 = 3.25
이다.
하지만 RMSE 계산에서는:
1² + 1² + 1² + 10²
가 되므로 10이라는 큰 오차의 영향이 훨씬 커진다.
따라서:
평상시에는 잘 맞지만 Peak 상황에서 크게 틀리는 모델
을 찾아내는 데 RMSE가 유용하다.
10. MAE와 RMSE의 차이
두 지표의 차이를 간단히 정리하면 다음과 같다.
MAE
평균적으로 얼마나 틀렸는가?
RMSE
큰 오차까지 고려했을 때 얼마나 틀렸는가?
예를 들어:
MAE = 2분
RMSE = 2.2분
이라면 오차가 비교적 고르게 발생했다고 볼 수 있다.
반면:
MAE = 2분
RMSE = 6분
이라면:
일부 구간에서 매우 큰 오차가 발생하고 있을 가능성
을 의심할 수 있다.
11. Percentage Error 백분율 오차
대기시간, Queue Length, Passenger Count처럼 단위가 다른 지표를 상대적으로 비교하기 위해서는 백분율 오차를 사용할 수 있다.
예:
실제 대기시간 = 10분
예측 = 8분
절대오차:
2분
백분율 오차:
2 / 10 × 100 = 20%
이다.
즉 실제값 대비 약 20% 차이가 발생한 것이다.
12. MAPE Mean Absolute Percentage Error
MAPE는:
절대 백분율 오차의 평균
이다.
예:
| 실제 | 예측 | 절대오차율 |
|---|---|---|
| 10 | 9 | 10% |
| 20 | 18 | 10% |
| 30 | 33 | 10% |
MAPE는:
10%
이다.
즉:
예측값이 실제값과 평균적으로 약 10% 정도 차이가 난다.
라고 해석할 수 있다.
모형설계서에서는 Calibration 시 허용 오차범위의 예시로 ±5~10%를 제시하고 있기 때문에 비율 기반 지표를 함께 검토하기에 적절하다. :chatgpt-content-reference{index="2"}
13. MAPE의 장점
MAPE는 % 단위이기 때문에 서로 다른 지표를 비교하기 쉽다.
예:
- Waiting Time MAPE = 8%
- Queue Length MAPE = 14%
- Passenger Count MAPE = 5%
처럼 표현하면 각 항목의 상대적인 예측 오차를 비교할 수 있다.
14. MAPE의 한계
MAPE에는 중요한 단점이 있다.
실제값이 0이거나 매우 작으면 오차율이 과도하게 커질 수 있다.
예:
실제 Queue = 1명
예측 Queue = 5명
이면:
|1 - 5| / 1 × 100 = 400%
이다.
실제값이 0이라면 계산 자체가 불가능하다.
따라서 다음처럼 0이 자주 발생할 수 있는 데이터에서는 주의해서 사용해야 한다.
- Queue Length
- Waiting Time
- 특정 시간대 Passenger Count
즉 MAPE 하나만으로 모델 정확도를 판단하면 안 된다.
15. Bias 편향
Bias는:
모델이 지속적으로 한쪽 방향으로 치우쳐 예측하는가
를 보는 개념이다.
예:
| 실제 | CAST |
|---|---|
| 10 | 8 |
| 12 | 9 |
| 15 | 11 |
| 20 | 16 |
CAST가 항상 실제보다 낮게 예측하고 있다.
이 경우:
Under-prediction Bias
가 있다고 볼 수 있다.
반대로 CAST가 지속적으로 실제보다 높게 예측하면:
Over-prediction Bias
가 있다고 볼 수 있다.
16. MAE가 작아도 Bias가 존재할 수 있다
모든 시간대에서 CAST가 실제보다 정확히 1분 낮게 예측한다고 가정한다.
MAE는:
1분
으로 매우 작다.
하지만 항상 같은 방향으로 틀리고 있다.
즉:
모델이 체계적으로 실제 혼잡을 낮게 보는 경향
이 존재한다.
따라서 오차 크기뿐 아니라 오차 방향도 함께 확인해야 한다.
17. Under-prediction과 Over-prediction의 운영 영향
두 오류는 모두 문제지만 영향은 다르다.
Under-prediction
예:
CAST 예상 대기 = 8분
실제 대기 = 18분
운영자는 실제보다 혼잡을 낮게 예상하게 된다.
그 결과:
- 검색대 추가 오픈 지연
- 인력 재배치 지연
- 혼잡 사전대응 실패
등이 발생할 수 있다.
Over-prediction
예:
CAST 예상 대기 = 18분
실제 대기 = 8분
필요 이상의 자원 배치가 발생할 수 있다.
따라서 모델의 사용 목적에 따라 어떤 방향의 오차가 더 위험한지도 검토할 필요가 있다.
18. 전체 평균만 보면 안 되는 이유
하루 전체 MAE가:
2.1분
이라고 가정한다.
수치만 보면 좋은 모델처럼 보인다.
하지만 시간별 결과가 다음과 같을 수 있다.
| 시간 | 실제 | CAST |
|---|---|---|
| 06시 | 2 | 2 |
| 07시 | 3 | 3 |
| 08시 | 20 | 10 |
| 09시 | 5 | 5 |
| 10시 | 3 | 3 |
대부분 시간대는 잘 맞지만 가장 중요한 08시 Peak에서는 10분이나 차이가 발생했다.
따라서 정확도는:
- 전체
- Peak
- 비혼잡 시간
- 시설별
- 시간대별
로 나누어 볼 필요가 있다.
19. CAST Validation과 오차지표
모형설계서의 Model Validation에서는 실제 혼잡이 심했던 특정 날짜의 데이터를 모델에 넣어:
- 실제 대기시간
- CAST 시뮬레이션 대기시간
을 비교하도록 되어 있다. :chatgpt-content-reference{index="3"}
이때 단순히:
실제와 비슷하다.
라고 판단하기보다 다음과 같은 지표를 함께 사용하면 검증을 객관화할 수 있다.
- MAE
- RMSE
- MAPE
- Bias
- Peak Error
- Peak Time Error
20. Peak Error
공항에서는 평균 오차만큼 Peak 혼잡의 정확도가 중요하다.
예:
실제 Peak Queue = 420명
CAST Peak Queue = 310명
차이:
110명
오차율:
110 / 420 × 100 ≒ 26.2%
이다.
평균 Queue가 잘 맞더라도 Peak Queue를 26% 낮게 예측한다면 실제 운영에 활용할 때 문제가 될 수 있다.
21. Peak Time Error
Peak의 크기만큼 발생시점도 중요하다.
예:
실제 Peak Time:
08:40
CAST Peak Time:
09:10
이면:
Peak Time Error = 30분
이다.
Peak Queue 값이 비슷해도 발생시점이 30분 늦으면 현장 운영에서는 사전대응 시점을 놓칠 수 있다.
22. Peak Duration
혼잡이 얼마나 오래 지속되는지도 중요한 검증항목이다.
예:
실제:
08:30~09:10, 40분간 혼잡
CAST:
08:40~09:00, 20분간 혼잡
이라면 최대 Queue 값이 비슷해도 혼잡 지속시간을 충분히 재현하지 못한 것이다.
따라서 공항 운영에서는:
- Peak Value
- Peak Time
- Peak Duration
을 함께 검증하는 것이 좋다.
23. CAST에서 검증할 주요 대상
실제 프로젝트에서는 다음 항목을 별도로 검증할 수 있다.
Passenger Volume
실제 여객 유입량과 CAST 유입량 비교
Waiting Time
실제 대기시간과 CAST 대기시간 비교
Queue Length
실제 Queue와 CAST Queue 비교
Peak Value
최대 혼잡 수준 비교
Peak Time
혼잡 발생시점 비교
Peak Duration
혼잡 지속시간 비교
즉:
모델 정확도는 하나의 숫자로 표현하기 어렵다.
24. CAST 검증 예시
다음과 같은 결과가 있다고 가정한다.
| 시간 | 실제 대기시간 | CAST 대기시간 | 차이 |
|---|---|---|---|
| 08:00 | 5 | 4 | 1 |
| 08:10 | 7 | 6 | 1 |
| 08:20 | 10 | 8 | 2 |
| 08:30 | 15 | 11 | 4 |
| 08:40 | 20 | 14 | 6 |
결과를 보면 시간이 지나 혼잡해질수록 차이가 커진다.
이 경우 단순히 평균 오차만 보는 것보다:
혼잡이 심해질수록 CAST가 실제보다 낮게 예측한다.
는 패턴이 더 중요하다.
즉:
Peak Under-prediction
이 발생하고 있다고 볼 수 있다.
25. 이런 패턴이 발견되면 무엇을 확인해야 하는가
Peak 구간에서 오차가 커진다면 다음 입력과 로직을 점검할 수 있다.
- Passenger Show-up Distribution
- Reporting Time
- Service Time
- Facility Open Count
- Queue Routing
- Passenger Behavior
- Resource Allocation
특히 평상시에는 잘 맞는데 혼잡시간에만 틀린다면:
평균 Service Time만의 문제가 아니라 혼잡 상황에서 처리능력이나 행동이 달라지는 현상이 모델에 충분히 반영되지 않았을 가능성
도 검토해야 한다.
26. Calibration
Calibration은:
실제값과 시뮬레이션 결과의 차이를 줄이기 위해 모델의 파라미터를 조정하는 과정
이다.
모형설계서에서도 현실과 시뮬레이션 사이에 차이가 발생하면 여객 도착분포나 처리속도 파라미터 등을 미세 조정하도록 하고 있다. :chatgpt-content-reference{index="4"}
예를 들어 다음과 같은 항목을 조정할 수 있다.
- Passenger Reporting Time Distribution
- Service Time Distribution
- Check-in Type Distribution
- Departure Hall Distribution
- Facility Capacity
27. Calibration과 Overfitting
Calibration을 많이 한다고 반드시 좋은 모델이 되는 것은 아니다.
예를 들어 특정 날짜에 맞춰 파라미터를 계속 조정해서:
2025-08-01
MAE = 0.5분
까지 줄였다고 한다.
그러나 다른 날짜에서는:
2025-08-02
MAE = 6분
2025-08-03
MAE = 8분
이라면 특정 날짜에만 지나치게 맞춘 모델일 수 있다.
이것을 Overfitting이라고 한다.
즉:
특정 과거 데이터를 완벽하게 재현하는 것보다 새로운 상황에서도 일정 수준의 정확도를 유지하는 것이 중요하다.
28. Calibration Set과 Validation Set
Overfitting을 방지하기 위해 데이터를 나누어 사용할 수 있다.
Calibration Set
모델 파라미터를 조정하는 데 사용하는 데이터
예:
- 여러 평일
- 여러 주말
- 성수기
- 비성수기
Validation Set
Calibration에 사용하지 않은 별도 데이터
이 데이터를 대상으로도 모델이 잘 맞는지 확인한다.
이를 통해:
특정 날짜에만 잘 맞는 모델인지, 일반적인 상황에서도 잘 작동하는 모델인지
확인할 수 있다.
29. 하나의 정확도 지표만 사용하지 않는 이유
각 지표는 확인하는 목적이 다르다.
MAE
평균적인 오차 크기
RMSE
큰 오차의 존재
MAPE
상대적인 오차 비율
Bias
과대·과소예측 경향
Peak Error
최대 혼잡 수준 정확도
Peak Time Error
혼잡 발생시점 정확도
따라서 여러 지표를 함께 봐야 모델의 특성을 제대로 이해할 수 있다.
30. Validation Dashboard 예시
향후 CAST 예측관리 화면을 구성한다면 정확도 검증 결과를 다음처럼 표시할 수 있다.
| 지표 | 결과 |
|---|---|
| MAE | 2.1분 |
| RMSE | 3.8분 |
| MAPE | 8.4% |
| Bias | +1.2분 |
| Peak Queue Error | 12% |
| Peak Time Error | 10분 |
여기에:
- Terminal
- 시설
- 날짜
- 시간대
- 혼잡 여부
등의 조건으로 상세 조회할 수 있도록 구성할 수 있다.
31. CAST Validation 구조 제안
실무에서는 정확도 검증을 크게 세 영역으로 나눌 수 있다.
① 전체 정확도
- MAE
- RMSE
- MAPE
- Bias
② Peak 정확도
- Peak Queue Error
- Peak Waiting Time Error
- Peak Time Error
- Peak Duration Error
③ 구간별 정확도
- 시간대별
- 시설별
- Terminal별
- 혼잡/비혼잡별
이런 구조를 사용하면:
정확도 90%
같은 하나의 숫자보다 훨씬 구체적으로 모델 성능을 설명할 수 있다.
32. “정확도 90%”라는 표현의 문제
다음과 같은 표현은 주의해야 한다.
CAST 정확도 = 90%
왜냐하면 무엇의 정확도인지 알 수 없기 때문이다.
예:
- Passenger Count?
- Waiting Time?
- Queue Length?
- Peak Time?
- 하루 평균?
- 혼잡시간?
따라서 다음처럼 표현하는 것이 좋다.
Security Waiting Time MAPE = 8%
Peak Queue Error = 12%
Peak Time Error = 10분
즉:
검증 대상 + 정확도 지표
를 함께 명시해야 한다.
33. CAST 프로젝트 적용 흐름
전체적인 Validation 과정은 다음과 같이 정리할 수 있다.
실제 운영 데이터
↓
CAST Simulation Result
↓
실제값과 예측값 매칭
↓
Error 계산
↓
MAE / RMSE / MAPE 계산
↓
Bias 확인
↓
Peak Value / Peak Time / Peak Duration 비교
↓
시간대·시설별 오차 패턴 분석
↓
오차 원인 분석
↓
Calibration
↓
별도 Validation Dataset으로 재검증
↓
모형 확정
모형설계서에서도 Verification 이후 실제 공항 상황과 비교하는 Validation을 수행하고, 필요 시 Calibration을 거쳐 최종 모형을 확정하는 흐름으로 구성되어 있다. :chatgpt-content-reference{index="5"}
34. 이번 강의 핵심 용어
| 용어 | 의미 | CAST 적용 |
|---|---|---|
| Error | 실제값과 예측값의 차이 | 기본 오차 |
| Absolute Error | 오차의 절대값 | 오차 크기 |
| MAE | 절대오차의 평균 | 평균 예측오차 |
| RMSE | 제곱오차 기반 지표 | 큰 오차 탐지 |
| Percentage Error | 실제값 대비 오차 비율 | 상대오차 |
| MAPE | 절대오차율의 평균 | % 기반 정확도 |
| Bias | 한쪽 방향의 지속적 오차 | 과대/과소예측 |
| Under-prediction | 실제보다 낮게 예측 | 혼잡 과소평가 |
| Over-prediction | 실제보다 높게 예측 | 혼잡 과대평가 |
| Peak Error | 최대 혼잡값의 오차 | Peak 검증 |
| Peak Time Error | Peak 발생시점 차이 | 운영시점 검증 |
| Calibration | 실제값에 맞게 파라미터 조정 | 모형 보정 |
| Overfitting | 특정 데이터에 지나치게 맞춘 상태 | 일반화 실패 |
35. 핵심 정리
이번 강의의 핵심은 다음과 같다.
첫째,
예측 정확도는 실제값과 예측값의 차이를 정량적으로 측정해야 한다.
둘째,
MAE는 평균적으로 얼마나 틀리는지를 이해하기 쉽다.
셋째,
RMSE는 일부 큰 오차에 더 민감하므로 Peak 예측 실패를 확인하는 데 유용하다.
넷째,
MAPE는 %로 이해하기 쉽지만 실제값이 0 또는 매우 작을 때는 주의해야 한다.
다섯째,
Bias를 통해 모델이 지속적으로 과대예측 또는 과소예측하는지 확인해야 한다.
여섯째,
공항에서는 평균 정확도뿐 아니라 Peak Value, Peak Time, Peak Duration도 중요하다.
일곱째,
Calibration에 사용한 데이터와 Validation 데이터를 분리하여 특정 날짜에만 맞는 모델이 되지 않도록 해야 한다.
이번 강의에서 가장 중요하게 기억할 내용은 다음과 같다.
좋은 예측모델은 평균적으로 잘 맞는 모델이 아니라, 운영상 중요한 혼잡 상황에서도 실제 상황을 잘 재현하는 모델이다.
다음 학습
8강: 표본·신뢰구간·가설검정·K-S Test 이해하기
다음 강의에서는 다음 내용을 학습한다.
- Population 모집단
- Sample 표본
- Sampling
- Confidence Interval 신뢰구간
- Hypothesis Test 가설검정
- Null Hypothesis 귀무가설
- p-value
- Statistical Significance
- K-S Test
특히 다음과 같은 실무 질문과 연결한다.
서비스 시간 데이터 100건만으로 전체 승객을 대표할 수 있는가?
T1과 T2의 평균 Service Time 차이가 실제 차이인가, 우연인가?
실제 Service Time 데이터가 우리가 선택한 Gamma Distribution과 잘 맞는다고 볼 수 있는가?
이를 통해 CAST에 넣을 통계 파라미터가 실제 데이터를 충분히 대표하는지 판단하는 방법을 학습한다.