jacobhan.me

통계 모델링 · 데이터 분석

데이터는 어떻게 태어나는가: 우도 함수와 데이터 생성 모델

관측된 숫자 뒤에는 그것을 낳은 현상과 관측 과정이 있다. 데이터 유형에 맞는 우도(likelihood, 가능도) 함수를 고르는 일은, 그 생성 과정을 진술하는 작업이다.


데이터를 다루는 일은 흔히 “숫자 더미를 정리하는 일”로 여겨진다. 그러나 분석의 출발점에서 던져야 할 질문은 정리 방법이 아니라 그 앞에 있다. 이 숫자는 어떤 현상에서, 어떤 관측 과정을 거쳐 우리에게 도달했는가. 같은 대상이라도 무엇으로, 어떻게 보았느냐에 따라 전혀 다른 데이터가 남는다. 통계 모델링에서 이 “어떻게 생겨났는가”를 수식으로 옮긴 장치가 바로 우도 함수다.

우도는 우리가 가진 세계관, 즉 “이 현상이 바깥세상에 어떻게 흔적을 남기는가”에 대한 믿음을 담는다. 관측이 어떤 변환과 잡음을 거치는지, 어떤 불확실성을 안고 있는지가 모두 여기에 새겨진다. 이 글의 핵심 주장은 단순하다. 우도는 미리 정해진 목록에서 골라 쓰는 부품이 아니라, 데이터가 태어난 이야기를 직접 쓰는 일이라는 것이다. 정규분포 하나를 습관처럼 얹는 순간, 결과는 나오더라도 그 결과가 무엇을 뜻하는지는 불투명해진다.

아래 그림은 이 글 전체를 관통하는 구도다. 우리가 실제로 손에 쥐는 것은 맨 오른쪽 상자, 곧 관측된 데이터뿐이다. 그 데이터를 낳은 현상과 관측 과정은 직접 보이지 않는다. 우도 함수는 “현상에서 데이터로” 향하는 화살표 전체를 하나의 확률식으로 표현한 것이다.

잠재 현상 우리가 알고 싶은 것 (모수 θ) 관측 과정 변환 · 노이즈 부분 관측 · 검열 관측 데이터 우리가 실제로 보는 것 (y) 우도 p(y | θ): 모수에서 데이터로 가는 화살표를 수식으로 쓴 것 관측 가능 직접 보이지 않음
현상(모수)에서 관측 과정을 거쳐 데이터에 이르는 흐름. 분석가가 직접 보는 것은 데이터뿐이며, 우도 함수는 모수에서 데이터로 향하는 화살표를 확률식 p(y | θ)로 적은 것이다.

1.우도란 무엇인가 — 데이터가 태어난 이야기

우도 함수는 두 가지 일을 동시에 한다. 첫째, 어떤 값이 애초에 가능한가를 정한다. 데이터가 정수라면, 소수점이 붙은 실수를 허용하는 우도는 그 데이터를 결코 설명하지 못한다. 둘째, 불확실성을 어떻게 이해하는가를 정한다. 같은 평균값 주변이라도 관측이 좁게 모이는지 넓게 흩어지는지, 어느 쪽으로 치우치는지, 극단값이 얼마나 나올 수 있는지가 여기서 결정된다.

현실의 데이터는 단정한 분포를 좀처럼 따르지 않는다. 측정 오차(measurement error)가 있고, 잡음(noise)의 크기가 시간이나 조건에 따라 변하며, 이론이 예측하는 것보다 훨씬 많이 출렁이는 과대산포(overdispersion)가 나타나고, 0이 비정상적으로 많이 찍히는 과잉 0(excess zeros) 현상이 끼어든다. 이런 사정을 무시하고 정규분포 하나로 모든 것을 덮으면, 추정값은 얻더라도 그 값이 현실의 어떤 측면에 대응하는지 알 수 없게 된다.

그래서 우도의 선택은 모델을 만드는 사람이 문제를 얼마나 이해했는지를 가장 먼저 드러내는 시험이다. 우도를 무엇으로 잡느냐에 따라 뒤따르는 사전분포(prior, 사전 믿음)의 형태까지 달라지기 때문에, 이 결정은 모델 전체의 골격을 정한다.

비유: 우도는 목격자의 진술 방식

같은 교통사고라도 그것을 눈으로 본 행인, 소리로 들은 옆 가게 주인, 블랙박스 영상으로 확인한 보험사가 남기는 기록은 서로 다르다. 행인은 색과 형태를, 주인은 충돌음의 크기와 시점을, 영상은 정확한 시간을 남긴다. 세 기록 모두 같은 사건을 가리키지만, 무엇으로 관측했는가에 따라 담기는 정보와 오차의 성격이 다르다.

우도 함수는 “우리가 이 현상을 어떤 방식으로 관측했고, 그래서 어떤 오차를 안고 있는가”를 진술하는 장치다. 진술 방식을 잘못 고르면, 아무리 정교하게 계산해도 엉뚱한 사건을 묘사하게 된다.

2.모델의 두 부분 — 체계적 부분과 확률적 부분

통계 모델은 대개 두 조각으로 이루어진다. 체계적 부분(systematic part)은 예측변수(predictor, 설명변수)가 관심 있는 양을 어느 방향으로 끌고 가는가를 정한다. 분포의 중심 위치, 사건이 일어나는 비율, 성공 확률 같은 것들이 예측변수에 따라 결정론적으로 움직이는 부분이다. 확률적 부분(stochastic part)은 그렇게 정해진 중심 주변에서 실제 관측이 어떻게 흩어지는가를 정한다.

가장 익숙한 예가 정규분포(normal distribution)다. 정규분포는 평균(mean)과 표준편차(standard deviation) 두 값만으로 완전히 규정된다. 평균이 중심 위치를, 표준편차가 흩어짐의 폭을 맡는다. 여기서 평균을 상수로 두지 않고 예측변수의 함수로 바꾸면 — 가령 평균 = 절편 + 계수·예측변수 — 이것이 곧 선형회귀(linear regression)다. 분포의 가족은 그대로지만, 이제 모델은 “예측변수가 변할 때 기대되는 반응이 어떻게 달라지는가”를 말하게 된다.

한 가지 짚어 둘 점이 있다. 분포의 중심을 가리키는 모수를 통계학에서는 위치모수(location parameter)라 부르는데, 이것이 반드시 평균인 것은 아니다. 평균이 정의되지 않는 분포도 있으며, 그때는 “분포가 모여 있는 기준점”이라는 더 일반적인 뜻으로 위치모수를 쓴다.

또한 예측변수를 평균에만 넣을 이유는 없다. 정당한 근거가 있다면 표준편차에도, 성공 확률에도, 사건 비율에도 함수 관계를 부여할 수 있다. 예컨대 전자기 잡음이 큰 장치 두 대가 가까워질수록 서로에게 주는 간섭이 커진다면, 표준편차를 “두 장치 사이 거리의 함수”로 모델링하는 것은 전적으로 합당하다. 베이즈(Bayes) 통계의 장점이 여기에 있다. 정당화하고 계산할 수만 있다면, 원하는 구조를 거의 무엇이든 모델에 넣을 수 있다.

예측변수 (predictor) 반응값 (response) 체계적 부분: 추세 확률적 부분: 산포
체계적 부분(직선=추세)과 확률적 부분(직선 주변의 띠와 산포). 모델을 설계한다는 것은 추세의 모양과 그 주변 흩어짐의 성격을 함께 정하는 일이다.

3.연속형 데이터 — 실수, 양수, 그리고 꼬리

값이 끊기지 않고 이어지는 연속형(continuous) 데이터라 해도 한 종류가 아니다. 실수 전체를 취할 수 있는 경우, 양수만 가능한 경우, 정해진 구간 안에만 머무는 경우가 다르다. 흩어짐의 모양도 좌우 대칭일 수도, 한쪽으로 치우친 왜도(skewness)를 가질 수도, 극단값이 드물지만 분명히 나타나는 두꺼운 꼬리(heavy tail)를 가질 수도 있다.

연속형의 기본값은 역시 정규분포다. 다루기 쉽고, 두 모수만으로 규정되며, 여러 근사 상황에서 자연스럽게 등장한다. 정규분포가 등장하는 이론적 배경은 가법성(additivity)이다. 어떤 중심값 주위로 작은 교란들이 더해진다고 보면, 그 합은 중심극한정리(central limit theorem)에 따라 정규분포에 가까워진다. 측정 대상이 어떤 경계에서 충분히 멀리 떨어져 있고, 중심 주변으로 대체로 대칭이라면 정규분포는 잘 작동한다.

정규분포의 가장 큰 약점은 이상치(outlier)에 대한 민감성이다. 거의 만점인 답안 수십 개에 0점 하나가 섞이면 평균이 눈에 띄게 끌려 내려간다. 정규분포를 가정한 모델은 이런 극단값에 그대로 휘둘린다.

자주 인용되는 수치 바로잡기

“정규분포에서 6시그마(6σ) 밖은 백만 분의 몇 정도”라는 식의 진술이 흔히 돌지만, 정확한 값은 그보다 훨씬 작다. 표준정규분포에서 중심으로부터 ±3σ 밖에 놓일 확률은 약 0.27%(대략 370분의 1), ±5σ 밖은 약 170만 분의 1, ±6σ 밖은 약 5억 분의 1이다.

품질관리에서 말하는 “식스 시그마 = 백만 개당 3.4개 결함(3.4 ppm)”은 이와 다른 수치다. 이는 장기적으로 공정 평균이 1.5σ만큼 표류한다고 가정한 보정값으로, 표류가 없는 순수 정규분포의 꼬리 확률(약 5억 분의 1)과 혼동하면 안 된다.

양수만 가능한 연속형

지속 시간, 농도, 출력, 사건의 세기, 급여처럼 음수가 될 수 없거나 음수가 무의미한 양이 많다. 이런 자료에 정규분포를 얹으면 모델이 음수 구간으로 확률을 흘려보내 깨질 수 있다. 대안은 여럿이다. 로그정규분포(lognormal distribution)는 데이터에 로그를 취한 척도에서 정규분포를 가정하는 것으로, 양수이면서 자릿수 자체가 크게 차이 나는 값을 잘 다룬다. 가난한 가계부터 최상위 부유층까지 여러 자릿수에 걸쳐 퍼진 소득 분포가 전형적인 예다. 감마분포(gamma distribution)역감마분포(inverse gamma distribution)는 장비의 잔여 수명처럼 양수에 머무는 양을 다룰 때 자주 쓰이며, 0 근처에서의 거동이 서로 달라 “0에 가까운 값이 거의 나오지 않는” 상황에는 역감마가 잘 맞는다.

드물지만 큰 이탈 — 두꺼운 꼬리

어떤 자료에는 드물게 큰 이탈이 섞인다. 산발적 고장, 공급망을 일시적으로 흔든 사건처럼 예외적이지만 실재하는 충격이다. 정규분포는 이런 이탈을 “있어서는 안 되는 일”로 취급해 중심 추정을 그쪽으로 끌고 간다. 반면 스튜던트 t 분포(Student's t-distribution)는 정규분포보다 꼬리가 두꺼워, 큰 이탈을 “드물지만 가능한 일”로 수용한다. 자유도(degrees of freedom)라는 모수가 꼬리의 두께를 조절하며, 자유도가 커질수록 정규분포에 가까워진다. 꼬리가 두꺼운 우도를 쓰면 소수의 극단값에 휘둘리지 않는 강건(robust) 회귀가 된다.

아래 그림은 같은 중심 추세를 공유하는 세 가지 흩어짐의 모양과, 이상치가 섞였을 때 두 가지 적합선이 어떻게 갈리는지를 보여 준다.

대칭 (정규) 오른쪽 왜도 (로그정규형) 두꺼운 꼬리 (스튜던트 t) 가는 선=정규, 굵은 선=t
연속형 데이터의 세 가지 흩어짐: 좌우 대칭(정규), 한쪽으로 치우친 왜도(로그정규형), 극단값을 허용하는 두꺼운 꼬리(스튜던트 t). 중심이 같아도 모양이 다르면 우도도 달라져야 한다.
강건 우도(스튜던트 t) 적합 정규(최소제곱) 적합 이상치 예측변수 반응값
몇 개의 이상치가 섞였을 때. 정규(최소제곱) 적합선은 이상치 쪽으로 끌려 올라가는 반면, 강건한 t 우도로 적합한 선은 다수 데이터의 추세를 유지한다.
비유: 한 사람이 흔드는 시소

스무 명이 시소 한쪽에 고르게 앉아 균형을 맞추고 있는데, 반대쪽 끝에 거구 한 명이 올라타면 시소 전체가 그쪽으로 기운다. 정규분포 기반 추정이 이렇다. 다수가 만든 균형이 소수의 극단값 하나로 무너진다.

두꺼운 꼬리 우도는 “끝에 앉은 사람의 무게를 일부만 반영하는 시소”에 가깝다. 극단값의 존재를 부정하지 않으면서도, 그 하나가 전체 균형을 좌우하지 못하게 한다.

중요한 것은 이상치를 데이터에서 함부로 지우는 일이 능사가 아니라는 점이다. 이상치를 제거해도 좋은 경우는 오직 그 값이 왜 생겼는지를 알 때다. 예를 들어 진동 센서가 어느 순간 비정상적으로 큰 값을 기록했는데, 점검 기록을 확인해 보니 바로 그 시각 인근에서 대형 공사가 진행되어 우리 분석과 무관한 외부 진동이 유입되었음이 확인되었다면, 그 값은 떼어 내도 된다. 그러나 원인을 설명할 수 없다면 이상치는 남겨 두어야 한다. 무언가가 그 값을 만들어 냈고, 그 “무언가”가 모델이 포착해야 할 현실의 일부일 수 있기 때문이다. 원인을 모를 때의 올바른 대응은 삭제가 아니라, 강건한 우도로 그 영향을 완화하는 것이다.

연속형 모델에서 우도 선택이 잘못되었음을 알리는 경고 신호는 분명하다. 예측이 불가능한 값(예: 음수가 될 수 없는 양에서 음수)으로 넘어가거나, 잔차(residual, 관측과 예측의 차이)의 흩어짐 폭이 구간에 따라 들쭉날쭉하거나, 극단점 몇 개가 결과를 지배하거나, 경계 부근이나 한쪽 방향으로 설명되지 않는 쏠림이 보인다면 우도를 다시 의심해야 한다. 그러므로 연속형 자료에서는 먼저 “어떤 값이 가능한가(실수 전체인가, 제약이 있는가)”, “가법적 잡음 가정이 타당한가”, “극단값을 얼마나 허용해야 하는가”, “잡음의 크기를 별도로 모델링해야 하는가”를 차례로 점검하는 것이 출발점이다.

4.횟수 데이터 — 몇 번 일어났는가

횟수(count) 데이터는 일정한 시간이나 공간 안에서 사건이 몇 번 일어났는가를 센 값이다. 일정 거리당 고장 건수, 어떤 지역의 환자 수, 특정 기간의 사고 건수 같은 것이다. 여기서 흔한 오해 하나를 먼저 걷어 내자. 정수라고 해서 모두 횟수인 것은 아니다. 예컨대 아날로그·디지털 변환기(ADC, analog-to-digital converter)가 0부터 4095까지 내보내는 값은 횟수가 아니라 어떤 실숫값을 잘게 쪼갠 결과다. 이런 값은 (필요하면 구간 제약을 두되) 실수처럼 다루어야 한다.

횟수의 기본 모델은 포아송 분포(Poisson distribution)다. 가능한 사건 수에 상한을 두지 않은 채, 한 관측 단위에서 기대되는 사건 수를 단 하나의 모수 — 흔히 λ(람다)로 적는 기대 횟수 — 로 표현한다. λ는 음수가 될 수 없으므로, 예측변수를 연결할 때는 단순한 제약만으로는 부족하고 별도의 장치가 필요하다. 가장 널리 쓰이는 방법이 로그 연결함수(log link function)다. 즉 log(λ) = 절편 + 계수·예측변수로 두는 것이며, 이를 포아송 회귀(Poisson regression)라 한다. 예측변수가 직접 더해지는 대상이 λ가 아니라 그 로그라는 점이 핵심이다. 따라서 실제 기대 횟수를 얻으려면 지수를 취해야 하고, 그 덕분에 λ는 어떤 예측값에서도 항상 양수로 유지된다.

노출을 반드시 함께 보라

관측 단위들은 서로 같지 않다. 사고 가능성은 주행한 거리에 비례하고, 어떤 지역의 환자 수는 그 지역의 인구와 면적에 좌우된다. 같은 숫자 “5”라도 1km를 달리며 난 사고 5건과 1만km를 달리며 난 사고 5건은 전혀 다른 의미다. 이때 거리·인구·면적·시간 같은 노출(exposure)을 모델에 넣어 보정해야 한다. 흔히 노출의 로그를 회귀식에 더하는 오프셋(offset) 방식을 쓴다. 노출을 무시하면 단위가 다른 관측을 같은 잣대로 비교하는 오류에 빠진다.

포아송의 약속과 그 한계 — 과대산포

포아송 분포에는 강한 제약이 하나 있다. 평균과 분산이 같다는 것이다. 기대 횟수가 λ이면 분산도 λ다. 이는 곧 흩어짐의 폭이 평균에 의해 자동으로 정해진다는 뜻이다. 문제는 현실의 횟수 데이터가 이 약속보다 더 크게 출렁이는 경우가 많다는 데 있다. 빠뜨린 예측변수, 모델에 담지 못한 이질성(heterogeneity)이나 군집(clustering), 시간적 의존성 등이 원인이 되어 분산이 평균을 웃도는 현상, 곧 과대산포가 나타난다.

이를 다루는 대표적 도구가 음이항분포(negative binomial distribution)다. 음이항분포는 포아송처럼 평균을 가지면서, 추가로 산포(dispersion)를 조절하는 모수를 둔다. 널리 쓰는 한 가지 매개변수화에서는 분산이 분산 = μ + μ²/φ 형태가 되어, 산포 모수 φ(파이)가 클수록 분산이 평균에 가까워지고(즉 포아송에 수렴하고) 작을수록 분산이 커진다. 이 구조 덕분에, 데이터에 모델을 맞추는 과정에서 포아송이 적절한지 음이항이 필요한지를 자료가 스스로 말하게 할 수 있다.

2 4 6 8 10 10 20 30 포아송: 분산 = 평균 음이항: 분산 > 평균 평균 (μ) 분산
평균-분산 관계. 포아송은 분산이 평균과 같다는 직선 위에 놓이지만, 현실 데이터(점)는 그 위로 흩어지는 일이 많다. 음이항은 분산이 평균보다 큰 과대산포를 곡선으로 수용한다.
비유: 출퇴근 시각의 약속

“나는 평균 8시 정각에 도착한다”는 사람에게 포아송은 한 가지 약속을 덧붙인다. “그 흔들림의 폭도 평균이 정해 준다”는 것이다. 평균이 정해지면 들쭉날쭉한 정도까지 자동으로 따라온다.

그러나 실제로는 어떤 날은 5분, 어떤 날은 40분씩 늦는 사람도 있다. 평균은 같아도 출렁임이 훨씬 큰 것이다. 음이항분포는 “평균과 출렁임을 따로 정할 수 있게” 해 주어, 이런 사람을 더 정직하게 묘사한다.

0이 너무 많을 때 — 과잉 0과 검열

또 다른 흔한 상황은 0이 비정상적으로 많이 찍히는 경우다. 다만 0이 많다고 해서 곧바로 “과잉 0 모델”을 쓰면 안 된다. 0이 많은 이유부터 분석해야 한다. 첫째, 그저 사건이 일어나지 않았을 뿐일 수 있다. 둘째, 구조적 부재(structural absence)일 수 있다. 예컨대 특정 유전자를 가진 집단은 어떤 질병에 애초에 걸리지 않아 0이 쌓인다. 셋째, 측정 자체가 다르게 작동한 결과일 수 있다 — 이것이 진짜 과잉 0(zero inflation)이며, “고장 난 장치 무리와 정상 장치 무리가 섞여 있는” 상황처럼 두 집단의 혼합으로 모델링한다.

0(혹은 작은 값)이 빠지는 또 다른 경로는 검열(censoring)과 임계(thresholding)다. 센서가 일정 값 이하를 감지하지 못하거나(데드존), 정보 제공자가 특정 값을 의도적으로 공개하지 않을 때 데이터가 비어 버린다. 한 도시의 대기오염 순위에서 늘 상위권이던 지역이 어느 해 갑자기 사라진 사례가 있다. 오염이 줄어서가 아니라 측정소를 없앴기 때문이었다. 측정을 멈추면 순위에서도 사라진다. 데이터에 없다는 것이 곧 “일어나지 않았다”는 뜻은 아니라는 점을 이 사례가 잘 보여 준다.

요약하면 횟수 데이터에서는 다음을 차례로 묻는다. 우리가 세는 사건은 무엇인가. 노출(시간·면적·인구)은 단위마다 같은가, 다른가. 평균과 분산이 같다는 포아송의 약속이 타당한가, 아니면 과대산포를 허용해야 하는가. 0이나 특정 값에 이상한 쏠림이 있는가, 있다면 그 원인은 사건의 부재인가 측정의 한계인가.

5.이항·범주형·순서형 데이터

결과가 둘뿐인 이항(binary) 자료는 단순해 보인다. 성공/실패, 고장/정상, 합격/불합격이다. 한 번의 시행을 다루는 기본 모델은 베르누이 분포(Bernoulli distribution)로, 성공 확률을 p라 할 때 관측의 확률은 p성공(1−p)실패 형태가 된다. 여기에 예측변수를 연결하려면 확률 p를 0과 1 사이에 묶어 둘 장치가 필요하다. 흔히 쓰는 것이 로짓(logit) 연결함수다. logit(p) = log( p / (1−p) )는 0~1 구간을 실수 전체로 펼치고, 그 역함수(로지스틱 함수)는 실수 전체를 다시 0~1로 압축한다. 이렇게 만든 모델이 로지스틱 회귀(logistic regression)다.

자주 혼동되는 점

로지스틱 회귀는 분류기(classifier)가 아니라 확률 추정기(probability estimator)다. 출력은 “이 관측이 성공일 확률”이지 “성공/실패”라는 라벨이 아니다. 확률 추정 위에 임계값(threshold)을 얹으면 분류기처럼 쓸 수 있지만, 그 순간 풍부한 확률 정보가 0과 1로 뭉개지면서 정보 손실이 생긴다.

로지스틱 회귀는 강한 비선형성을 가진다. 선형예측값을 0~1로 압축하는 과정에서, 실제로 의미 있는 변화는 좁은 구간에 몰린다. 아래 그림처럼 선형예측값이 대략 −5에서 +5 사이일 때 확률이 빠르게 변하고, 그 바깥의 꼬리에서는 곡선이 거의 평평해져 0이나 1에 들러붙는다. 모델이 이 꼬리 영역으로 깊이 들어가면, 예측변수의 작은 변화가 결과를 불안정하게 흔들 수 있다.

-8 -4 0 4 8 0 0.5 1 활성 구간: 여기서 대부분의 변화가 일어남 꼬리: 거의 평평 (0에 붙음) 꼬리: 거의 평평 (1에 붙음) 선형예측값 η = 절편 + 계수·예측변수 성공 확률 p
로지스틱(S자) 곡선. 선형예측값이 0 부근일 때 확률이 가장 빠르게 변하고, 양쪽 꼬리에서는 0이나 1에 들러붙어 거의 평평하다. 음영 구간 바깥에서는 입력이 크게 변해도 확률이 거의 움직이지 않는다.
비유: 끝까지 차오른 욕조

욕조에 물을 받을 때, 바닥이 거의 빈 상태나 거의 가득 찬 상태에서는 수도꼭지를 조금 더 틀어도 수위가 눈에 띄게 변하지 않는다. 수위가 빠르게 변하는 구간은 중간 어디쯤이다.

로지스틱 곡선이 꼭 이렇다. 확률이 0이나 1에 가까운 “꼬리”에서는 입력을 더해도 거의 반응이 없고, 중간의 “활성 구간”에서만 확률이 민감하게 움직인다.

한 번의 시행을 넘어 같은 조건에서 여러 번 시행한 경우는 이항분포(binomial distribution)로 다룬다. 여기서 한 가지를 기억할 필요가 있다. 관측된 성공 비율이 같아도, 시행 횟수가 다르면 담긴 정보의 양이 다르다. 10번 중 7번 성공과 1000번 중 700번 성공은 같은 0.7이지만 신뢰의 무게가 전혀 다르다. 시행 구조를 명시적으로 살리는 것이 그래서 중요하다.

결과가 셋 이상이며 순서가 없는 경우는 다항(multinomial) 모델로 다룬다. 각 범주가 저마다의 확률을 가지며, 그 확률들의 합이 1이 된다. 축구 경기의 승·무·패가 전형적이다. 이 “무승부”라는 세 번째 가능성이, 무승부가 드문 다른 종목에 비해 축구의 결과 예측을 까다롭게 만드는 한 요인이다.

결과에 순서가 있는 경우는 순서형(ordinal) 모델이 필요하다. 별점이나 리커트 척도(Likert scale, 매우 나쁨~매우 좋음 같은 등급)가 그렇다. 여기서 핵심은 등급 사이의 간격이 같다고 가정하지 않는다는 점이다. 별 두 개와 세 개의 차이가 네 개와 다섯 개의 차이와 같으리라는 보장은 없다. 순서형 모델은 로지스틱 회귀와 비슷하게 작동하되, 등급과 등급을 가르는 절단점(cutpoint)을 따로 두고 그 간격이 균등하지 않을 수 있도록 허용한다.

이산형 결과를 만나면 다음을 묻는다. 가능한 결과가 몇 개인가. 순서가 있는가, 없는가. 개체 하나하나를 모델링하는가, 집단의 횟수를 모델링하는가. 최종적으로 확률이 필요한가, 라벨이 필요한가. 마지막 질문의 답에 따라 임계값이나 결정 규칙을 둘지가 갈린다.

6.유계 데이터와 비율

비율(proportion)은 겉보기에 모두 0과 1 사이의 수이지만, 그 뒤에 깔린 생성 과정은 제각각이다. 시행에서 나온 성공의 비율일 수도, 본래 연속적인 분율(fraction)일 수도, 0과 1 사이로 정의된 점수일 수도 있다. 출처가 다르면 모델도 달라야 한다.

시행의 성공 횟수와 전체 시행 횟수를 안다면 이항 모델이 적합하다. 시행 구조를 그대로 쓰는 것이다. 이때 굳이 “평균 위치” 같은 단일 숫자로 뭉뚱그리면 정보를 버리는 셈이 된다. 정수 횟수가 존재하는데도 0~1 사이의 한 점으로만 다루는 것은 손해다.

반면 효율, 농도, 점유율처럼 본래 연속적인 분율이라면, 시행 횟수가 따로 없으므로 0~1 구간에 정의된 연속형 모델(예: 베타분포, beta distribution)이 더 알맞다. 데이터가 자연스럽게 분율인 경우와, 시행의 결과인 경우를 구별하는 것이 출발점이다.

특히 주의할 것은 경계값(0 또는 1)이 의미 있는 빈도로 나타나는 경우다. 단순한 연속형 비율 모델은 정확히 0이나 1인 값을 잘 다루지 못한다. 이런 경계값은 반올림 때문일 수도, 측정의 포화(saturation) 때문일 수도, 실제 현상 때문일 수도 있다. 예컨대 식물 감염 비율을 모델링하는데 0이 잔뜩 나왔다면, 그것이 겨울철 식생이 없어 감염 자체가 불가능했던 시기의 자료일 수 있다. 경계값이 무엇 때문에 생겼는지 관측 과정을 따져, 필요하면 혼합 모델로 다루어야 한다.

7.측정 오차와 변하는 잡음

우리가 진짜로 관심 있는 것은 현상 자체다. 그러나 그 현상을 직접 손에 넣는 일은 드물다. 우리가 보는 것은 변환되고, 잡음이 끼고, 일부만 드러난 현상의 그림자다. 이것은 받아들여야 할 현실이지만, 그렇다고 무시할 것은 아니다. 측정 과정을 모델에 명시적으로 넣으면 예측이 좋아지거나, 적어도 예측의 불확실성을 더 정직하게 평가할 수 있다.

측정 오차는 흔히 가법적(additive)으로 본다. 참값에 어떤 잡음이 더해져 관측값이 된다는 것이다. 통계학의 기본 발상은 여기서 출발한다. 그 잡음이 합리적으로 행동한다면, 여러 번 측정함으로써 참값의 구조를 더 잘 드러낼 수 있다는 것이다. 한 가지 자주 잊히는 사실은, 예측변수 자체도 잡음을 가질 수 있다는 점이다. 예측변수에 오차가 섞이면 추정된 관계가 체계적으로 왜곡될 수 있어, 관측되지 않는 참 예측변수를 별도로 다루어야 하는 경우가 생긴다.

참값 (알고 싶은 현상) 시간 또는 조건 ● 관측값 = 참값 + 노이즈
측정 오차의 구도. 매끈한 곡선이 알고 싶은 참값이고, 점은 그 위에 잡음이 더해진 관측값이다. 우리가 손에 쥐는 것은 점뿐이며, 우도는 점이 참값으로부터 얼마나, 어떤 방식으로 벗어나는지를 진술한다.
라벨 잡음에 대한 단정 바로잡기

“이미지 인식 신경망은 학습 데이터에 1%만 잘못된 라벨이 섞여도 정확도가 50% 이하로 무너진다”는 식의 단정이 종종 인용되지만, 실제 연구 결과는 더 미묘하다. 라벨 잡음(label noise)이 일반화 성능을 떨어뜨릴 수 있다는 것은 분명하나, 그 정도는 데이터 규모, 잡음의 유형(무작위 대칭인지 특정 범주로 치우친 비대칭인지), 모델과 손실함수에 따라 크게 달라진다.

오히려 충분히 큰 데이터에서는 신경망이 상당한 양의 라벨 잡음을 견딘다는 보고도 있다. 한 연구는 정상 표본 하나당 무작위 라벨 표본을 다수 섞어도 시험 정확도가 높게 유지되는 사례를 제시했고, 다른 연구는 대칭 잡음에서 시험 정확도가 잡음 비율의 매끄러운(이차) 함수로 떨어진다는 것을 보였다. 핵심 메시지는 “1%로 반토막”이라는 극적인 수치가 아니라, 라벨처럼 정보량이 작은 값에 끼는 오차는 그 영향이 불균형하게 클 수 있으므로 관측 오차를 모델이 다뤄야 한다는 원리다.

잡음의 크기가 늘 일정한 것도 아니다. 작동 조건이 바뀌면 잡음도 바뀐다. 회전 속도가 높아지면 속도와 상관된 잡음이 커지고, 센서가 노화하거나 가열되면 측정 불확실성이 변하며, 우리가 재지 않는 잠재 변수(예: 온도)가 배후에서 영향을 줄 수 있다. 변형률을 재는 스트레인 게이지나 가속도계가 온도 보상을 거치는 이유가 여기에 있다. 이처럼 잡음 수준이 조건에 따라 변하는 성질을 통계학에서는 이분산(heteroscedasticity)이라 부른다. 발음하기 까다로운 용어이지만, “잡음의 크기가 일정하지 않다”는 뜻으로 새기면 충분하다.

대응책은 분명하다. 반복 측정으로 잡음의 구조를 파악하고, 사양 분석에 근거해 캘리브레이션(calibration, 보정)을 하며 — 온도 보상이 대표적이다 — 필요하면 우도의 표준편차 자체에 함수 관계를 부여한다. 같은 분포 가족을 쓰더라도, 흩어짐의 폭을 조건의 함수로 모델링함으로써 변하는 잡음을 담아낼 수 있다.

비유: 흐림이 달라지는 안경

흐린 안경으로 세상을 보면 모든 것이 뿌옇다. 여러 번 보고 평균을 내면 윤곽이 조금 더 또렷해진다. 그런데 이 안경의 흐린 정도가 밝기에 따라 달라진다면 — 어두울 때 더 뿌예진다면 — 그 변화를 무시한 채 평균만 내서는 곤란하다.

측정 오차 모델링이 이와 같다. 잡음이 일정하지 않다면, 그 “흐림이 어떻게 변하는가”까지 모델 안에 담아야 관측을 제대로 해석할 수 있다.

8.우도 설계 체크리스트

실제로 모델을 세울 때 우도를 고르는 과정은 다음 물음들을 차례로 통과하는 일로 정리할 수 있다.

마지막 항목이 가장 중요하다. 정규분포를 고른다는 것은 이렇게 말하는 것과 같다. “기대값은 내가 설계한 함수에 따라 예측변수에 의존하고, 그 주변에서 오차는 좌우 대칭이며, 극단값은 거의 나오지 않고, 모든 실숫값이 원리상 가능하다.” 스튜던트 t를 고른다면 “큰 이탈이 드물지만 나올 수 있다”는 문장이 추가되고, 로그정규를 고른다면 “값은 양수이며 로그 척도에서 대칭적 오차를 가진다”는 문장으로 바뀐다. 우도를 바꾼다는 것은 이 진술의 내용을 바꾸는 일이며, 따라서 바꿀 때마다 그 근거를 댈 수 있어야 한다.

정규분포든 포아송이든 이항분포든 감마든, 이들은 세상을 설명하는 법칙이 아니라 관측을 표현하기 위한 유용한 도구일 뿐이다. 데이터의 유형은 선택지를 좁혀 주지만, 그것으로 모델이 완성되지는 않는다. 우도는 평균 구조와 함께 다루어져야 하고, 어떤 모델이든 결국 어딘가에서 틀린다. 그러나 우도가 무엇을 가정하고 있었는지를 분명히 알고 있다면, 모델이 어디서 왜 틀렸는지, 무엇이 빠졌는지를 되짚을 수 있다. 다음 단계는 이 우도와 짝을 이루는 사전분포, 그리고 모델이 만들어 내는 가상의 데이터를 미리 들여다보는 사전예측 시뮬레이션(prior predictive simulation)으로 이어진다. 거기서 비로소 “이 이야기 전체가 말이 되는가”를 검증할 수 있다.