고객 10명 중 9명은 1만 원, 1명은 100만 원을 결제했다. 평균은 10만 9천 원. “우리 고객은 보통 10만 원 넘게 쓴다”고 보고했는데, 실제로 그렇게 쓰는 고객은 한 명뿐이다(진단 Q1).
“평균 체류 시간 12분”이라는데, 대부분은 1분 안에 나가고 몇 명이 몇 시간씩 탭을 켜 둔 것이었다.
가장 많이 팔린 요금제를 알고 싶은데 평균을 내 보니 존재하지 않는 금액이 나왔다.
용어
대표값(central tendency) — 숫자 여러 개를 “보통은 이 정도”라는 하나의 값으로 요약한 것. 어떤 걸 고르느냐에 따라 같은 데이터가 전혀 다르게 보인다.
mean(평균, 산술평균) — 모두 더해서 개수로 나눈 값. 진단 Q1 = (1만 × 9 + 100만) ÷ 10 = 10만 9천 원. 계산이 쉽지만 극단적인 값 하나에 크게 끌려간다(상황 1).
median(중앙값) — 크기 순으로 줄 세웠을 때 한가운데 값. 개수가 짝수면 가운데 두 값의 평균. 진단 Q1은 5번째·6번째가 모두 1만 원이라 중앙값 1만 원. 극단값에 거의 흔들리지 않는다.
비유: 반 학생 10명 중 한 명이 재벌 2세면 평균 용돈은 엄청나게 오르지만, 키 순서로 서듯 용돈 순으로 섰을 때 가운데 친구의 용돈(중앙값)은 그대로다. 그래서 “보통 사람”을 말할 땐 중앙값이 정직하다.
소득·집값·결제 금액·체류 시간(상황 2)처럼 소수가 아주 큰 값을 갖는 데이터는 중앙값을 함께 본다. 뉴스에서 소득을 “중위소득”으로 말하는 이유.
mode(최빈값) — 가장 자주 나오는 값. 진단 Q1의 최빈값도 1만 원. “가장 많이 팔린 요금제”, “가장 흔한 문의 유형”처럼 종류(범주)를 다룰 땐 평균을 낼 수 없으니 최빈값을 쓴다(상황 3).
평균과 중앙값이 크게 다르다면 — 그 자체가 신호다. 소수의 극단값(이상치)이 있거나 분포가 한쪽으로 치우쳤다는 뜻(다음 레슨들에서 다룸). 하나만 보고하지 말고 둘을 함께 보고한다.
연결: 웹 용어 8번 p95(느린 쪽 기준)·인프라 용어 8번 latency percentile도 같은 발상 — 평균은 일부 사용자의 나쁜 경험을 가린다. 중앙값은 p50과 같다.
지시 예문
“고객 1인당 결제 금액을 평균만 말고 중앙값·최빈값과 함께 보여줘. 평균과 중앙값 차이가 크면 원인이 되는 상위 고객도 짚어줘.”
“평균 체류 시간 대신 중앙값과 p90 체류 시간으로 대시보드를 바꿔줘.”
“요금제별 가입 수에서 최빈값(가장 많이 고른 요금제)과 그 비율을 알려줘.”
변화량 말하기: % vs %p · 절대 vs 상대 · 기저 효과
상황
전환율이 2% → 3%가 됐다. 한 사람은 “1% 올랐다”, 다른 사람은 “50% 올랐다“고 한다(진단 Q3). 회의가 엇갈린다.
신규 기능 사용자가 10명 → 20명, “100% 성장!“이라고 보고했다. 같은 기간 기존 기능은 1,000명 → 1,010명, “1% 성장”이라 묻혔다.
매출이 지난달 50% 떨어졌다가 이번 달 50% 올라서 “회복했다”고 했는데, 실제론 원래보다 25% 적다.
용어
절대 변화(absolute change) — 숫자 자체가 얼마나 늘었나. 3 − 2 = 1.
상대 변화(relative change, 변화율) — 원래 값 대비 몇 % 늘었나. (3 − 2) ÷ 2 = 50%.
%p(퍼센트포인트, percentage point) — 비율끼리의 절대 차이를 말하는 단위. 전환율 2% → 3%는 1%p 상승이자 50% 상승. 둘 다 맞지만 다른 말이다(상황 1). 비율(전환율·리텐션·점유율)의 변화를 말할 땐 %p와 %를 구분해서 쓴다. 프로덕트 용어 1번 goal 예시에서 “D7 리텐션 +5%p”라고 적은 이유.
비유: 시험 점수 60점 → 90점. “30점 올랐다”(%p에 해당하는 절대 차이)와 “50% 올랐다”(상대 변화)는 같은 사건의 다른 표현.
“50% 개선!”은 인상적이지만 1%p짜리일 수 있다. 숫자를 받으면 둘 다 확인한다.
기저 효과(base effect) — 비교 기준(분모)이 작으면 작은 변화도 큰 %로 보이고, 기준이 크면 큰 변화도 작은 %로 보이는 현상. 10 → 20은 +100%, 1,000 → 1,010은 +1%(상황 2). 그래서 % 옆에 원래 숫자(절대값)를 같이 적는다: “+100% (10명 → 20명)”.
YoY(Year over Year, 전년 동기 대비) — 작년 같은 달 대비. 계절 영향(연말·방학)을 없애고 비교할 때.
WoW(Week over Week, 전주 대비)
지시 예문
“지표 변화를 보고할 때 비율 지표는 %p와 상대 변화(%)를 둘 다, 그리고 원래 숫자(전→후)를 괄호로 같이 적어줘.”
“이번 달 성장률 보고에서 기저 효과로 부풀려 보이는 항목을 찾아서, 절대 증가량 기준으로 다시 순위를 매겨줘.”
“매출 변화를 MoM과 YoY로 나눠서 보여줘. 계절 영향이 있는지 YoY로 판단해줘.”
분포: histogram · 치우침 · long tail · 표준편차 · 백분위수
가상 자료로 비교한 분포입니다. 오른쪽의 일부 큰 값이 긴 꼬리를 이룹니다.
상황
두 반의 평균 점수가 둘 다 70점이라 비슷한 반이라고 봤는데, 한 반은 모두 68~72점, 다른 반은 40점부터 100점까지 들쭉날쭉했다.
매출의 대부분이 극소수 고객에게서 나오는데, 평균만 봐서 몰랐다.
응답 시간 평균은 0.3초로 괜찮은데 “가끔 엄청 느리다“는 불만이 계속 온다.
용어
distribution(분포) — 값들이 어디에 얼마나 몰려 있고 어떻게 퍼져 있는지의 모양. 1번 레슨 대표값은 분포를 숫자 하나로 줄인 것이라, 줄이기 전에 모양부터 보는 게 안전하다.
histogram(히스토그램) — 값을 구간(0~1만 원, 1만~2만 원…)으로 나눠 구간마다 몇 개인지 막대로 그린 그래프. 분포를 눈으로 보는 가장 기본 도구.
skewness(치우침, 왜도) — 분포가 한쪽으로 꼬리를 길게 끄는 정도.
오른쪽 꼬리(positive skew, 양의 치우침) — 대부분은 작은 값에 몰리고 소수가 아주 큰 값. 결제 금액·소득·체류 시간·응답 시간이 전형. 이때 평균 > 중앙값이 된다(1번 레슨 진단 Q1: 평균 10만 9천 > 중앙값 1만).
정규분포(normal distribution, 종 모양) — 가운데가 볼록하고 좌우 대칭. 키·시험 점수처럼 평균 = 중앙값에 가깝다.
long tail(롱테일) — 오른쪽 꼬리가 길게 늘어진 부분. 개수는 적지만 값이 커서 합계에서 큰 몫을 차지하기도 한다(상황 2). 상위 몇 %가 매출 대부분을 내는 현상을 흔히 “80/20 법칙(파레토 법칙)“이라 부른다(정확히 80:20일 필요는 없다).
spread(퍼짐) — 값들이 얼마나 흩어져 있는지. 평균이 같아도 퍼짐은 다를 수 있다(상황 1).
variance(분산) · standard deviation(SD, 표준편차) — 값들이 평균에서 평균적으로 얼마나 떨어져 있는지. 표준편차가 원래 단위(점·원)라 읽기 쉽다. 상황 1의 두 반을 계산하면 평균은 둘 다 70점이지만 표준편차는 약 1점 vs 약 19점.
비유: 두 식당의 평균 대기 시간이 똑같이 10분이어도, 한 곳은 늘 9~11분, 다른 곳은 0분 또는 40분. 약속 잡기엔 퍼짐이 작은 곳이 낫다.
percentile(백분위수) — 작은 순으로 줄 세웠을 때 아래에서 N% 지점의 값. p50 = 중앙값, p90·p95·p99 = 느린(큰) 쪽 꼬리 확인용. 인프라 용어 8번 응답 시간 p95가 이것. 상황 3은 평균은 괜찮아도 p99가 나쁜 경우.
quartile(사분위수) — 25%·50%·75% 지점(Q1·Q2·Q3).
IQR(InterQuartile Range, 사분위 범위) — Q3 − Q1. 가운데 50%가 퍼진 폭. 극단값에 흔들리지 않는 퍼짐 지표.
box plot(상자 그림) — 사분위수를 상자로, 바깥 값들을 점으로 그린 그래프. 여러 그룹의 분포를 나란히 비교할 때 좋다.
지시 예문
“결제 금액 분포를 히스토그램으로 그리고, 오른쪽으로 치우쳤는지와 평균·중앙값 차이를 같이 알려줘.”
“상위 10% 고객이 전체 매출의 몇 %를 차지하는지 계산해줘.”
“두 요금제 사용자의 월 사용 시간을 box plot으로 나란히 비교하고, 평균 말고 중앙값과 IQR로 설명해줘.”
“API 응답 시간을 평균 대신 p50·p95·p99로 보여주고, p99가 나쁜 엔드포인트를 찾아줘.”
이상치와 데이터 정제: outlier · 결측치 · 중복 · 테스트 데이터 · GIGO
상황
결제 데이터에 9,999,999원짜리 주문이 하나 있어 평균이 크게 튀었다. 알고 보니 개발자가 넣은 테스트 주문이었다.
나이 칸에 0살, 150살이 섞여 있고, 비어 있는 칸도 많다.
같은 주문이 두 번 기록돼 매출이 부풀었다(웹 용어 27번 중복 제출 흔적).
방문자 수가 갑자기 3배가 됐는데 봇 트래픽이었다.
용어
outlier(이상치) — 다른 값들과 동떨어지게 크거나 작은 값. 원인은 둘로 갈린다. 먼저 어느 쪽인지 확인한다.
오류(error) — 입력 실수, 테스트 데이터, 단위 혼동(원 vs 천 원), 시스템 버그. → 고치거나 뺀다(상황 1).
진짜 극단값 — 실제로 존재하는 VIP 고객, 대박 난 하루. → 빼면 안 된다. 3번 레슨 long tail처럼 중요한 정보일 수 있다. 따로 분석하거나 중앙값(1번 레슨)처럼 흔들리지 않는 지표를 쓴다.
비유: 반 키 측정에서 2m 50cm가 나왔다. 측정 실수인지(오류), 농구부 학생인지(진짜) 확인하지 않고 지우면, 진짜 농구부 학생을 없는 사람 취급하게 된다.
이상치 찾는 법
IQR 규칙 — 3번 레슨 IQR(InterQuartile Range, 사분위 범위)의 1.5배보다 Q1 아래·Q3 위로 더 벗어난 값을 이상치 후보로 본다. box plot의 바깥 점들이 이것.
z-score(표준점수) — 평균에서 표준편차 몇 개만큼 떨어졌나. 보통 ±3을 넘으면 의심. 분포가 치우쳐 있으면 잘 안 맞아 IQR이 더 안전하다.
이상치 다루는 법 — 빼기(오류일 때), capping(상한 고정)(예: 상위 1% 값을 그 경계값으로 눌러 두기), 따로 분석, 로그 변환(아주 큰 값의 영향을 줄여 그래프를 읽기 쉽게). 어떻게 처리했는지는 반드시 기록한다.
missing value(결측치) — 값이 비어 있는 칸(DB 용어 6번 NULL). 처리 방법: 빼고 분석, 다른 값으로 채우기(평균·중앙값·”모름” 범주), 그대로 두고 비율 보고. 왜 비었는지가 중요하다 — 선택 항목이라서인지, 특정 기기에서 수집이 안 돼서인지에 따라 결과가 치우친다(다음 레슨들의 표본 편향).
duplicate(중복) — 같은 기록이 여러 번 들어간 것(상황 3). 주문 ID처럼 고유한 키(DB 용어 1번 PK)로 중복을 찾는다.
테스트·내부·봇 데이터 — 직원 계정, QA(Quality Assurance) 테스트 주문, 크롤러·봇 방문(인프라 용어 14번)은 분석에서 빼야 실제 사용자 모습이 보인다(상황 1·4). 처음부터 표시(플래그)해 두면 편하다.
data cleaning(데이터 정제) — 위 문제들을 분석 전에 찾아 고치는 작업. 분석 시간의 상당 부분이 여기에 든다.
GIGO(Garbage In, Garbage Out) — “쓰레기를 넣으면 쓰레기가 나온다.” 데이터가 엉망이면 아무리 좋은 분석·AI도 엉터리 결론을 낸다.
지시 예문
“결제 금액에서 IQR 규칙으로 이상치 후보를 뽑아주고, 각각 테스트 주문·입력 오류·진짜 고액 고객 중 무엇인지 근거와 함께 분류해줘. 바로 지우지 말고.”
“분석 전에 데이터 정제부터 해줘: 직원·테스트 계정 제외, 주문 ID 중복 제거, 봇 트래픽 제외. 각각 몇 건 뺐는지 보고.”
“나이 칸의 결측치와 비정상 값(0, 150 등) 비율을 알려주고, 결측이 특정 가입 경로에 몰려 있는지 확인해줘.”
“앞으로 테스트 주문은 is_test 플래그를 달아서 기록되게 해줘.”
상관 vs 인과: correlation · causation · 교란 변수 · 역인과
두 현상이 함께 증가해도 서로 원인·결과라는 뜻은 아닙니다. 공통 원인을 확인해야 합니다.
상황
여름에 아이스크림 판매량이 늘 때 물놀이 사고도 늘었다. “아이스크림이 사고를 일으킨다“는 결론을 냈다(진단 Q2).
다크 모드를 켠 사용자의 리텐션이 2배 높다. 그래서 모든 사용자에게 다크 모드를 강제로 켰는데 리텐션은 그대로였다.
고객센터에 문의를 많이 한 고객일수록 해지율이 높다. “고객센터가 고객을 쫓아낸다”며 고객센터를 줄이자는 말이 나왔다.
용어
correlation(상관관계) — 두 값이 함께 움직이는 관계. 하나가 오를 때 다른 것도 오르면(아이스크림↑·사고↑) 양의 상관, 반대로 움직이면 음의 상관.
correlation coefficient(상관계수, r) — 함께 움직이는 정도를 −1 ~ +1 숫자로. +1에 가까울수록 같이 오르고, −1이면 반대로, 0이면 거의 무관. 직선 관계만 잰다.
causation(인과관계) — 하나가 원인이 되어 다른 것을 일으키는 관계. 상관은 인과의 증거가 아니다: “상관관계는 인과관계가 아니다(Correlation does not imply causation)“가 진단 Q2에서 물은 유명한 말.
함께 움직이는데 인과가 아닌 세 가지 경우
confounding variable(교란 변수, 숨은 제3의 원인) — 둘 다를 동시에 움직이는 다른 원인. 아이스크림과 물놀이 사고는 둘 다 더운 날씨 때문에 늘었다(상황 1).
상황 2도 같다: 다크 모드를 스스로 찾아 켜는 사람은 원래 앱을 많이 쓰는 열성 사용자다. 리텐션을 높인 건 다크 모드가 아니라 “열성”이라는 숨은 원인.
reverse causality(역인과) — 원인과 결과가 거꾸로. 고객센터가 해지를 부른 게 아니라, 불만이 있는 고객이 문의도 많이 하고 해지도 하는 것(상황 3).
spurious correlation(우연한 상관) — 아무 관련 없는데 우연히 같이 움직인 것. 데이터를 많이 뒤지면 이런 짝은 반드시 나온다.
비유: 병원에 환자가 많은 동네일수록 의사도 많다. 의사가 병을 퍼뜨리는 게 아니라, 아픈 사람이 많은 곳에 병원이 생긴 것(역인과·교란).
인과를 확인하는 법 — 원인으로 의심되는 것을 무작위로 바꿔 보는 실험. 그로스 용어 5번 A/B 테스트가 바로 이것: 무작위로 나누면 “열성”·”날씨” 같은 숨은 원인이 양쪽에 고르게 섞여서, 남는 차이는 바꾼 것 때문이라고 볼 수 있다. 상황 2는 강제 적용 전에 다크 모드를 무작위로 켜 보는 실험을 했어야 했다.
실험이 불가능할 때는 교란 변수를 같게 맞춘 그룹끼리 비교(예: 사용 빈도가 비슷한 사람끼리)하지만, 실험보다 결론이 약하다.
연결: 마케팅 디지털 8번 incrementality(광고가 없었어도 샀을 사람 빼기), 그로스 2번 activation metric(리텐션과 연결된 행동 찾기)도 결국 “상관인가 인과인가”의 문제다. activation metric 후보는 실험으로 확인한다.
지시 예문
“다크 모드 사용자의 리텐션이 높은 이유가 다크 모드 때문인지, 원래 활동량이 많은 사람이라서인지 구분하고 싶어. 사용 빈도가 비슷한 사람끼리 비교해 주고, 확실히 하려면 어떤 A/B 테스트가 필요한지 설계해줘.”
“이 분석 결과에서 상관관계를 인과관계처럼 말한 문장을 찾아서 고쳐줘. 가능한 교란 변수와 역인과 가능성도 적어줘.”
“고객센터 문의 수와 해지율의 관계를 볼 때, 문의 ‘이전’의 불만 신호(별점, 오류 발생)를 함께 넣어서 역인과 가능성을 점검해줘.”
표본과 편향: population · sample · 선택 편향 · 생존자 편향 · 무응답 편향
상황
만족도 설문을 앱 안에 띄웠더니 만족도 92%. 그런데 해지율은 계속 오른다. 불만인 사람은 이미 앱을 안 열어서 설문을 못 봤다.
“오래 쓴 고객의 공통점”을 분석해서 그대로 따라 했는데 효과가 없다. 떠난 고객도 같은 행동을 했었다.
친구 10명에게 물어보니 다 “좋다”고 해서 출시했는데, 시장 반응은 싸늘했다.
용어
population(모집단) — 알고 싶은 전체 대상. “우리 서비스의 모든 사용자”, “국내 20대 직장인 전체”.
sample(표본) — 그중 실제로 조사·측정한 일부. 표본으로 모집단을 추측한다.
표본이 너무 작으면 우연에 흔들린다(그로스 용어 5번 sample size, p값).
표본이 치우쳐 있으면, 아무리 커도 틀린다. 크기보다 대표성이 먼저.
비유: 국 간 보기. 잘 저은 국은 한 숟가락만 떠도 맛을 안다. 안 저은 국에서 위쪽만 뜨면 열 숟가락을 떠도 짜다는 걸 모른다.
representative sample(대표 표본) — 모집단의 구성을 골고루 닮은 표본. 가장 확실한 방법은 무작위 추출.
sampling bias · selection bias(표본 편향·선택 편향) — 표본을 뽑는 방식 때문에 특정 사람이 더 많이(또는 적게) 들어가 결과가 치우치는 것. 친구 10명(상황 3)은 나와 비슷한 사람들이라 시장을 대표하지 못한다.
survivorship bias(생존자 편향) — 살아남은 것만 보고 결론을 내리는 오류(상황 2). 떠난 사람·실패한 사례는 데이터에 안 보이기 때문에 생긴다.
흔히 인용되는 예: 2차 세계대전 때 돌아온 폭격기의 총알 자국을 보고 그 부위를 보강하자고 했는데, 통계학자 에이브러햄 왈드는 총알 자국이 없는 부위를 보강하라고 했다. 그 부위를 맞은 비행기는 돌아오지 못했기 때문.
“성공한 창업자는 다 대학을 중퇴했다”도 같은 함정 — 중퇴하고 실패한 수많은 사람은 기사에 안 나온다.
대책: “오래 쓴 고객의 특징”은 떠난 고객과 반드시 비교한다(그로스 용어 4번 behavioral cohort).
non-response bias(무응답 편향) — 응답한 사람과 안 한 사람이 다를 때 생기는 편향. 상황 1: 설문은 아직 앱을 쓰는 사람만 봤다. 앱 리뷰도 아주 만족하거나 아주 화난 사람이 주로 쓴다.
self-selection bias(자기 선택 편향) — 참여 여부를 본인이 고르면서 생기는 치우침. 무응답 편향의 한 종류.
연결: 데이터 4번 레슨 결측치도 “왜 비었나”가 편향을 만든다. 그로스 5번 A/B 테스트의 무작위 배정은 이 모든 편향을 피하려는 장치.
지시 예문
“만족도 설문 결과를 해석하기 전에, 응답자와 무응답자의 사용 빈도·가입 기간을 비교해서 무응답 편향이 있는지 확인해줘.”
“장기 사용자의 특징을 분석할 때 생존자 편향이 없도록, 같은 기간에 가입했다가 떠난 사용자와 반드시 비교해줘.”
“사용자 인터뷰 대상을 뽑아줘. 열성 사용자만 말고 가입 후 이탈한 사람, 가끔 쓰는 사람을 골고루 섞어서 대표성 있게.”
“이 결론이 어떤 표본에서 나왔는지, 그 표본이 전체 사용자를 대표하는지 먼저 설명하고 결론을 말해줘.”
랜딩 페이지 A와 B를 비교했더니 전체 전환율은 A가 9%, B가 7%. A가 이겼다고 판단했다. 그런데 데스크톱끼리, 모바일끼리 나눠 보니 둘 다 B가 더 높았다.
전체 전환율이 지난달보다 떨어져서 페이지를 고치려 했는데, 기기별로 보면 어느 쪽도 떨어지지 않았다. 모바일 방문자 비중만 늘었을 뿐이었다.
용어
segment(세그먼트) — 데이터를 의미 있는 기준으로 나눈 그룹. 기기(데스크톱·모바일), 유입 채널, 신규·기존, 요금제 등(마케팅 디지털 7번, 그로스 4번 코호트도 세그먼트의 한 종류).
Simpson’s paradox(심슨의 역설) — 각 그룹 안에서는 한쪽이 이기는데, 그룹을 합쳐 보면 결과가 뒤집히는 현상(상황 1).
상황 1의 숫자:
데스크톱
모바일
전체
A
800명 중 80 → 10%
200명 중 10 → 5%
1,000명 중 90 → 9%
B
200명 중 22 → 11%
800명 중 48 → 6%
1,000명 중 70 → 7%
B는 데스크톱(11% > 10%)에서도 모바일(6% > 5%)에서도 이기지만, 전체에선 진다. 이유는 구성 비율: A는 원래 전환율이 높은 데스크톱 방문자가 80%, B는 전환율이 낮은 모바일 방문자가 80%였다. 둘을 합친 숫자는 페이지 실력이 아니라 방문자 구성 차이를 비교한 셈.
비유: 두 병원의 전체 생존율. 큰 병원이 더 낮아 보이지만, 큰 병원은 중환자를 더 많이 받는다. 경증·중증으로 나눠 보면 둘 다 큰 병원이 더 잘 살린다.
5번 레슨 교란 변수가 그룹 구성을 통해 끼어든 대표적인 경우. 그로스 5번 A/B 테스트에서 무작위 배정을 하면 양쪽 구성이 비슷해져 이 역설을 피할 수 있다. 상황 1은 배정이 무작위가 아니었다는 신호.
mix shift(구성 변화) — 각 그룹의 성과는 그대로인데 그룹 비중이 바뀌어서 전체 숫자가 움직이는 것(상황 2). 전체 전환율 하락이 “제품이 나빠짐”이 아니라 “전환율 낮은 그룹이 늘어남“일 수 있다. 그로스 4번 레슨에서 광고로 신규 가입자가 몰리면 전체 리텐션이 내려가던 것과 같은 원리.
원칙 — 전체 숫자만 보고 결론 내리지 말고, 주요 세그먼트로 쪼개서 같은 방향인지 확인한다. 방향이 다르면 구성 비율부터 본다.
지시 예문
“A/B 결과를 전체로만 보지 말고 기기·유입 채널·신규/기존별로 쪼개서 보여줘. 세그먼트마다 승자가 같은지, 심슨의 역설이 있는지 확인해줘.”
“전체 전환율이 떨어진 원인을 세그먼트별 전환율 변화와 세그먼트 비중 변화(mix shift)로 나눠서 분해해줘.”
“이 실험의 두 그룹 구성(기기·채널 비율)이 비슷한지 먼저 확인하고, 다르면 무작위 배정이 제대로 됐는지 점검해줘.”
시계열: trend · seasonality · noise · 이동평균 · 누적 그래프
상황
일별 가입자 그래프가 매일 들쭉날쭉해서 늘고 있는지 줄고 있는지 판단이 안 된다.
월요일 가입이 금요일보다 30% 많아서 “월요일 광고가 잘 먹힌다“고 결론 냈는데, 광고를 안 한 주도 월요일이 높았다.
“누적 가입자 10만 돌파!” 그래프는 계속 오르기만 하는데, 실제로는 최근 신규 가입이 줄고 있었다.
12월 매출이 11월보다 크게 올라 성장이라 보고했는데, 작년 12월도 똑같이 올랐다.
용어
time series(시계열) — 시간 순서로 기록된 값들. 일별 가입자, 주간 매출, 시간대별 접속자.
시계열은 대개 세 가지가 섞여 있다. 분석은 이 셋을 떼어 보는 것.
trend(추세) — 길게 봤을 때 올라가나, 내려가나. 진짜 알고 싶은 것.
seasonality(계절성, 주기성) — 정해진 주기로 반복되는 오르내림. 요일(평일 높고 주말 낮음), 월(월급날), 연(연말·방학·명절). 상황 2의 “월요일 효과”는 광고가 아니라 요일 주기였다.
noise(잡음) — 아무 의미 없는 우연한 출렁임. 하루 이틀 튀는 건 대부분 이것.
비유: 바닷가 수위. 밀물·썰물(계절성)과 파도(잡음) 때문에 매 순간 높이가 달라서, 해수면이 정말 오르는지(추세)는 오래 평균 내 봐야 안다.
moving average(이동평균) — 최근 N일의 평균을 하루씩 밀면서 계산한 선. 잡음을 줄여 추세가 보인다(상황 1 해결).
7일 이동평균 — 한 주(7일)를 통째로 평균 내니 요일 주기가 상쇄된다. 일별 지표에 가장 흔히 쓴다.
같은 주기끼리 비교 — 계절성이 있으면 같은 시점끼리 비교한다. 이번 월요일은 지난 월요일과, 이번 12월은 작년 12월과(2번 레슨 YoY(Year over Year, 전년 동기 대비), WoW(Week over Week, 전주 대비)). 상황 4는 12월을 11월과 비교해서 생긴 착각.
cumulative chart(누적 그래프) — 지금까지의 합계를 그린 그래프. 새 값이 0이 아닌 한 절대 내려가지 않아서, 성장이 둔화되거나 멈춰도 계속 오르는 것처럼 보인다(상황 3). 성장을 볼 땐 기간별 신규(일·주·월 단위)를 본다. 홍보용으론 쓰여도 판단용으론 위험하다.
anomaly(이상 변동) — 평소 출렁임(잡음·계절성) 범위를 벗어난 변화. 장애, 봇 유입(4번 레슨), 언론 보도, 경쟁사 이벤트 등 원인이 있는 변화일 가능성이 크다. 인프라 용어 8번 alert의 기준이 된다.
annotation(주석 달기) — 그래프에 배포·캠페인·장애·공휴일 같은 사건 날짜를 표시해 두는 것. 숫자가 튄 이유를 나중에 바로 찾을 수 있다.
지시 예문
“일별 가입자 그래프에 7일 이동평균선을 겹쳐 그리고, 추세가 오르는지 내리는지 판단해줘.”
“요일별 평균 가입자를 계산해서 요일 계절성이 있는지 확인하고, 월요일 광고 효과는 같은 요일끼리 비교해서 다시 평가해줘.”
“누적 가입자 그래프 대신 주간 신규 가입자 그래프로 바꾸고, 최근 4주 추세를 알려줘.”
“12월 매출 성장을 MoM(Month over Month) 말고 YoY로 다시 계산하고, 그래프에 배포·캠페인·장애 날짜를 주석으로 달아줘.”
분모 고르기: normalization · per-user 지표 · 기저율 무시
상황
“서울 지역 매출이 제주보다 20배 많다”며 서울 마케팅을 늘리자고 했는데, 사용자 1인당 매출은 제주가 더 높았다.
버그 신고가 지난달보다 2배 늘어 품질이 나빠졌다고 걱정했는데, 같은 기간 사용자도 3배 늘었다.
“정확도 99%” 사기 탐지 기능을 넣었더니, 의심 판정을 받은 사람 대부분이 정상 고객이라 항의가 쏟아졌다.
용어
절대 수치 vs 비율 — 총합(매출 총액, 버그 수)은 규모가 큰 쪽이 당연히 크다. 공정하게 비교하려면 알맞은 분모로 나눈다(2번 레슨 기저 효과와 같은 뿌리).
normalization(정규화, 기준 맞추기) — 크기가 다른 대상을 비교할 수 있게 같은 기준으로 나누는 것.
per-user(사용자당) — 1인당 매출(그로스 용어 7번 ARPU(Average Revenue Per User)), 1인당 버그 신고.
per 1,000 / 비율 — 1,000명당 신고 수, 사용자 대비 오류율. 상황 2는 버그 수 2배 ÷ 사용자 3배 → 사용자당 신고는 오히려 줄었다.
per unit of time(시간당) — 기간 길이가 다르면 일평균으로 맞춘다(31일인 달 vs 28일인 달).
비유: 두 나라의 교통사고 사망자 수. 인구 5천만 명과 5백만 명인 나라를 총수로 비교하면 당연히 큰 나라가 많다. 인구 10만 명당으로 나눠야 어디 도로가 더 위험한지 안다.
분모를 무엇으로 할지가 결론을 바꾼다 — 같은 “전환율”도 방문자 대비인지, 상품 조회자 대비인지, 장바구니 담은 사람 대비인지에 따라 다르다(마케팅 디지털 1번 “분모를 밝혀라”). 지표를 정의할 때 분모를 명시한다.
base rate(기저율) — 어떤 일이 원래 얼마나 흔한지의 비율. 사기 고객이 전체의 0.1%라면 기저율은 0.1%.
base rate fallacy(기저율 무시) — 판정의 정확도만 보고 원래 드문지를 무시해서 생기는 착각(상황 3).
계산: 고객 10만 명 중 사기 100명(0.1%). 탐지기가 사기의 99%를 잡고, 정상 고객의 1%를 잘못 의심한다면 → 사기 적발 99명, 정상인데 의심 999명. 의심받은 1,098명 중 진짜 사기는 약 9%뿐.
“99% 정확”해도 대상이 아주 드물면, 의심 판정 대부분은 오판이 된다. 그래서 드문 일을 잡는 시스템은 의심 → 바로 차단 대신 추가 확인 단계를 둔다.
연결: 그로스 용어 5번 A/B 테스트에서도 “대부분의 실험은 실패한다“는 기저율을 알면, 우연히 이긴 결과에 덜 속는다.
지시 예문
“지역별 매출을 총액 말고 사용자당 매출(ARPU)과 사용자 수로 나눠서 비교해줘.”
“버그 신고 추이를 사용자 1,000명당 신고 수로 정규화해서 다시 그려줘.”
“이 대시보드의 모든 비율 지표에 분모가 무엇인지 각주로 명시해줘.”
“사기 탐지 규칙의 정확도만 말고, 실제 사기 비율(기저율)을 고려해서 ‘의심 판정 중 진짜 사기 비율’을 계산해줘. 낮으면 차단 대신 추가 인증으로 바꾸는 안을 제안해줘.”
불확실성 말하기: 신뢰구간 · 오차 범위 · 통계적 유의성 vs 실무적 의미
상황
방문자 1,000명 중 30명이 구매해서 “전환율 3%“라고 딱 잘라 보고했다. 다음 달 2.2%가 나오자 “급락했다”며 비상이 걸렸다.
A/B 테스트에서 B가 통계적으로 유의하게 이겼다(그로스 용어 5번). 그런데 차이는 0.05%p라서, 바꾸는 데 드는 개발 비용을 생각하면 의미가 없었다.
여론조사 결과 두 후보가 48% vs 46%인데 뉴스는 “접전”이라고 한다. 왜 앞선다고 하지 않는지 모르겠다.
용어
point estimate(점 추정) — “3%”처럼 숫자 하나로 말하는 것. 깔끔하지만 얼마나 확실한지가 빠져 있다.
confidence interval(CI, 신뢰구간) — 진짜 값이 있을 법한 범위. “전환율 3% (95% 신뢰구간 1.9% ~ 4.1%)”처럼 말한다.
방문자 1,000명 중 30명 구매면 95% 신뢰구간이 대략 1.9% ~ 4.1%. 다음 달 2.2%는 그 범위 안이라 급락이 아니라 평범한 출렁임일 수 있다(상황 1).
표본이 클수록 범위가 좁아진다: 같은 3%라도 1만 명이면 약 2.7% ~ 3.3%. 6번 레슨 표본 크기의 효과를 숫자로 보는 방법.
비유: 일기예보 “내일 최고 기온 25도” vs “23~27도”. 범위를 말해 주는 쪽이 정직하고, 범위가 넓을수록 아직 잘 모른다는 뜻.
“95%”는 같은 방식으로 여러 번 조사하면 그중 95%의 구간이 진짜 값을 포함한다는 뜻이다. “진짜 값이 이 범위에 있을 확률이 95%”와는 엄밀히 다르지만, 실무에선 “이 정도 범위로 보면 꽤 믿을 만하다“로 이해해도 된다.
margin of error(오차 범위) — 신뢰구간의 반 폭. “3% ± 1.1%p”. 여론조사의 “±3%p”가 이것. 상황 3은 두 후보 차이(2%p)가 오차 범위 안이라 어느 쪽이 앞선다고 말할 수 없어서 “접전”.
두 값의 신뢰구간이 크게 겹치면 차이가 있다고 말하기 어렵다.
statistical significance vs practical significance(통계적 유의성 vs 실무적 의미) — 그로스 용어 5번 p값은 “차이가 우연이 아닌가“만 말한다. “그 차이가 중요할 만큼 큰가“는 별개다.
표본이 아주 크면 아주 작은 차이도 통계적으로 유의하게 나온다(상황 2). 의미가 있으려면 effect size(효과 크기), 즉 차이 자체의 크기를 함께 보고, 그 차이가 비용·노력에 비해 값어치가 있는지 판단한다.
반대로 표본이 작으면 진짜 큰 차이도 유의하게 안 나올 수 있다 — “유의하지 않음”이 “차이 없음”은 아니다(그로스 용어 5번 MDE(Minimum Detectable Effect)).
보고 원칙 — 숫자 하나 대신 값 + 범위 + 표본 크기. “전환율 3.0% (95% CI 1.9~4.1%, n=1,000)”. 결론엔 확실한 정도를 같이 말한다.
지시 예문
“주요 지표를 보고할 때 점 추정만 말고 95% 신뢰구간과 표본 크기(n)를 같이 적어줘.”
“이번 달 전환율 하락이 지난달 신뢰구간 밖인지 확인해서, 진짜 변화인지 평범한 출렁임인지 판단해줘.”
“A/B 테스트 결과를 p값만 말고, 차이의 크기(effect size)와 신뢰구간, 그리고 그 차이가 월 매출로 얼마인지 환산해서 실무적으로 의미 있는지 판단해줘.”
차트 고르기와 시각화 함정: 축 자르기 · 이중 축 · 체리피킹
상황
경쟁사 대비 우리 만족도 막대그래프가 3배 차이처럼 보였는데, 숫자를 보니 81점 vs 83점이었다. 세로축이 80부터 시작했다.
카테고리 12개짜리 원그래프에서 어느 조각이 더 큰지 아무도 구분하지 못했다.
이번 분기 성장 그래프가 멋지게 우상향인데, 알고 보니 가장 낮았던 달부터 잘라서 보여준 것이었다.
광고비(왼쪽 축)와 매출(오른쪽 축)을 한 그래프에 겹쳤더니 두 선이 딱 붙어 움직여서 광고 효과가 엄청나 보였다.
용어
질문에 맞는 차트 고르기
line chart(꺾은선 그래프) — 시간에 따른 변화(8번 레슨 시계열, 추세).
bar chart(막대그래프) — 항목끼리 크기 비교(채널별 가입 수). 항목이 많으면 가로 막대로, 큰 순서로 정렬하면 읽기 쉽다.
scatter plot(산점도) — 두 값의 관계(5번 레슨 상관). 점 하나가 한 사람·한 항목.
pie chart(원그래프) — 전체 중 비율, 그것도 조각 2~4개일 때만. 사람 눈은 각도·면적 비교에 약해서 조각이 많으면 막대가 낫다(상황 2).
table(표) — 정확한 숫자를 찾아봐야 할 때. 그래프는 모양·추세를, 표는 값을 전달한다.
truncated axis(세로축 자르기) — 막대그래프의 세로축을 0이 아닌 값에서 시작하면 작은 차이가 거대해 보인다(상황 1). 막대는 길이로 크기를 비교하는 그래프라 0부터 시작해야 정직하다. (꺾은선 그래프는 변화 모양을 보는 거라 0이 아니어도 되지만, 그 사실을 알 수 있게 축을 표시한다.)
비유: 키 170cm와 172cm를 165cm부터 그린 그림에 세우면 한 사람이 두 배 커 보인다.
dual axis(이중 축) — 왼쪽·오른쪽에 서로 다른 눈금을 두고 두 지표를 겹치는 그래프. 눈금을 어떻게 잡느냐에 따라 두 선을 마음대로 붙이거나 떼어 놓을 수 있어서, 없는 관계가 있어 보인다(상황 4). 5번 레슨 상관을 인과처럼 보이게 만드는 단골 수법. 두 지표 관계는 산점도나 따로 그린 그래프 두 개로 보는 게 안전하다.
cherry-picking(체리피킹, 골라 담기) — 결론에 유리한 기간·데이터만 골라 보여주는 것(상황 3). 체리 중 잘 익은 것만 골라 담는 데서 온 말. 대책: 기간을 넉넉히(최소 1년, 8번 레슨 계절성 포함), 기간을 정한 이유를 밝히기.
3D·장식 효과 — 입체 막대·입체 원그래프는 원근감 때문에 크기가 왜곡된다. 장식보다 정확한 비교가 먼저(UI 용어 15번 미니멀과 같은 원칙).
좋은 차트의 기본 — 제목에 결론 한 줄(“모바일 전환율이 3개월째 하락”), 축 이름과 단위, 데이터 출처와 기간, 9번 레슨 분모(무엇 대비 비율인지).
지시 예문
“채널별 가입 수는 큰 순서로 정렬한 가로 막대그래프로, 세로축은 0부터 시작하게 그려줘.”
“이 원그래프는 조각이 12개라 읽기 어려워. 상위 5개 + 기타로 묶은 막대그래프로 바꿔줘.”
“광고비와 매출 이중 축 그래프 대신, 주별 광고비와 매출의 산점도로 관계를 보여주고 상관계수도 알려줘. 인과라고 말하지는 말고.”
“성장 그래프를 최근 3개월 말고 최근 12개월로 다시 그려서, 기간을 골라 담은 효과가 없는지 확인해줘. 차트 제목은 결론 한 줄로.”