QR 스캔 47회는 이상치가 아니었다
전시 앱 통계에서 튀는 값을 걸러내려다, 제일 열심히 본 관람객을 지울 뻔했다
집계 화면에 혼자 튀는 숫자가 하나 있으면 대개 오염을 의심하게 된다. 나머지가 전부 한 자리인데 하나만 두 자리면 더 그렇다.
전시장에서 쓰는 앱의 방문 통계를 들여다봤다. 화면에는 이렇게 떠 있었다.
스캔 433회
관람객 125명
사람별로 몇 번 찍었는지 세어 봤다.
1회만 68명
2~5회 44명
6회 이상 13명
최대 47회 ← ?
39점짜리 전시에서 한 사람이 47번을 찍었다. 바로 결론을 냈다. 관람객이 이럴 리 없고, 직원이 확인했거나 우리가 시험한 거라고. 그리고 통계에서 걸러낼 방법을 설계하기 시작했다. 직원 계정으로 로그인한 브라우저를 찾아 빼는 식으로.
거르개를 만들려니 확인이 필요했다
걸러내려면 그 47회가 정말 직원인지부터 알아야 했다. 그 줄을 열어봤다.
47회 · 31개 작품 · 하루 · 모바일 · 로그인 안 함
39점 중 31점을 찍으며 돈 사람이었다. 직원 계정으로 로그인한 흔적도 없고, 하루 안에 끝났고, 폰이었다.
바로 아래 줄들이 더 분명했다.
27회 · 27개 작품 ← 1작품당 딱 1회
25회 · 25개 작품
작품마다 QR 을 찍으며 전시장을 한 바퀴 돈 것이다.
같은 47이 정반대 뜻이 된다
숫자만 보면 47은 분명히 튄다. 나머지 대부분이 1~5인데 혼자 47이다. 분포로만 보면 이상치가 맞다. 내가 놓친 건 그 숫자가 무엇의 개수인지였다.
- 「몇 번 눌렀나」로 읽으면 — 47번은 비정상이다. 뭔가 자동으로 반복됐거나, 같은 걸 계속 새로고침했거나
- 「몇 작품을 봤나」로 읽으면 — 47번 중 31개가 서로 다른 작품이다. 전시를 제일 열심히 본 사람이다
가르는 건 통계 지식이 아니라 그 줄을 한 번 열어보는 것이었다.
더 고약한 건 방향이다. 이상치를 지우는 처방은 조용히 성공한다. 거르개를 넣었으면 숫자는 깔끔해졌을 테고, 분포도 예뻐졌을 테고, 아무 경고도 안 떴을 것이다. 그리고 제일 관심 높은 관람객 13명이 통계에서 사라졌다는 건 영영 몰랐을 것이다.
이 서비스에서 그 13명은 후보 구매자다. 지우면 안 되는 정도가 아니라 찾아내서 따로 보여줘야 하는 사람들이다.
그래서 뭘 바꿨나
거르개는 안 만들었다. 대신 실제로 부풀려진 게 얼마인지만 다시 셌다.
433회 → 379회 (12%)
125명 → 123명 (1.6%)
정체는 둘이었다. 짧은 시간 안에 같은 작품을 다시 연 것 42회, 직원 브라우저 두 개가 찍은 13회. 처음에 겨냥했던 47회는 거기 없었다.
작업 방향도 뒤집혔다. 원래는 「부풀려진 숫자를 깎는 일」이었는데 「안 보이던 사람을 드러내는 일」이 됐다.
39점 중 31점을 본 사람 → 관람객 1명
1점만 보고 나간 사람 → 관람객 1명
↑ 화면에선 똑같이 1명
버릇 하나가 남았다. 이상치를 지우기로 결정하기 전에 그 줄을 한 번 연다. 집계된 숫자만 보면 튀는 값은 전부 오염처럼 보이는데, 원본 한 줄에는 대개 그렇게 된 이유가 적혀 있다. 여기선 「본 작품 수」라는 칸 하나가 그 답이었다.
그리고 분포에서 벗어난 값이 곧 잘못된 값은 아니다. 평균적인 사용자를 보려면 이상치를 빼는 게 맞지만, 가장 열심인 사용자를 찾는 중이라면 이상치가 곧 답이다. 무엇을 하려는지에 따라 같은 값이 잡음도 되고 신호도 된다.