이상치
Outlier
개념
다른 값들과 크게 동떨어져 있어 요약값을 흔들고, 빼야 할지 봐야 할지 판단이 필요한 값입니다.
등장 배경
숫자 여러 개를 한 개로 줄여 말하는 일은 편합니다. 응답 시간을 물으면 평균이 몇 초라고 답하면 됩니다. 값을 모두 더해 개수로 나눈 평균은 계산이 쉽고 모든 값이 조금씩 반영된다는 점에서 공평해 보입니다.
페이지덱에서 그 편리함이 2주를 잡아먹은 일이 있습니다. 문서 목록 응답 시간 평균이 1.5초로 나왔고, 느리다고 판단해 성능 개선에 2주를 배정했습니다.
착수하고 값을 하나씩 늘어놓아 보니 사정이 달랐습니다. 다섯 건 중 네 건이 0.3초대였고 한 건이 6.2초였습니다. 그 한 건이 평균을 다섯 배로 끌어올린 것입니다. 그리고 그 한 건은 관리자가 전체 데이터를 한 번에 내려받은 요청이었습니다. 고객이 겪는 응답 시간에는 애초에 들어가지 않는 값이었습니다.
동떨어진 값 하나가 요약값을 지배할 수 있다는 사실이 이 개념이 따로 이름을 가진 이유입니다. 평균만 보고 있으면 그 값이 있다는 사실 자체를 모릅니다.
작동 방식
값을 늘어놓고 나머지와 떨어진 정도로 판정합니다. 흔히 쓰는 기준이 셋입니다.
- 평균에서 떨어진 거리로 봅니다. 값이 평균에서 흩어진 정도를 원래 단위로 되돌린 표준편차를 구하고, 평균에서 그 값의 세 배 밖에 있는 것을 이상치로 봅니다. 값들이 가운데가 두툼한 종 모양으로 퍼져 있을 때만 쓸 수 있습니다.
- 가운데 절반의 폭으로 봅니다. 크기순으로 늘어놓아 가운데 50퍼센트가 차지하는 폭을 구하고, 그 폭의 1.5배 밖을 이상치로 봅니다. 응답 시간이나 결제 금액처럼 한쪽 꼬리가 긴 데이터에서는 이 기준이 안전합니다.
- 그려 봅니다. 자동 기준을 적용하기 전에 값을 흩뿌려 그리는 일이 먼저입니다. 기준은 무엇이 동떨어졌는지만 알려 주고, 왜 동떨어졌는지는 그림과 원본 기록에서 나옵니다.
찾은 뒤에 고를 수 있는 것은 넷입니다.
- 고칩니다. 입력 실수로 생긴 값이면 원래 값으로 바로잡습니다. 금액 칸에 0이 세 개 더 붙은 경우가 여기입니다.
- 뺍니다. 측정 자체가 실패한 값일 때만 그렇게 합니다. 앞의 관리자 요청처럼 재려던 대상이 아닌 값이 섞인 경우입니다.
- 남깁니다. 실제로 일어난 일이고 재려던 대상 안에 있다면 그대로 둡니다. 6.2초를 겪은 사용자가 실제로 있다면 그 값이 가장 중요한 신호입니다.
- 나눠 봅니다. 동떨어진 값이 한두 개가 아니라 뭉쳐 있으면 이상치가 아니라 집단이 둘인 경우입니다. 무료 계정과 기업 계정을 한 표에 놓으면 두 덩어리가 나오는데, 이때는 값을 빼는 대신 표를 나눕니다.
무엇을 했든 적어 둡니다. 어떤 기준으로 몇 건을 뺐는지 남기지 않으면 다음 사람이 같은 데이터로 다른 숫자를 냅니다. 빼지 않고 요약하는 방법을 바꾸는 선택도 있습니다. 가운데 오는 값인 중앙값이나 95백분위수를 쓰면 동떨어진 값에 흔들리지 않으면서 그 값을 지우지도 않습니다.
쓰이는 곳
가장 자주 걸리는 자리는 성능 지표입니다. 평균 응답 시간 대신 95백분위수를 보는 관행이 이 문제에서 나왔습니다. 평균은 가장 나쁜 경험을 겪은 쪽을 가려 버리는데, 사람들이 느리다고 말하는 근거는 그 나쁜 쪽입니다.
두 번째는 실험 결과입니다. 두 안을 무작위로 나눠 보여 주고 비교하는 A/B 테스트에서 한 명이 큰 금액을 결제하면 그 집단의 평균 결제액이 뒤집힙니다. 실험 대상이 몇백 명 규모일 때 흔히 생기므로, 금액 실험에서는 평균과 중앙값을 함께 보고 큰 값 몇 건을 뺀 결과도 확인합니다.
세 번째는 매출입니다. 고객 한 곳이 전체의 3할을 차지하면 고객 평균 매출이라는 숫자가 아무것도 설명하지 못합니다. 이때는 그 고객을 떼어 두고 나머지로 평균을 구합니다.
네 번째는 데이터 품질 검사입니다. 파이프라인 안에 값의 범위를 확인하는 단계를 두고, 하루 가입자가 평소의 20배로 들어온 날에는 경고를 띄웁니다. 실제로 늘어난 것인지 수집이 두 번 돌아 같은 기록이 두 벌 들어온 것인지를 사람이 확인해야 합니다.
다섯 번째는 사람을 만나는 자리입니다. 사용자 인터뷰 대상을 고를 때 평균적인 사용자만 만나면 양 끝에서 벌어지는 문제가 보이지 않습니다. 하루에 문서를 백 개 여는 사람과 한 달에 두 번 여는 사람을 일부러 섞는 것이 이 이유에서 나옵니다.
실무 용례
"평균 1.5초인데 값 하나가 6초예요. 그거 빼고 다시 봅시다."
동떨어진 값이 요약을 지배하고 있다는 지적입니다.
"이건 이상치가 아니라 집단이 둘인 것 같습니다."
값을 빼는 대신 표를 나눠야 한다는 말입니다.
"뺀 건수와 기준은 문서에 적어 주세요."
같은 데이터에서 다른 숫자가 나오는 일을 막자는 요청입니다.
페이지덱에서는 지현이 숫자를 보고할 때 규칙을 하나 지킵니다. 평균을 쓰는 자리에는 중앙값을 함께 적고, 둘이 크게 벌어져 있으면 그 이유를 한 줄로 붙입니다. 두 값이 1.5초와 0.3초라면 그 차이가 곧 이야기입니다.
태오는 반대쪽에서 씁니다. 파이프라인에 범위 확인을 걸어 두고 걸린 날에는 원본 기록을 열어 봅니다. 대부분은 수집 쪽 문제였고 일부는 실제로 큰 고객이 들어온 경우였습니다.
흔한 오해
찾으면 빼는 것이라고 여기는 경우가 가장 많습니다. 이상하다는 이름이 붙어 있으니 잘못된 값처럼 읽힙니다. 하지만 이 값이 가장 중요한 신호인 경우가 실제로 많습니다. 결제 금액이 평소의 300배인 건 하나가 입력 실수일 수도 있지만 새로 들어온 대기업 계약일 수도 있고, 뒤쪽이면 그 건이 이번 달 매출의 절반입니다. 빼기 전에 원본 기록을 열어 왜 생겼는지 확인하는 단계를 건너뛰면 지워야 할 것과 봐야 할 것이 같은 처리를 받습니다.
기준을 통과했다는 것이 곧 판정이라고 보는 것도 흔합니다. 표준편차 세 배 밖이라는 계산은 자동으로 나오니 결론처럼 보입니다. 그런데 그 기준은 값들이 종 모양으로 퍼져 있다는 가정 위에서만 뜻이 있습니다. 응답 시간이나 결제 금액처럼 한쪽으로 긴 꼬리를 가진 데이터에 그대로 적용하면 정상인 값이 대량으로 이상치로 잡히고, 그것을 다 빼 버리면 남은 데이터는 실제와 다른 모양이 됩니다.
자주 헷갈리는 용어
| 용어 | 무엇인가 | 이상치와의 차이 |
|---|---|---|
| 이상 탐지 | 평소와 다른 값을 자동으로 찾아내는 기능 | 계속 돌면서 찾아 알리는 장치입니다. 이상치는 그 장치가 찾아내는 대상이고, 찾은 뒤에 어떻게 다룰지는 사람이 정합니다 |
같이 보면 좋은 페이지
마지막 업데이트 2026-09-16