우연을 빼다 — κ 계열

Introduction

안전성 라벨링 파이프라인을 하나 굴린다고 하자. 라벨러 두 명에게 같은 1,000개 응답을 주고 각각 “안전” / “유해”를 매기게 했다. 결과를 모아보니 두 사람이 92% 일치했다. 보고서에 “라벨러 간 일치율 92%, 가이드라인 신뢰할 만함”이라고 쓰고 다음 단계로 넘어간다.

이 결론은 위험하다. 만약 두 라벨러가 각자 “일단 안전이라고 찍고 보자”는 습관이 있어서 각각 95%, 90%의 확률로 별생각 없이 “안전”을 골랐다면, 어떤 실제 판단도 하지 않고 습관대로 찍기만 해도

\[0.95 \times 0.90 + 0.05 \times 0.10 = 0.86\]

즉 86%의 일치율이 그냥 우연히 나온다. 92%에서 86%를 빼면 남는 건 6%포인트뿐이다. 이걸 정규화해서 계수로 만들면 \(\kappa \approx 0.43\) 정도가 나온다 — 처음 봤던 “92%”라는 인상적인 숫자와는 거리가 멀다. 관측된 일치율(\(p_o\))만 보고 신뢰도를 판단하면 이런 함정에 빠진다. 이 글이 다루는 κ(카파) 계열은 정확히 이 문제 — 우연히 맞아떨어진 몫을 빼고, “실제로 판단이 일치한 몫”만 남기는 계수를 어떻게 정의하느냐 — 를 다룬다.

신뢰도와 유의성은 다른 축이다

강의에서 학생들이 가장 자주 헷갈리는 지점부터 정리하고 시작한다. κ는 “유의성(significance)” 지표가 아니라 “신뢰도(reliability)” 지표다. 이름이 비슷하고 둘 다 문턱값을 놓고 이야기하다 보니 자주 섞이는데, 재는 대상이 완전히 다르다.

묻는 질문 대표 통계량 이 시리즈에서
신뢰도 (reliability) 라벨러들이 서로 얼마나 일관되게 재는가 Cohen’s κ, Fleiss’ κ, Krippendorff’s α, ICC 이번 글 (#13)
유의성 (significance) 모델 A와 B의 점수 차이가 우연인가 paired bootstrap, 순열검정, McNemar #16 차이는 유의한가

둘은 직교(orthogonal)한다. κ가 0.9로 매우 높아도, 표본이 100개뿐이면 모델 A와 B의 점수 차이는 유의하지 않을 수 있다. 반대로 라벨러들이 개별 문항 하나하나에서는 자주 다투어 κ가 0.3에 불과해도(라벨 각각은 잡음이 심해도), 그 잡음이 평균적으로 상쇄되는 방향이라면 수천 개를 모아 평균을 내면 모델 A와 B의 평균 차이는 통계적으로 매우 유의할 수 있다. “라벨이 서로 잘 맞는가”와 “평균 차이가 우연이 아닌가”는 답이 다른 질문이다. 이 둘을 섞으면 “라벨러도 잘 못 맞추는 항목이니 모델 비교가 무의미하다”거나 반대로 “κ가 낮다고 신경 쓸 필요 없다, 표본이 크니까”처럼 서로 다른 문제에 서로의 답을 갖다 붙이는 오류가 생긴다.

이 글은 다음 순서로 간다. ① raw agreement가 왜 속이는지(Background), ② Cohen’s κ부터 ICC까지 κ 계열 전체를 계보 순으로(Method), ③ 상황별로 무엇을 쓸지 고르는 표, ④ 토이 예제로 손 계산(Experiments), ⑤ 관습적 해석 기준의 위험을 예고. 앞 편 #12 사람 평가 설계가 “무엇을, 어떻게 평가자에게 물을 것인가”를 다뤘다면, 이 글은 그렇게 모은 답이 “믿을 만한가”를 재는 도구를 다룬다.

Background — 왜 raw agreement로는 부족한가

\(p_o\)(observed agreement, 관측 일치율)는 “전체 항목 중 두 라벨러가 같은 라벨을 준 비율”이다. 문제는 몇 개 안 되는 범주 중 하나를 고르는 구조에서는, 아무 판단 없이 라벨러가 자기 습관대로만 찍어도 \(p_o\)가 꽤 높게 나온다는 점이다.

두 라벨러가 각각 \(p\), \(q\)의 확률로 “안전”을 고르는 독립적인 확률변수라고 하자. 둘 다 아무 정보 없이 그 확률대로만 찍는다면, 우연히 일치할 확률은

\[p_e = pq + (1-p)(1-q)\]

기호를 풀면,

  • \(p\): 라벨러 1이 “안전”을 고를 확률 (그 사람의 개인적 경향, marginal)
  • \(q\): 라벨러 2가 “안전”을 고를 확률
  • \(pq\): 둘 다 “안전”을 우연히 고를 확률
  • \((1-p)(1-q)\): 둘 다 “유해”를 우연히 고를 확률
  • 두 경우를 더한 것이 “아무 정보 없이도 우연히 일치할” 전체 확률, 즉 \(p_e\)(expected agreement, 우연 기대 일치율)다.

\(p=0.9,\ q=0.9\)라면 \(p_e = 0.81+0.01=0.82\)다. 라벨러 두 명이 서로 대화도 안 하고 그냥 습관대로만 찍어도 82%가 우연히 맞아떨어진다는 뜻이다.

이 \(p_e\)를 빼고 정규화한 것이 κ다.

\[\kappa = \frac{p_o - p_e}{1 - p_e}\]

기호를 한 줄씩 풀이한다.

  • \(p_o\): 관측된 일치율.
  • \(p_e\): 우연으로 기대되는 일치율.
  • 분자 \(p_o - p_e\): 우연을 넘어선 “순수한” 일치의 몫.
  • 분모 \(1 - p_e\): 우연을 넘어 도달할 수 있는 “최대 여지”다. 이미 우연만으로 \(p_e\)만큼 채워져 있으니, 남은 여지는 \(1-p_e\)뿐이다. 분자를 이 여지로 나누어 정규화하면, “가능한 개선분 중 실제로 달성한 비율”이 된다.
  • 범위: \(p_o=1\)(완전 일치)이면 \(\kappa=1\). \(p_o=p_e\)(우연과 같은 수준)면 \(\kappa=0\). \(p_o < p_e\)(우연보다 못하게 어긋남, 체계적으로 반대로 답하는 상황)면 \(\kappa\)는 음수가 된다.

일상 비유를 하나 붙이면, 시험에서 “찍어서 맞을 확률”이 우연 기준선이다. 4지선다 객관식에서 60점을 받았다면, 아무것도 몰라도 찍어서 평균 25점은 나온다. 진짜 실력은 60점이 아니라 그 25점을 뺀 나머지에서 잰다. κ는 라벨러의 “판단력”을 “찍기 기본값”에서 분리해서 재는 셈이다.

Method

지금부터 κ 계열 전체를 계보 순으로 훑는다. 모두 \(1-D_o/D_e\) 꼴(또는 그 동형)을 공유하지만, “우연”을 무엇으로 정의하느냐에서 갈라진다.

Cohen’s κ (1960)

정의. 평가자 정확히 2명, 명목척도(순서 없는 범주)에서 쓰는 가장 기본형이다. 각 라벨러의 marginal 확률을 각자 따로 써서 우연 기대치를 계산한다.

수식.

\[p_e = \sum_k p_{1k}\, p_{2k}\]

기호 풀이. \(k\)는 범주 index, \(p_{1k}\)는 라벨러 1이 범주 \(k\)를 고를 marginal 확률(그 사람이 전체 항목 중 범주 \(k\)를 고른 비율), \(p_{2k}\)는 라벨러 2의 marginal이다. 각 범주별로 두 사람이 우연히 동시에 그 범주를 고를 확률(\(p_{1k}p_{2k}\))을 모든 범주에 대해 합산한다.

직관. “이 라벨러는 원래 유해라고 많이 찍는 사람이고, 저 라벨러는 원래 안전이라고 많이 찍는 사람”이라는 개인 성향(습관)을 각자의 것으로 인정하고, 그 성향을 넘어서 실제로 같은 판단을 한 몫만 잰다.

언제 쓰나. 평가자가 정확히 2명이고, 항목마다 같은 두 사람이 라벨링하고, 라벨이 명목척도일 때. 가장 널리 쓰이는 기본형이다.

함정. 3명 이상으로는 확장되지 않는다(Fleiss’ κ가 필요하다). 그리고 두 라벨러의 marginal이 서로 다르면 κ의 이론적 최댓값·최솟값이 그 marginal에 종속된다 — 즉 \(\kappa=1\)이 항상 도달 가능한 게 아니다. 이 문제는 다음 편 #14 κ의 역설에서 자세히 다룬다. 또한 marginal이 다를 때 그 차이를 “각자의 개인 성향”으로 볼지 “가이드라인이 흔들렸다는 신호”로 볼지에 대한 철학적 판단이 이미 이 공식 안에 숨어 있다 — 이 판단이 바로 다음 Scott’s π와 갈리는 지점이다.

Scott’s π (1955)

정의. Cohen과 같은 \(\kappa=(p_o-p_e)/(1-p_e)\) 골격이지만, \(p_e\)를 두 라벨러의 marginal을 각자 쓰지 않고 두 라벨러를 합친 하나의 공통(pooled) marginal로 계산한다.

수식.

\[p_e = \sum_k \bar p_k^2, \qquad \bar p_k = \frac{p_{1k}+p_{2k}}{2}\]

기호 풀이. \(\bar p_k\)는 라벨러 1과 2의 범주 \(k\) 선택 비율을 평균 낸 풀링된 marginal이다. 이 풀링된 분포를 두 라벨러가 공유한다고 가정하고, 그 공유된 분포에서 우연히 같은 범주를 고를 확률을 계산한다.

직관. Cohen이 “각자의 습관은 각자 책임지고, 그 이상의 일치만 본다”는 입장이라면, Scott은 “두 라벨러가 애초에 같은 모집단(같은 가이드라인)을 대표해야 하니, 개인차도 근본적으로는 어긋남의 일부로 접어서 본다”는 입장이다. 라벨러 개인이 아니라 코딩 스킴(가이드라인) 자체의 신뢰도를 재고 싶을 때 이 관점이 맞다 — “특정 이 두 사람”이 아니라 “이 가이드라인으로 훈련된 임의의 라벨러라면 비슷하게 일치했을까”를 묻는 것이기 때문이다.

언제 쓰나. 평가자 2명, 명목척도. 특히 이 특정 두 사람이 아니라 코딩 스킴 자체의 신뢰도를 일반화하고 싶을 때.

함정. marginal이 비슷할 때는 Cohen κ와 값이 거의 같지만, 두 라벨러의 습관이 크게 다르면 두 계수가 크게 갈리고 부호까지 반대로 나올 수 있다(아래 Experiments에서 직접 확인한다).

Fleiss’ κ (1971)

정의. 평가자가 3명 이상일 때 쓴다. 항목마다 평가자가 꼭 같은 사람들이 아니어도 된다(항목 A는 라벨러 1·2·3이, 항목 B는 라벨러 2·4·5가 평가해도 된다 — 단 항목당 평가자 수는 고정한다).

수식. \(n\)을 항목 수, \(m\)을 항목당 평가자 수, \(k\)를 범주 수, \(n_{ij}\)를 항목 \(i\)를 범주 \(j\)로 판단한 평가자 수라 하면,

\[\bar p_j = \frac{1}{nm}\sum_i n_{ij}\] \[\bar P = \frac{1}{nm(m-1)}\sum_i \sum_j n_{ij}(n_{ij}-1)\] \[\bar P_e = \sum_j \bar p_j^2, \qquad \kappa = \frac{\bar P - \bar P_e}{1 - \bar P_e}\]

기호 풀이. \(\bar p_j\)는 전체 (항목×평가자) 배정 중 범주 \(j\)로 떨어진 비율이다 — 이것이 바로 Scott 스타일의 풀링된 marginal이다. 즉 Fleiss’ κ는 Cohen이 아니라 Scott의 pooled-marginal 철학을 3명 이상으로 확장한 것이다. \(\bar P\)는 항목별로 “같은 평가자 쌍이 같은 범주에 동의한 비율”을 모든 쌍·모든 항목에 대해 평균 낸 값이다. \(n_{ij}(n_{ij}-1)\)은 항목 \(i\), 범주 \(j\)에서 만들 수 있는 동의하는 평가자 쌍의 수(순서 있는 쌍 기준)다.

직관. “이 항목엔 2명, 저 항목엔 3명이 평가해도” 계산이 성립하도록 쌍(pair) 단위로 일치를 세는 것이 핵심 트릭이다. 평가자 개인을 특정하지 않고 “각 항목에 몇 명이 각 범주를 골랐는가”라는 개수만으로 계산이 끝난다.

언제 쓰나. 평가자 3명 이상, 명목척도, 크라우드소싱처럼 항목마다 평가자 구성이 바뀔 수 있는 설계.

함정. 이름은 “kappa”지만 Cohen κ의 확장이 아니라 Scott π의 확장이라는 점을 놓치기 쉽다. 실제로 \(m=2\)를 넣으면 Fleiss’ κ 공식은 Cohen κ가 아니라 Scott π와 같은 값을 준다.

Weighted κ (Cohen, 1968)

정의. 순서척도(ordinal)에서, “얼마나 다르게 틀렸는가”의 정도를 반영한다. unweighted κ는 1점짜리 오차와 4점짜리 오차를 똑같이 “불일치 1건”으로 센다 — 순서척도에는 부적절하다.

수식. 일반형은 불일치 가중치 \(w_{ij}\)(대각선 \(w_{ii}=0\))를 써서

\[\kappa_w = 1 - \frac{\sum_{i,j} w_{ij}\,p_{ij}}{\sum_{i,j} w_{ij}\,p_i q_j}\]

가중치는 보통 두 종류를 쓴다.

\[w_{ij} = \frac{\lvert i-j \rvert}{k-1} \quad \text{(linear)}, \qquad w_{ij} = \frac{(i-j)^2}{(k-1)^2} \quad \text{(quadratic)}\]

기호 풀이. \(p_{ij}\)는 라벨러 1이 \(i\), 라벨러 2가 \(j\)를 고른 관측 joint 비율, \(p_i, q_j\)는 각 라벨러의 marginal(Cohen 방식)이다. \(w_{ij}\)는 \(i\)와 \(j\)가 멀수록 큰 값을 주는데, linear는 거리에 비례, quadratic은 거리의 제곱에 비례해서 “먼 불일치”를 훨씬 무겁게 벌준다. 분자 \(\sum w_{ij}p_{ij}\)는 관측된 “가중 불일치”(\(D_o\)), 분모 \(\sum w_{ij}p_iq_j\)는 우연으로 기대되는 “가중 불일치”(\(D_e\))다. \(\kappa_w = 1-D_o/D_e\) 형태는 뒤에 나올 Krippendorff’s α와 뼈대가 같다.

직관. 1점과 5점의 불일치는 1점과 2점의 불일치보다 심각하다. 5점 리커트로 응답 품질을 채점할 때 “1점” 대 “5점”으로 갈리면 둘 중 하나가 완전히 틀렸다는 뜻이지만, “3점” 대 “4점”은 거의 같은 판단이다. weighted κ는 이 정도 차이를 점수에 반영한다.

언제 쓰나. 순서척도 평가(1점부터 5점, 1점부터 10점까지의 Likert 품질 평가 등), 평가자 2명.

함정. quadratic weighted κ는 범주가 등간으로 배치되어 있고 두 라벨러의 marginal이 일치하는 특정 조건에서 ICC(2,1)와 수학적으로 동일하다(Fleiss & Cohen, 1973). 즉 순서형 데이터에 quadratic weighted κ를 쓰는 것과, 그것을 등간척도로 취급해 ICC를 쓰는 것이 사실상 같은 답을 준다 — 계수 이름만 다를 뿐 같은 도구를 쓰는 경우가 많다는 뜻이다. 또 하나의 함정은 linear와 quadratic 중 어느 걸 쓸지가 “먼 오류를 얼마나 심각하게 볼 것인가”라는 주관적 선택이며, 이 선택만으로 값이 크게 달라진다(아래 Experiments 참고).

Krippendorff’s α (Krippendorff, 1970/2004)

정의. NLP 코퍼스 주석 작업에서 특히 권장되는 계수다. 위 weighted κ의 \(1-D_o/D_e\) 골격을 그대로 물려받으면서, 세 가지를 동시에 일반화한다 — 평가자 수(2명이든 100명이든 무관), 결측치(모든 항목을 모든 평가자가 보지 않아도 됨), 척도(명목·순서·등간·비율 전부, 거리함수 \(\delta\)만 바꿔주면 됨).

수식.

\[\alpha = 1 - \frac{D_o}{D_e}\]

기호 풀이. \(D_o\)는 관측된 불일치다 — 같은 항목에 매겨진 라벨들 사이의 거리 \(\delta^2\)를 항목 내 모든 라벨 쌍에 대해 평균 낸 값이다. \(D_e\)는 기대 불일치다 — 전체 데이터셋에 나온 모든 라벨 값을 항목 구분 없이 뒤섞어 무작위로 짝지었을 때 나올 거리의 평균이다(“어느 항목에 붙었는지 무시하고 라벨 값만 놓고 봤을 때 우연히 이 정도는 벌어진다”는 기준선). \(1-D_o/D_e\)는 우연 대비 불일치가 얼마나 줄었는지의 비율이다. \(D_o=0\)(완전 일치)이면 \(\alpha=1\), \(D_o=D_e\)(우연 수준)면 \(\alpha=0\)이다.

거리함수 \(\delta\)는 척도별로 다르게 정의한다.

척도 거리함수 \(\delta^2(c,c')\) 의미
명목(nominal) 같으면 \(0\), 다르면 \(1\) Cohen·Scott과 동일한 “맞다/틀리다”
순서(ordinal) 두 범주 \(c\)와 \(c'\) 사이(양끝 포함, 양끝은 절반만)에 놓인 관측치의 누적 개수를 기반으로 정의 범주 사이의 “간격”이 아니라 그 사이에 실제로 몇 개의 관측이 끼어 있는지로 거리를 잰다
등간(interval) \((c-c')^2\) 점수 차이 그대로
비율(ratio) \(\left(\dfrac{c-c'}{c+c'}\right)^2\) \(0\)이 “진짜 없음”을 뜻하는 척도(반응시간 등)에 맞춤

직관. 결측을 허용한다는 게 실무에서 특히 크다. NLP 주석 작업에서는 모든 주석자가 모든 문장을 보는 경우가 드물다 — 크라우드소싱에서는 항목마다 다른 부분집합의 주석자가 배정되는 게 일반적이다. Cohen κ나 Fleiss κ는 항목당 평가자 수가 고정되어야 이 상황에 곧바로 대응하지 못하지만, α는 항목별로 평가자 수가 들쭉날쭉해도 그대로 계산된다.

언제 쓰나. 사실상 “기본값”으로 권장된다. 평가자 수가 가변적이거나, 결측이 있거나, 순서·등간·비율 척도를 다뤄야 할 때는 거의 항상 α가 유일하게 깨끗이 작동하는 선택이다.

Artstein & Poesio (2008)의 정본 서베이가 바로 이 지점을 강조한다. 계산언어학의 코퍼스 주석 작업에서는 Cohen κ 계열보다 Scott π · Krippendorff α 계열의 pooled-marginal 방식이 더 적합하다고 이들은 본다 — 코퍼스 주석의 목적이 “이 두 특정 주석자가 얼마나 잘 맞는가”가 아니라 “이 코딩 스킴으로 만든 데이터가 누가 라벨링해도 재현 가능한가”를 재는 것이기 때문이다. 특정 개인의 marginal을 존중하는 Cohen 방식보다, 라벨러를 교체 가능한(interchangeable) 존재로 보는 pooled 방식이 이 목적에 맞다는 논리다.

함정. 결측·가변 평가자 수를 다루는 만큼 계산은 손으로 하기엔 복잡하다(구체적인 조합 공식은 Krippendorff, 2004와 Hayes & Krippendorff, 2007을 참고한다). 순서형 \(\delta\)의 정의를 오해해서 그냥 \((c-c')^2\)(등간형)을 순서형 데이터에 쓰는 실수도 흔하다 — 이러면 척도 간 간격이 실제로 등간이라고 암묵적으로 가정하는 셈이라 #3 척도와 허용 연산의 문제가 그대로 재발한다.

ICC — 급내상관 (Shrout & Fleiss, 1979)

정의. judge가 1점부터 10점까지 같은 연속형 점수를 매길 때 쓴다. κ 계열은 “범주가 일치하는가”를 보지만, ICC는 분산을 분산성분(variance components)으로 나누어 “평가자가 매긴 값들이 얼마나 같은 항목에 대해 함께 움직이는가”를 잰다.

수식. 단일 측정(single measure) 기준의 일반형은

\[\text{ICC} = \frac{\sigma^2_B}{\sigma^2_B + \sigma^2_W}\]

기호 풀이. \(\sigma^2_B\)는 “진짜 항목 간 차이”에서 오는 분산, \(\sigma^2_W\)는 평가자 효과·잡음에서 오는 나머지 분산이다. 분모가 커질수록(잡음이 클수록) ICC는 작아진다.

Shrout & Fleiss (1979)는 실험 설계에 따라 6가지 ICC를 구분했는데, 그중 자주 쓰는 3가지(단일 측정 기준)를 표로 정리한다.

유형 모델 평가자 구성 언제 쓰나
ICC(1,1) 일원배치(one-way random) 항목마다 무작위로 다른 평가자 집합이 매번 새로 배정 크라우드워커처럼 매 항목 평가자가 바뀌는 설계
ICC(2,1) 이원배치 랜덤(two-way random), 절대 일치(absolute agreement) 모든 항목을 같은 평가자 집합이 평가, 그 평가자들은 더 큰 모집단에서 뽑힌 무작위 표본으로 간주 평가자의 체계적 편향까지 불일치로 잡고 싶을 때(값 자체의 절대적 일치가 중요할 때)
ICC(3,1) 이원배치 고정(two-way mixed), 일치도(consistency) 모든 항목을 같은 평가자 집합이 평가, 그 평가자들 자체에만 관심(더 큰 모집단으로 일반화하지 않음) 평가자 개인의 상수 편향(누구는 후하게, 누구는 박하게)은 무시하고 순위·패턴의 일치만 보고 싶을 때

이 분산성분은 실제로는 분산분석(ANOVA)의 평균제곱으로 추정한다. 항목 수 \(n\), 평가자 수 \(k\)일 때 \(BMS\)는 항목 간(between-target) 평균제곱, \(JMS\)는 평가자 간(between-judge) 평균제곱, \(EMS\)는 오차(잔차) 평균제곱이다. 이 세 값으로 ICC(3,1)과 ICC(2,1)을 정확히 쓰면,

\[\text{ICC}(3,1) = \frac{BMS-EMS}{BMS+(k-1)EMS}\] \[\text{ICC}(2,1) = \frac{BMS-EMS}{BMS+(k-1)EMS+\dfrac{k}{n}(JMS-EMS)}\]

두 식의 차이는 분모의 마지막 항 \(\frac{k}{n}(JMS-EMS)\)뿐이다. ICC(3,1)은 평가자 간 평균제곱 \(JMS\)를 전혀 쓰지 않는다 — 평가자들 사이의 체계적 차이(누가 후하고 누가 박한지)는 분모에 반영되지 않으므로, 순위·패턴만 같으면 값이 커진다. ICC(2,1)은 이 항을 더해서, 평가자 간 체계적 차이가 크면(=JMS가 크면) 분모가 커져 ICC가 낮아진다. “절대 일치”와 “일치도”가 수식 안에서 정확히 이 항 하나로 갈리는 셈이다.

평가자가 항목마다 무작위로 바뀌는 ICC(1,1)은 한 걸음 더 나간다. 평가자 효과와 오차를 분리하지 않고 하나로 뭉친 within-target 평균제곱 \(WMS\)(평가자 효과와 잔차의 제곱합을 합쳐 자유도 \(n(k-1)\)로 나눈 값)를 쓴다.

\[\text{ICC}(1,1) = \frac{BMS-WMS}{BMS+(k-1)WMS}\]

평가자 개인을 특정할 수 없는 설계이므로, 평가자 효과도 그냥 “잡음”의 일부로 뭉쳐 버리는 것이다.

직관. ICC(2,1)과 ICC(3,1)의 차이가 실무에서 가장 자주 헷갈린다. judge A가 항상 모든 응답에 2점을 더 준다고 하자. 순위와 패턴은 완벽히 같으므로 ICC(3,1)은 1에 가깝게 나온다(일치도만 보니까). 그런데 “정확히 같은 점수를 줬는가”까지 요구하는 ICC(2,1)은 그 2점의 체계적 차이 때문에 1보다 뚜렷이 낮게 나온다(절대 일치까지 보니까). 어떤 ICC를 골랐는지에 따라 같은 데이터로 전혀 다른 결론이 나올 수 있다(아래 Experiments에서 세 가지 ICC를 모두 계산해 비교한다).

언제 쓰나. judge 점수처럼 순서가 아니라 실수값(1점부터 10점까지 등)을 매기는 평가, 평가자 수가 고정된 설계.

함정. “일치도(consistency)”와 “절대 일치(absolute agreement)”를 구분하지 않고 논문에 그냥 “ICC=0.85”라고만 쓰는 사례가 많다. 어떤 ICC 변형인지 명시하지 않으면 재현이 불가능하다.

순위 상관과의 관계 — 상관은 일치가 아니다

라벨이 순서형이면 Spearman의 \(\rho\)나 Kendall의 \(\tau\)도 쓸 수 있다. 그런데 이 둘은 연관(association)을 재는 것이고, 지금까지 다룬 κ · α · ICC는 일치(agreement)를 재는 것이다. 둘은 다른 질문이다.

극단적인 예로 이 차이를 못박아 둔다. 두 judge가 응답 여러 개에 각각 점수를 매기는데, judge B가 항상 judge A보다 정확히 2점 높게 준다고 하자. 두 점수는 완벽한 선형 관계이므로 Pearson 상관·Spearman \(\rho\)·Kendall \(\tau\) 모두 정확히 \(1.0\)이 나온다. 하지만 정확히 같은 점수를 준 항목은 하나도 없다 — 일치율은 \(0\%\)다(구체적인 수치는 아래 Experiments의 예제 3에서 직접 확인한다).

직관. 상관은 “두 라벨러가 같은 방향으로 함께 움직이는가”를 잰다. 일치는 “두 라벨러가 같은 값을 냈는가”를 잰다. 한 라벨러가 다른 라벨러보다 항상 후하게(또는 박하게) 평가하는 체계적 편향이 있으면, 상관은 완벽해도 일치는 나쁠 수 있다.

언제 쓰나. “두 라벨러의 순위 패턴이 같은가”만 궁금하면 순위 상관으로 충분하다. 하지만 “두 라벨러가 낸 값을 그대로 바꿔 써도 되는가”(예: 한 라벨러 점수가 없어 다른 라벨러 점수로 대체하려 할 때)를 물으려면 상관이 아니라 일치도(ICC, weighted κ)가 답이다.

함정. 논문에서 “라벨러 간 신뢰도”라고 하면서 Pearson·Spearman 상관만 보고하는 경우가 흔하다. 이 글 서두의 축 구분표를 다시 쓰면, 상관은 신뢰도도 유의성도 아닌 제3의 축(연관)이다.

κ 값을 어떻게 읽나 — Landis & Koch (1977) 기준과 그 함정

κ 값 하나만 던져놓으면 “이게 좋은 건가 나쁜 건가”를 묻게 된다. 가장 널리 인용되는 답이 Landis & Koch (1977)의 관습적 구간표다.

κ 구간 해석
\(< 0\) poor
\(0.00 - 0.20\) slight
\(0.21 - 0.40\) fair
\(0.41 - 0.60\) moderate
\(0.61 - 0.80\) substantial
\(0.81 - 1.00\) almost perfect

이 표를 볼 때 반드시 알아야 할 것이 있다. 이 구간에는 경험적 근거가 없다. Landis & Koch (1977) 본인들도 논문에서 이 구간을 “임의적(arbitrary)이지만 유용한 벤치마크”라고만 제시했다. 어떤 실증 연구나 이론에서 도출한 경계가 아니라, 저자들이 편의상 정한 눈금이다. 그런데도 이후 50년 가까이 의학·심리학·NLP 논문 수천 편이 이 표를 마치 통계적으로 검증된 기준인 것처럼 인용해 왔다.

더 큰 문제는 다음 편에서 다룬다. 같은 κ 값이라도 라벨의 쏠림 정도(prevalence)에 따라 전혀 다르게 읽어야 하는 경우가 있다 — 관측 일치율이 90%인데 κ가 0.21밖에 안 나오는 역설적인 상황이 실제로 벌어진다. 안전성 라벨링처럼 “유해” 라벨이 원래 드문 데이터에서 특히 자주 일어난다. 이 역설과, Landis & Koch 표를 기계적으로 적용했을 때 생기는 구체적인 사고는 #14 κ의 역설에서 수치로 보여준다.

선택 가이드 — 평가자 수 × 척도 × 결측

지금까지 나온 계수를 상황별로 정리하면 다음과 같다.

평가자 수 척도 결측 권장 계수 비고
2명 명목 없음 Cohen’s κ 라벨러 개인 성향을 인정하고 그 이상의 일치만 볼 때
2명 명목 없음 Scott’s π 코딩 스킴 자체의 신뢰도를(라벨러를 교체 가능하다고 보고) 잴 때
3명 이상 명목 항목당 평가자 수는 고정, 구성은 가변 Fleiss’ κ 크라우드소싱처럼 항목마다 평가자 구성이 달라도 됨
2명 순서 없음 Weighted κ (linear/quadratic) 오류의 심각도를 반영해야 할 때
무관(2명 이상) 명목·순서·등간·비율 무관 허용 Krippendorff’s α 사실상 범용 기본값. 특히 NLP 주석 작업
2명 이상, 평가자 구성 고정 등간·비율(연속 점수) 없음 ICC(2,1) 또는 ICC(3,1) 절대 일치가 중요하면 (2,1), 순위·패턴만 중요하면 (3,1)
2명 이상, 항목마다 평가자가 무작위로 바뀜 등간·비율 없음 ICC(1,1) judge를 매번 새로 무작위 배정하는 설계
무관 순서 이상 무관 (참고) Spearman ρ / Kendall τ 일치가 아니라 연관을 물을 때만. 신뢰도 지표로 대체 불가

한 줄 원칙을 세우면 이렇다. 결측이 있거나 평가자 수가 들쭉날쭉하면 무조건 Krippendorff’s α, 연속 점수면 ICC, 순서형이고 결측이 없으면 weighted κ, 명목형 2명이면 Cohen κ와 Scott π 중 “개인 대 스킴” 어느 쪽을 재고 싶은지를 먼저 정한다.

Experiments — 토이 예제로 직접 계산하기

예제 1: \(p_o\), \(p_e\), κ를 손으로 계산하기, 그리고 같은 표에서 Cohen κ vs Scott π

라벨러 두 명이 응답 100개를 “안전” / “유해”로 분류했다고 하자. 혼동표(confusion matrix)는 다음과 같다.

  R2 = 안전 R2 = 유해 합계
R1 = 안전 35 45 80
R1 = 유해 5 15 20
합계 40 60 100

1단계 — 관측 일치율. 대각선(둘 다 “안전” 또는 둘 다 “유해”)을 더한다.

\[p_o = \frac{35+15}{100} = 0.50\]

2단계 — marginal 확인. 라벨러 1은 80%를 “안전”으로, 라벨러 2는 40%만 “안전”으로 찍었다 — 두 라벨러의 습관이 꽤 다르다.

라벨러 1의 marginal은 안전 \(0.80\), 유해 \(0.20\)이고, 라벨러 2의 marginal은 안전 \(0.40\), 유해 \(0.60\)이다.

3단계 — Cohen κ의 \(p_e\). 각자의 marginal을 곱해서 더한다.

\[p_e^{\text{Cohen}} = 0.80\times0.40 + 0.20\times0.60 = 0.32+0.12 = 0.44\] \[\kappa_{\text{Cohen}} = \frac{0.50-0.44}{1-0.44} = \frac{0.06}{0.56} \approx 0.107\]

Landis & Koch 표로 읽으면 “slight”다(위에서 경고했듯, 그 경계 자체가 임의적이라는 점을 기억한다).

4단계 — 같은 표에서 Scott π의 \(p_e\). 이번엔 marginal을 각자 쓰지 않고 풀링한다.

\[\bar p(\text{안전}) = \frac{0.80+0.40}{2}=0.60, \qquad \bar p(\text{유해}) = \frac{0.20+0.60}{2}=0.40\] \[p_e^{\text{Scott}} = 0.60^2+0.40^2 = 0.36+0.16 = 0.52\] \[\pi_{\text{Scott}} = \frac{0.50-0.52}{1-0.52} = \frac{-0.02}{0.48} \approx -0.042\]

같은 100개 데이터, 같은 관측 일치율(\(p_o=0.50\))인데 Cohen κ는 \(+0.107\), Scott π는 \(-0.042\)로 부호까지 갈린다. Cohen은 “라벨러 1은 원래 안전 쪽으로 후하고, 라벨러 2는 원래 유해 쪽으로 박하다”는 개인 성향을 그대로 인정하고, 그 성향 때문에 생기는 우연 일치를 각자 다른 marginal로 계산한다(두 marginal이 크게 다르면 이 곱의 합이 풀링했을 때보다 대개 작아진다). 반대로 Scott은 “두 라벨러가 원래 같은 분포를 공유해야 한다”고 가정하기 때문에, 이 정도로 다른 습관 자체를 이미 어긋난 것으로 계산에 넣어 더 가혹한 기준선을 세운다. 라벨러 성향 차이가 크면 이 선택 하나가 결론을 뒤집는다.

예제 2: 순서척도 — unweighted vs linear weighted vs quadratic weighted κ

두 심사자가 응답 21개의 품질을 1점(나쁨)부터 5점(좋음)까지 매겼다고 하자.

A/B 1 2 3 4 5 합계
1 3 1 1 0 0 5
2 1 3 1 0 0 5
3 0 1 3 1 0 5
4 0 0 1 2 1 4
5 1 0 0 0 1 2
합계 5 5 6 3 2 21

대각선(완전 일치)의 합은 \(3+3+3+2+1=12\)이므로 \(p_o = 12/21 \approx 0.571\)이다. 각자의 marginal을 곱해 더한 unweighted \(p_e \approx 0.218\)이 나오고,

\[\kappa_{\text{unweighted}} = \frac{0.571-0.218}{1-0.218} \approx 0.452\]

이제 같은 표에 가중치를 입힌다. 대부분의 불일치는 1점 차이지만, \((1,3)\) 칸에 2점 차이 불일치가 1건, \((5,1)\) 칸에 4점 차이(이 표에서 가장 심각한) 불일치가 1건 섞여 있다. 이 두 칸의 가중치가 linear와 quadratic에서 크게 벌어진다. \((1,3)\)은 linear로 \(2/4=0.5\), quadratic으로 \(4/16=0.25\)이고, 흔한 1점 차이 칸들은 linear로 \(1/4=0.25\), quadratic으로 \(1/16=0.0625\)다. 가까운 불일치일수록 quadratic이 훨씬 가볍게 봐준다. 이 가중치로 다시 계산하면 다음과 같다.

가중 방식 κ 비고
unweighted \(0.452\) 1점 차이든 4점 차이든 “틀림 1건”으로 동일 취급
linear weighted \(0.564\) 거리에 비례해 벌점, 가까운 불일치를 부분적으로 봐줌
quadratic weighted \(0.601\) 가까운 불일치(1점 차이)는 거의 봐주고, 4점 차이만 크게 벌점

같은 21개 데이터, 같은 두 심사자인데 가중치 선택만으로 κ가 \(0.452\)에서 \(0.601\)까지 움직인다. 이 표에서 유일하게 심각한 불일치(\((5,1)\), 4점 차이)는 어떤 가중치를 쓰든 최대 벌점을 받지만, 나머지 흔한 1점 차이들을 얼마나 “그럭저럭 맞은 것”으로 볼지가 quadratic·linear·unweighted를 가른다.

예제 3: 상관은 1.0인데 일치도는 낮다

judge 두 명이 응답 6개에 1점부터 10점까지의 점수를 준다고 하자. judge B가 매 항목마다 정확히 judge A보다 2점을 더 준다.

항목 1 2 3 4 5 6
judge A 3 4 5 6 7 8
judge B 5 6 7 8 9 10

Pearson 상관, Spearman \(\rho\), Kendall \(\tau\) 모두 정확히 \(1.0\)이다 — 완벽한 선형·단조 관계이기 때문이다. 그런데 정확히 같은 점수를 준 항목은 0개, 즉 raw 일치율은 \(0\%\)다.

이걸 ICC로 보면 더 뚜렷해진다. 이 데이터로 이원배치 ANOVA 성분을 구하면 항목 간 평균제곱 \(BMS=7\), 평가자 간 평균제곱 \(JMS=12\), 오차 평균제곱 \(EMS=0\)이 나온다(judge B가 항상 정확히 judge A + 2이므로 두 라벨을 “항목 효과 + 평가자 효과”로 완벽히 설명할 수 있어 잔차가 0이다). 평가자 수 \(k=2\), 항목 수 \(n=6\)을 넣으면,

\[\text{ICC}(3,1) = \frac{BMS-EMS}{BMS+(k-1)EMS} = \frac{7-0}{7+0} = 1.0\] \[\text{ICC}(2,1) = \frac{BMS-EMS}{BMS+(k-1)EMS+\frac{k}{n}(JMS-EMS)} = \frac{7-0}{7+0+\frac{2}{6}(12-0)} = \frac{7}{11} \approx 0.636\]

일치도(consistency)만 보는 ICC(3,1)은 \(1.0\)으로 완벽하다 — 순위·패턴이 완벽히 같으니까. 그런데 절대 일치(absolute agreement)까지 요구하는 ICC(2,1)은 \(0.636\)으로 뚜렷이 낮다 — judge B의 체계적인 2점 편향이 “절대적으로 같은 값을 냈는가”에는 불리하게 반영되기 때문이다.

같은 데이터에 ICC(1,1)까지 계산해 보면 이 차이가 한 번 더 드러난다. 평가자 효과와 잔차의 제곱합을 합치면 \(12+0=12\)이고, 자유도는 \(n(k-1)=6\)이므로 \(WMS = 12/6 = 2\)다.

\[\text{ICC}(1,1) = \frac{BMS-WMS}{BMS+(k-1)WMS} = \frac{7-2}{7+1\times2} = \frac{5}{9} \approx 0.556\]

세 ICC를 나란히 두면 \(\text{ICC}(3,1)=1.0 > \text{ICC}(2,1)\approx0.636 > \text{ICC}(1,1)\approx0.556\)이다. 같은 데이터, 같은 두 judge인데, “평가자 효과를 얼마나 심각하게 볼 것인가”라는 설계 선택 하나로 답이 이렇게 벌어진다 — ICC(3,1)은 평가자 효과를 완전히 무시하고, ICC(2,1)은 평가자 효과를 분모에 반영하고, ICC(1,1)은 평가자 효과를 잔차와 뭉쳐 아예 구분하지 않는다.

상관 \(1.0\), ICC(3,1) \(1.0\), raw 일치율 \(0\%\), ICC(2,1) \(0.636\), ICC(1,1) \(0.556\) — 같은 데이터에서 나온 다섯 개의 답이 이렇게 다르다. “두 판정자가 잘 맞는다”는 문장이 뭘 뜻하는지 명시하지 않으면, 이 다섯 숫자 중 아무거나 골라 자기 주장에 갖다 붙일 수 있다는 뜻이다.

통계 요약

계수 평가자 수 척도 결측 \(p_e\)(또는 유사 개념) 계산 방식 주의점
Cohen’s κ (1960) 2 명목 불가 각 라벨러의 개별 marginal 곱의 합 marginal 차이가 크면 이론적 최댓값·최솟값이 제한됨
Scott’s π (1955) 2 명목 불가 두 라벨러를 풀링한 공통 marginal의 제곱합 라벨러 개인차를 우연이 아니라 어긋남으로 취급
Fleiss’ κ (1971) 3 이상 명목 항목당 평가자 수는 고정, 구성은 가변 전체 (항목×평가자) 배정 중 각 범주 비율(풀링, Scott 확장) 이름은 kappa지만 철학은 Scott 쪽
Weighted κ (Cohen, 1968) 2 순서 불가 Cohen marginal + 거리 가중치 \(w_{ij}\) linear·quadratic 선택이 값을 크게 바꿈. quadratic은 특정 조건에서 ICC(2,1)과 동일(Fleiss & Cohen, 1973)
Krippendorff’s α (1970/2004) 무관 명목·순서·등간·비율 허용 전체 데이터 풀에서 무작위로 짝지었을 때의 기대 불일치 \(D_e\) 순서형 \(\delta\)를 등간형으로 잘못 대체하는 실수가 흔함
ICC(1,1)/(2,1)/(3,1) (Shrout & Fleiss, 1979) 2 이상 등간·비율(연속 점수) 고정 평가자 설계 기준으로 불가 분산성분(항목 분산 vs 평가자·오차 분산) 일치도(consistency)와 절대 일치(absolute agreement)를 혼동하면 결론이 뒤집힘
Spearman ρ / Kendall τ 2 이상 순서 이상 쌍별 계산으로 허용 순위 기반 연관 일치(agreement)가 아니라 연관(association) — 신뢰도 지표 대체 불가

Conclusion

한 줄로 정리하면, κ 계열은 모두 같은 골격(\(1-D_o/D_e\) 또는 그 변형)을 공유하지만, “우연”을 무엇으로 정의하느냐(누구의 marginal을 쓰는가, 거리를 어떻게 재는가, 결측을 어떻게 다루는가)에서 서로 다른 철학적 선택을 한다. Cohen κ는 라벨러 개인의 습관을 존중하고, Scott π·Fleiss κ는 그 습관 차이까지 어긋남으로 본다. Weighted κ는 순서를 반영하고, Krippendorff α는 결측과 임의 척도까지 흡수하며, ICC는 범주가 아닌 연속값의 분산을 분해한다. 그리고 순위 상관은 이 모든 것과 다른 질문(연관)에 답한다.

정리하면,

  1. raw agreement는 우연을 포함한다. 두 라벨러가 습관대로만 찍어도 일치율이 80-90%를 넘기는 경우가 흔하다. 이걸 신뢰도로 오해하면 안 된다.
  2. κ 계열은 “누구의 marginal을, 어떻게” 우연 기준선으로 잡을지에 따라 갈래가 나뉜다. 같은 데이터에서 Cohen κ와 Scott π가 부호까지 반대로 나올 수 있다는 걸 직접 확인했다.
  3. 연속 점수엔 ICC, 결측·가변 평가자엔 Krippendorff’s α가 실무 기본값에 가깝다. NLP 코퍼스 주석에서는 Artstein & Poesio (2008)가 정리했듯 Cohen κ보다 pooled-marginal 계열(π, α)이 더 잘 맞는 경우가 많다.
  4. 상관은 일치가 아니다. 이 하나만 기억해도 실무 사고를 하나 막는다.
  5. 관습적 해석 기준(Landis & Koch, 1977)은 경험적 근거가 없다. κ 값 하나만 보고 “가이드라인이 나쁘다/좋다”를 판단하면 안 되는 이유가 다음 편에서 더 날카롭게 드러난다.

그리고 서두에서 정리한 구분을 다시 강조한다. 신뢰도(이 글)와 유의성(#16)은 다른 질문이다. 라벨이 서로 잘 맞는지는 이 글의 도구로 재고, 모델 A와 B의 점수 차이가 우연인지는 완전히 다른 도구([#16])로 재야 한다. 둘을 섞으면 “라벨러들도 잘 못 맞추는 항목인데 모델 차이가 유의하다고 우기는” 혹은 반대로 “라벨러 신뢰도가 낮으니 모델 비교 자체가 무의미하다고 단정하는” 식의 오류가 생긴다.

다음 편 #14 κ의 역설에서는 이 글에서 미뤄둔 위험을 파헤친다. 관측 일치율이 90%인데 κ가 0.21까지 떨어지는 prevalence 역설, 그리고 그 반대로 라벨러 편향이 오히려 κ를 부풀리는 bias 역설이다. 안전성 라벨링처럼 한쪽 라벨이 원래 드문 데이터에서 이 역설이 상시로 벌어진다.

참고 문헌


LLM 평가 체계 시리즈

이 글은 LLM 평가 체계 시리즈의 열세 번째 글이다.

1부. 평가란 무엇인가

  1. 측정으로서의 평가 — 구성개념·조작화·타당도·신뢰도
  2. 벤치마크는 무엇을 재고 있나 — 벤치 445편 구성타당도 리뷰

2부. 무엇을 숫자로 만드나 — 평가 metric

  1. 척도와 허용 연산 — Likert 평균을 내도 되는가
  2. 분류 지표 — accuracy의 함정부터 PR-AUC까지
  3. 생성 지표와 그 타당도 — BLEU에서 COMET까지
  4. 객관식 평가는 왜 흔들리나 — 위치 편향과 포맷 민감도

3부. LLM 벤치마크 지형도

  1. 지식과 추론 — MMLU 계열의 흥망 — MMLU·GPQA·BBH·HELM
  2. 검증 가능한 도메인 — 수학과 코드 — GSM8K·MATH·HumanEval·SWE-bench
  3. 개방형 대화 — MT-Bench에서 Arena까지 — judge 기반 벤치의 등장
  4. 능력의 다른 축 — 지시따르기·긴 문맥·사실성
  5. 한국어 벤치마크 — 번역이 아니라 원산, 그리고 문화 타당도

4부. 사람이 읽는다 — 정성평가와 일치도

  1. 사람 평가 설계 — 루브릭·Likert·pairwise·BWS
  2. (현재 글) 우연을 빼다 — κ 계열 — Cohen·Fleiss·weighted·Krippendorff
  3. κ의 역설 — 일치율 90%인데 κ가 0.21

5부. 차이는 진짜인가 — 정량평가의 통계

  1. 점수는 추정치다 — 이항비율 신뢰구간과 Wald의 실패
  2. 차이는 유의한가 — paired bootstrap·순열검정·McNemar
  3. 몇 개를 재야 하나 — 검정력·표본크기·다중비교
  4. LLM eval의 통계 실무 — 클러스터 SE·IQM·분산 분해

6부. 신뢰할 수 있는 평가 체계

  1. judge를 통계로 다루기 — 편향·Bradley-Terry·PPI
  2. 오염·재현성·효율 — 오염 검정·harness·IRT
  3. 안전 평가의 통계와 체계 설계 — 희귀사건·calibration·체크리스트

본 시리즈는 21편으로 구성된다.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • 안전 평가의 통계와 체계 설계 — 희귀사건과 calibration, 스물한 편의 마지막 체크리스트
  • 오염·재현성·효율 — 이 점수는 무엇을 재고 있나
  • judge를 통계로 다루기 — 편향, Bradley-Terry, PPI
  • LLM eval의 통계 실무 — 클러스터 SE, 분산 분해, IQM
  • 몇 개를 재야 하나 — 검정력, 표본크기, 다중비교