이상치

Outlier

개념

다른 값들과 크게 동떨어져 있어 요약값을 흔들고, 빼야 할지 봐야 할지 판단이 필요한 값입니다.

등장 배경

숫자 여러 개를 한 개로 줄여 말하는 일은 편합니다. 응답 시간을 물으면 평균이 몇 초라고 답하면 됩니다. 값을 모두 더해 개수로 나눈 평균은 계산이 쉽고 모든 값이 조금씩 반영된다는 점에서 공평해 보입니다.

페이지덱에서 그 편리함이 2주를 잡아먹은 일이 있습니다. 문서 목록 응답 시간 평균이 1.5초로 나왔고, 느리다고 판단해 성능 개선에 2주를 배정했습니다.

착수하고 값을 하나씩 늘어놓아 보니 사정이 달랐습니다. 다섯 건 중 네 건이 0.3초대였고 한 건이 6.2초였습니다. 그 한 건이 평균을 다섯 배로 끌어올린 것입니다. 그리고 그 한 건은 관리자가 전체 데이터를 한 번에 내려받은 요청이었습니다. 고객이 겪는 응답 시간에는 애초에 들어가지 않는 값이었습니다.

동떨어진 값 하나가 요약값을 지배할 수 있다는 사실이 이 개념이 따로 이름을 가진 이유입니다. 평균만 보고 있으면 그 값이 있다는 사실 자체를 모릅니다.

작동 방식

값을 늘어놓고 나머지와 떨어진 정도로 판정합니다. 흔히 쓰는 기준이 셋입니다.

  1. 평균에서 떨어진 거리로 봅니다. 값이 평균에서 흩어진 정도를 원래 단위로 되돌린 표준편차를 구하고, 평균에서 그 값의 세 배 밖에 있는 것을 이상치로 봅니다. 값들이 가운데가 두툼한 종 모양으로 퍼져 있을 때만 쓸 수 있습니다.
  2. 가운데 절반의 폭으로 봅니다. 크기순으로 늘어놓아 가운데 50퍼센트가 차지하는 폭을 구하고, 그 폭의 1.5배 밖을 이상치로 봅니다. 응답 시간이나 결제 금액처럼 한쪽 꼬리가 긴 데이터에서는 이 기준이 안전합니다.
  3. 그려 봅니다. 자동 기준을 적용하기 전에 값을 흩뿌려 그리는 일이 먼저입니다. 기준은 무엇이 동떨어졌는지만 알려 주고, 왜 동떨어졌는지는 그림과 원본 기록에서 나옵니다.

찾은 뒤에 고를 수 있는 것은 넷입니다.

  1. 고칩니다. 입력 실수로 생긴 값이면 원래 값으로 바로잡습니다. 금액 칸에 0이 세 개 더 붙은 경우가 여기입니다.
  2. 뺍니다. 측정 자체가 실패한 값일 때만 그렇게 합니다. 앞의 관리자 요청처럼 재려던 대상이 아닌 값이 섞인 경우입니다.
  3. 남깁니다. 실제로 일어난 일이고 재려던 대상 안에 있다면 그대로 둡니다. 6.2초를 겪은 사용자가 실제로 있다면 그 값이 가장 중요한 신호입니다.
  4. 나눠 봅니다. 동떨어진 값이 한두 개가 아니라 뭉쳐 있으면 이상치가 아니라 집단이 둘인 경우입니다. 무료 계정과 기업 계정을 한 표에 놓으면 두 덩어리가 나오는데, 이때는 값을 빼는 대신 표를 나눕니다.

무엇을 했든 적어 둡니다. 어떤 기준으로 몇 건을 뺐는지 남기지 않으면 다음 사람이 같은 데이터로 다른 숫자를 냅니다. 빼지 않고 요약하는 방법을 바꾸는 선택도 있습니다. 가운데 오는 값인 중앙값이나 95백분위수를 쓰면 동떨어진 값에 흔들리지 않으면서 그 값을 지우지도 않습니다.

쓰이는 곳

가장 자주 걸리는 자리는 성능 지표입니다. 평균 응답 시간 대신 95백분위수를 보는 관행이 이 문제에서 나왔습니다. 평균은 가장 나쁜 경험을 겪은 쪽을 가려 버리는데, 사람들이 느리다고 말하는 근거는 그 나쁜 쪽입니다.

두 번째는 실험 결과입니다. 두 안을 무작위로 나눠 보여 주고 비교하는 A/B 테스트에서 한 명이 큰 금액을 결제하면 그 집단의 평균 결제액이 뒤집힙니다. 실험 대상이 몇백 명 규모일 때 흔히 생기므로, 금액 실험에서는 평균과 중앙값을 함께 보고 큰 값 몇 건을 뺀 결과도 확인합니다.

세 번째는 매출입니다. 고객 한 곳이 전체의 3할을 차지하면 고객 평균 매출이라는 숫자가 아무것도 설명하지 못합니다. 이때는 그 고객을 떼어 두고 나머지로 평균을 구합니다.

네 번째는 데이터 품질 검사입니다. 파이프라인 안에 값의 범위를 확인하는 단계를 두고, 하루 가입자가 평소의 20배로 들어온 날에는 경고를 띄웁니다. 실제로 늘어난 것인지 수집이 두 번 돌아 같은 기록이 두 벌 들어온 것인지를 사람이 확인해야 합니다.

다섯 번째는 사람을 만나는 자리입니다. 사용자 인터뷰 대상을 고를 때 평균적인 사용자만 만나면 양 끝에서 벌어지는 문제가 보이지 않습니다. 하루에 문서를 백 개 여는 사람과 한 달에 두 번 여는 사람을 일부러 섞는 것이 이 이유에서 나옵니다.

실무 용례

"평균 1.5초인데 값 하나가 6초예요. 그거 빼고 다시 봅시다."

동떨어진 값이 요약을 지배하고 있다는 지적입니다.

"이건 이상치가 아니라 집단이 둘인 것 같습니다."

값을 빼는 대신 표를 나눠야 한다는 말입니다.

"뺀 건수와 기준은 문서에 적어 주세요."

같은 데이터에서 다른 숫자가 나오는 일을 막자는 요청입니다.

페이지덱에서는 지현이 숫자를 보고할 때 규칙을 하나 지킵니다. 평균을 쓰는 자리에는 중앙값을 함께 적고, 둘이 크게 벌어져 있으면 그 이유를 한 줄로 붙입니다. 두 값이 1.5초와 0.3초라면 그 차이가 곧 이야기입니다.

태오는 반대쪽에서 씁니다. 파이프라인에 범위 확인을 걸어 두고 걸린 날에는 원본 기록을 열어 봅니다. 대부분은 수집 쪽 문제였고 일부는 실제로 큰 고객이 들어온 경우였습니다.

흔한 오해

찾으면 빼는 것이라고 여기는 경우가 가장 많습니다. 이상하다는 이름이 붙어 있으니 잘못된 값처럼 읽힙니다. 하지만 이 값이 가장 중요한 신호인 경우가 실제로 많습니다. 결제 금액이 평소의 300배인 건 하나가 입력 실수일 수도 있지만 새로 들어온 대기업 계약일 수도 있고, 뒤쪽이면 그 건이 이번 달 매출의 절반입니다. 빼기 전에 원본 기록을 열어 왜 생겼는지 확인하는 단계를 건너뛰면 지워야 할 것과 봐야 할 것이 같은 처리를 받습니다.

기준을 통과했다는 것이 곧 판정이라고 보는 것도 흔합니다. 표준편차 세 배 밖이라는 계산은 자동으로 나오니 결론처럼 보입니다. 그런데 그 기준은 값들이 종 모양으로 퍼져 있다는 가정 위에서만 뜻이 있습니다. 응답 시간이나 결제 금액처럼 한쪽으로 긴 꼬리를 가진 데이터에 그대로 적용하면 정상인 값이 대량으로 이상치로 잡히고, 그것을 다 빼 버리면 남은 데이터는 실제와 다른 모양이 됩니다.

자주 헷갈리는 용어

용어무엇인가이상치와의 차이
이상 탐지평소와 다른 값을 자동으로 찾아내는 기능계속 돌면서 찾아 알리는 장치입니다. 이상치는 그 장치가 찾아내는 대상이고, 찾은 뒤에 어떻게 다룰지는 사람이 정합니다

같이 보면 좋은 페이지

  • 통계 기초

    이 개념이 어느 갈래의 한 자리인지 봅니다

  • 분산

    값이 흩어진 정도를 재는 같은 갈래의 값입니다

마지막 업데이트 2026-09-16