[CAST 통계 스터디] 3강. 분산·표준편차·백분위수·Z-Score·이상치 이해하기
1. 학습 목적
CAST Express 시뮬레이션에서 평균값만 보는 것으로는 충분하지 않다.
실제 공항 데이터는 항상 일정하지 않고, 같은 시설이라도 승객마다 처리시간이 다르며 특정 시간대에는 극단적인 혼잡이 발생할 수 있다.
이번 3강에서는 다음을 이해하는 것이 목표다.
- 데이터가 평균에서 얼마나 퍼져 있는지
- 어떤 값이 일반적인 범위를 벗어난 것인지
- P95, P99 같은 백분위수가 무엇을 의미하는지
- 이상치를 언제 제거하고 언제 유지해야 하는지
- 시뮬레이션 결과에서 평균과 극단값을 어떻게 함께 해석해야 하는지
모형설계서에서도 시뮬레이션을 반복 수행하고 실제 공항의 통계치와 비교하여 결과를 검증한 뒤, 필요 시 Calibration을 수행하도록 되어 있다. :chatgpt-content-reference{index="0"}
2. 편차 Deviation
편차는:
개별 값이 평균에서 얼마나 떨어져 있는가
를 의미한다.
공식은 다음과 같다.
편차 = 관측값 - 평균
예를 들어 평균 Service Time이 100초이고 실제 데이터가 다음과 같다고 한다.
80, 90, 100, 110, 120
그러면 편차는 다음과 같다.
| 실제값 | 평균 | 편차 |
|---|---|---|
| 80 | 100 | -20 |
| 90 | 100 | -10 |
| 100 | 100 | 0 |
| 110 | 100 | +10 |
| 120 | 100 | +20 |
즉 편차는 데이터가 평균에서 얼마나 떨어져 있는지 나타내는 가장 기본적인 개념이다.
3. 분산 Variance
편차를 그대로 평균내면 양수와 음수가 서로 상쇄되어 0에 가까워지는 문제가 있다.
그래서 편차를 제곱한다.
예:
-20, -10, 0, +10, +20
을 제곱하면:
400, 100, 0, 100, 400
이 된다.
이 제곱값들의 평균이 **분산(Variance)**이다.
즉:
분산은 데이터가 평균에서 얼마나 크게 퍼져 있는지를 나타내는 값
이다.
다만 분산은 원래 단위가 아니라 제곱된 단위가 된다.
예를 들어 Service Time이 초 단위라면 분산은 초²이 된다.
그래서 실무에서는 분산보다 표준편차를 더 자주 본다.
4. 표준편차 Standard Deviation
표준편차는 분산에 제곱근을 적용한 값이다.
따라서 다시 원래 데이터와 같은 단위를 사용한다.
예:
평균 Service Time = 100초
표준편차 = 5초
라면 대부분의 값이 100초 근처에 모여 있다고 볼 수 있다.
반대로:
평균 Service Time = 100초
표준편차 = 60초
라면 승객별 처리시간 차이가 매우 크다는 뜻이다.
5. 평균이 같아도 표준편차가 다를 수 있다
두 검색대가 있다고 가정한다.
A 검색대
95, 100, 100, 100, 105
평균:
100초
B 검색대
20, 50, 100, 150, 180
평균:
100초
두 곳 모두 평균은 같지만 분포는 크게 다르다.
A는 안정적이고 B는 변동성이 크다.
CAST 시뮬레이션에서는 이런 차이가 중요하다.
B와 같이 표준편차가 큰 경우 긴 처리시간 승객이 연속적으로 발생하면 Queue가 갑자기 증가할 수 있기 때문이다.
즉:
평균은 수준을 보여주고, 표준편차는 불안정성을 보여준다.
6. 정규분포와 표준편차
정규분포에 가까운 데이터는 평균과 표준편차를 이용해 데이터의 범위를 대략 파악할 수 있다.
일반적으로 다음과 같은 관계가 있다.
- 평균 ± 1σ 안에 약 68%
- 평균 ± 2σ 안에 약 95%
- 평균 ± 3σ 안에 약 99.7%
여기서 σ는 표준편차를 의미한다.
예:
평균 = 100초
표준편차 = 10초
이면 대략:
- 90~110초: 약 68%
- 80~120초: 약 95%
- 70~130초: 약 99.7%
의 데이터가 존재한다.
7. Percentile 백분위수
Percentile은 데이터를 작은 순서대로 정렬했을 때 특정 위치의 값을 의미한다.
대표적으로 다음을 많이 사용한다.
- P50
- P90
- P95
- P99
P50
전체 데이터의 50%가 이 값 이하이다.
사실상 중앙값 Median과 같다.
P90
전체 데이터의 90%가 이 값 이하이다.
P95
전체 데이터의 95%가 이 값 이하이다.
P99
전체 데이터의 99%가 이 값 이하이다.
8. 공항 운영에서 P95의 의미
예를 들어 보안검색 대기시간이 다음과 같다고 한다.
| 지표 | 대기시간 |
|---|---|
| 평균 | 6분 |
| P50 | 4분 |
| P90 | 11분 |
| P95 | 16분 |
| P99 | 28분 |
평균만 보면:
평균 대기시간은 6분이다.
라고 볼 수 있다.
하지만 P99를 보면:
일부 혼잡 상황에서는 28분 가까이 기다릴 수 있다.
는 점을 알 수 있다.
특히 공항 운영에서는 평균보다 Peak와 Tail 영역이 중요할 수 있다.
9. 평균과 P95는 다른 질문에 답한다
평균과 P95는 같은 지표가 아니다.
평균 Mean
보통 얼마나 기다리는가?
P95
대부분의 승객이 어느 정도 안에서 기다리는가?
최대값 Max
가장 심한 경우 얼마나 기다렸는가?
예:
평균 = 5분
P95 = 8분
Max = 50분
이라면 최대 50분 사례가 존재하더라도 대부분의 승객은 8분 이내에 처리되었다고 볼 수 있다.
반대로:
평균 = 5분
P95 = 25분
이라면 긴 대기시간을 경험하는 승객이 적지 않다고 볼 수 있다.
10. Z-Score
Z-Score는:
특정 값이 평균에서 표준편차 몇 개만큼 떨어져 있는지
를 나타낸다.
공식은 다음과 같다.
Z = (값 - 평균) / 표준편차
예:
평균 = 100초
표준편차 = 20초
실제값 = 140초
이면:
(140 - 100) / 20 = 2
따라서:
Z = +2
이다.
뜻은:
평균보다 표준편차 2개만큼 큰 값
이라는 의미다.
11. Z-Score 해석
평균 100초, 표준편차 20초인 경우:
| Service Time | Z-Score | 의미 |
|---|---|---|
| 60초 | -2 | 평균보다 상당히 짧음 |
| 80초 | -1 | 평균보다 조금 짧음 |
| 100초 | 0 | 평균과 동일 |
| 120초 | +1 | 평균보다 조금 김 |
| 140초 | +2 | 상당히 긴 편 |
| 160초 | +3 | 매우 이례적 |
정규분포에 가까운 경우 일반적으로:
|Z| > 2: 비교적 특이한 값|Z| > 3: 매우 드문 값
으로 볼 수 있다.
다만 이 기준은 데이터 특성과 분포에 따라 달라질 수 있다.
12. 이상치 Outlier
이상치는 일반적인 데이터 패턴에서 크게 벗어난 값이다.
예:
45, 52, 58, 61, 70, 75, 83, 90, 2800
여기서 2800초는 이상치로 의심할 수 있다.
하지만 중요한 점은:
이상치는 무조건 삭제하면 안 된다.
는 것이다.
13. 이상치의 두 가지 유형
① 잘못된 데이터
예:
- Timestamp 오류
- 센서 오작동
- 중복 데이터
- 시작/종료시간 뒤바뀜
- 단위 오류
이 경우는 수정하거나 제거해야 한다.
② 실제로 발생한 희귀 사건
예:
- 추가 보안검색
- 특수수하물
- 비자 확인 지연
- 장애인 지원
- 시스템 장애
- 특수 여객 처리
이 경우는 실제 공항 운영의 일부이므로 무조건 제거하면 안 된다.
14. 이상치를 처리하는 기본 절차
예를 들어 보안검색 Service Time 420초가 발견되었다고 한다.
다음 순서로 확인한다.
1단계. 데이터 오류 여부 확인
- Timestamp 확인
- 시스템 로그 확인
- 데이터 중복 여부 확인
↓
2단계. 특수 프로세스 여부 확인
- 추가검색
- 재검색
- 수하물 검사
- 기타 특수 절차
↓
3단계. 실제 희귀 상황인지 판단
정상적인 희귀 사례라면 별도 유형으로 관리할 수 있다.
예:
- Normal Security: 95%
- Additional Screening: 5%
이 방식이 단순히 이상치를 제거하는 것보다 현실적인 시뮬레이션을 만들 수 있다.
15. 평균보다 Median과 P95를 함께 보는 이유
예를 들어 다음 데이터가 있다.
40, 45, 48, 52, 55, 60, 65, 70, 300
300초짜리 승객 한 명 때문에 평균은 크게 증가한다.
이 경우 다음을 함께 보면 데이터 특성을 더 잘 이해할 수 있다.
- 평균 Mean
- 중앙값 Median
- P95
예:
평균 = 82초
중앙값 = 55초
P95 = 250초
이 결과는:
대부분은 1분 전후에 처리되지만 일부 매우 긴 처리시간이 존재한다.
는 의미로 해석할 수 있다.
16. P95와 평균 ± 표준편차는 다르다
평균과 표준편차는 데이터의 퍼짐을 나타낸다.
Percentile은 실제 데이터 순위를 기준으로 한다.
정규분포처럼 대칭적인 데이터에서는 서로 일정한 관계가 있지만, 공항의 서비스 시간처럼 오른쪽 꼬리가 긴 데이터에서는 차이가 클 수 있다.
따라서:
비대칭 분포에서는 P90, P95, P99가 매우 유용하다.
17. CAST 반복 시뮬레이션 결과에도 Percentile을 적용할 수 있다
모형설계서에서는 시뮬레이션을 수십~수백 번 반복 수행하도록 되어 있다. :chatgpt-content-reference{index="1"}
예를 들어 100회 시뮬레이션 결과 최대 Queue Length가 다음과 같이 나왔다고 한다.
180, 192, 210, 205, 240, ...
이 결과를 단순히:
평균 최대 Queue = 210명
으로만 표현할 수 있다.
하지만 더 유용한 방식은:
- Mean = 210명
- P90 = 245명
- P95 = 270명
- P99 = 315명
처럼 표현하는 것이다.
이렇게 하면 평균 상황뿐 아니라 혼잡 위험 수준도 함께 파악할 수 있다.
18. Max만 보는 것도 위험하다
시뮬레이션을 1,000번 수행했는데 단 한 번 Queue Length가 580명까지 올라갔다고 가정한다.
이를 단순히:
최대 Queue 580명
이라고만 표현하면 실제 위험 수준을 과장할 수 있다.
예:
| 통계량 | Queue Length |
|---|---|
| Mean | 210 |
| P90 | 245 |
| P95 | 270 |
| P99 | 315 |
| Max | 580 |
이 경우 580명은 매우 드문 극단 상황이라는 것을 알 수 있다.
따라서 운영 판단에서는 평균, Percentile, Max를 함께 보는 것이 좋다.
19. 예측값은 범위로 해석하는 것이 좋다
예측 결과를 다음처럼 단정적으로 표현할 수 있다.
내일 08:30 대기시간은 8.3분이다.
하지만 통계적으로는 다음과 같이 표현하는 것이 더 적절하다.
평균적으로 약 8분이며, 대부분의 경우 6~11분 범위이고, 혼잡 조건에서는 15분 이상 발생할 수 있다.
CAST는 확률적 입력과 반복 수행을 사용하는 시뮬레이션이므로 결과도 하나의 숫자보다 범위와 확률로 이해하는 것이 중요하다.
20. 입력 데이터 이상치와 시뮬레이션 극단값의 차이
두 가지를 구분해야 한다.
입력 데이터 이상치
CAST 입력 전 실제 데이터에서 발견되는 비정상 값
예:
Service Time = 8,000초
→ 데이터 품질이나 전처리 문제일 수 있음
Simulation Extreme Result
CAST를 여러 번 실행했을 때 드물게 발생하는 극단 결과
예:
평균 Queue 200명
특정 Run에서 500명
→ 오류가 아니라 실제 가능한 극단 상황일 수 있음
이 둘은 전혀 다른 문제이다.
21. 실무 예시
실제 보안검색 데이터 100만 건을 분석했다고 가정한다.
결과:
- Mean = 54초
- Median = 46초
- Standard Deviation = 31초
- P95 = 112초
- P99 = 181초
그리고 600초 이상 데이터가 300건 발견되었다.
조사 결과:
- 250건: 실제 추가검색
- 50건: 센서 오류
라면 다음과 같이 처리할 수 있다.
250건
실제 정상 데이터
→ 유지 또는 별도 Service Type으로 관리
50건
센서 오류
→ 제거
이후 적합한 확률분포를 선정하고 CAST에 적용한다.
22. CAST 프로젝트 적용 흐름
전체 흐름은 다음과 같다.
실제 데이터 수집
↓
평균 / 중앙값 / 표준편차 계산
↓
P95 / P99 확인
↓
이상치 탐지
↓
오류와 실제 희귀상황 구분
↓
확률분포 선정
↓
CAST 입력
↓
반복 시뮬레이션
↓
Mean / P95 / P99 결과 분석
↓
실제값과 비교
↓
Calibration
모형설계서에서도 실제 통계와 시뮬레이션 결과를 비교하고 필요 시 도착분포나 처리속도를 보정하도록 하고 있다. :chatgpt-content-reference{index="2"}
23. 이번 강의 핵심 용어
| 용어 | 의미 | CAST 적용 |
|---|---|---|
| Deviation | 평균과 개별 값의 차이 | 변동 정도 확인 |
| Variance | 편차 제곱의 평균 | 데이터 산포 확인 |
| Standard Deviation | 평균 주변의 퍼짐 | Service Time 변동성 |
| P50 | 50%가 이 값 이하 | 일반적인 수준 |
| P95 | 95%가 이 값 이하 | 운영 서비스 수준 |
| P99 | 99%가 이 값 이하 | 극심한 혼잡 수준 |
| Z-Score | 평균에서 몇 표준편차 떨어졌는지 | 이상치 후보 탐지 |
| Outlier | 일반 패턴에서 크게 벗어난 값 | 전처리 및 품질관리 |
| Max | 가장 큰 값 | 극단 상황 확인 |
24. 핵심 정리
이번 강의의 핵심은 다음과 같다.
첫째,
평균만으로는 데이터의 불안정성과 극단 상황을 알 수 없다.
둘째,
표준편차는 데이터가 얼마나 흔들리는지를 보여준다.
셋째,
P95와 P99는 공항 운영에서 긴 대기와 극심한 혼잡을 이해하는 데 중요하다.
넷째,
이상치는 무조건 제거하지 말고 데이터 오류인지 실제 희귀상황인지 먼저 구분해야 한다.
다섯째,
CAST 결과도 하나의 평균값보다 Mean, P95, P99, Max를 함께 보는 것이 좋다.
특히 중요한 원칙은 다음과 같다.
이상한 값이라고 무조건 버리지 않는다.
현실에서 실제로 발생한 희귀한 행동이나 이벤트라면 오히려 시뮬레이션의 현실성을 높이는 중요한 데이터일 수 있다.
다음 학습
4강: 조건부 확률·독립·종속·결합확률
다음 내용에서는 다음을 학습한다.
- 조건부 확률
- 독립과 종속
- 결합확률
- Passenger Profile
- 여객 속성 간 관계
- 출발까지 남은 시간에 따른 행동 변화
- 혼잡도에 따른 출국장 선택 변화
특히:
국적, 연령, 수하물, 체크인 방식, 출발시간, 혼잡도 등이 서로 독립적인가?
라는 질문을 중심으로 여객 행동을 확률적으로 연결하는 방법을 학습한다.