[개발 공부] / ICC: 반복 측정값의 신뢰도.md

ICC: 반복 측정값의 신뢰도

조회

2026년 6월 26일 | 개발 공부


Intraclass Correlation Coefficient, 줄여서 ICC는 같은 대상을 여러 번 재거나 여러 평가자가 점수를 매겼을 때, 그 값들이 얼마나 안정적으로 같은 방향을 가리키는지 보는 지표다. 나는 처음에 이걸 그냥 “상관계수의 다른 이름” 정도로 받아들였는데, 실제로 쓰다 보면 Pearson correlation과는 꽤 다른 질문을 던진다는 점에서 헷갈림이 풀렸다. Pearson이 두 변수의 선형 관계를 본다면, ICC는 같은 단위 안에서 반복 측정값이 얼마나 서로 닮아 있는지를 본다.

ICC 선택에서 설계, 단위, 정의를 먼저 구분하는 도식
ICC는 숫자 하나보다 어떤 설계와 단위를 택했는지 같이 적어야 해석이 흔들리지 않는다.

같은 점수표라도 질문이 다르다

예를 들어 두 명의 annotator가 같은 100개 샘플에 1점부터 5점까지 품질 점수를 줬다고 하자. 평균 점수 차이가 작다는 말과, 샘플별 순위가 비슷하다는 말과, 두 사람이 실제로 거의 같은 숫자를 찍었다는 말은 서로 다르다. ICC는 이 중에서 “같은 대상 안의 반복 측정이 얼마나 일관되게 묶이는가”에 가깝다. 그래서 모델 평가표, 의료 영상 판독 점수, 사람 평가자 점수, 같은 모델을 여러 seed로 돌린 결과를 볼 때 꽤 자주 등장한다.

여기서 중요한 점은 관측값의 묶음 구조다. 샘플 A에 대해 평가자 1, 2, 3의 점수가 있고, 샘플 B에도 같은 식의 점수가 있으면, 전체 분산을 “샘플 사이 차이”와 “같은 샘플 안에서 생긴 흔들림”으로 나눠 볼 수 있다. 샘플 사이 차이가 크고 같은 샘플 안의 흔들림이 작으면 ICC는 높아진다. 반대로 모든 샘플이 거의 비슷한 난이도라 샘플 사이 차이가 작으면, 실제 평가가 꽤 정돈돼 있어도 ICC가 낮게 보일 수 있다.

ICC 종류를 보고서에 같이 적어야 하는 이유

ICC가 골치 아픈 이유는 한 가지 공식만 있는 지표가 아니기 때문이다. 평가자를 무작위 표본으로 볼지, 특정 평가자로 고정할지, 한 명의 점수를 쓸지 여러 명 평균을 쓸지, 순서의 일관성만 볼지 절대값의 합의까지 볼지에 따라 표기가 달라진다. 그래서 결과표에 그냥 “ICC = 0.82”라고 쓰면 해석이 반쯤 비어 있다.

실무적으로는 세 질문을 먼저 적어 두면 실수가 줄어든다. 첫째, 평가자나 반복 실행을 표본으로 일반화할 것인가. 둘째, 실제 운영에서 단일 평가값을 쓸 것인가, 평균값을 쓸 것인가. 셋째, 평가자가 항상 0.3점 높게 주는 체계적 차이를 허용할 것인가. 이 셋에 따라 one-way, two-way, single, average, consistency, absolute agreement 같은 말이 붙는다. 특히 새 평가 루브릭을 배포하기 전에는 absolute agreement 쪽 질문이 더 현실적인 경우가 많다.

높은 ICC가 항상 안심 신호는 아니다

ICC가 높으면 “반복 측정이 안정적이다”는 쪽으로 읽을 수 있지만, 그 자체로 모든 문제가 사라지는 것은 아니다. 평가자 한 명이 늘 다른 사람보다 높은 점수를 준다면 consistency ICC는 괜찮게 나와도 absolute agreement에서는 문제가 드러날 수 있다. 또 샘플 사이 변동이 매우 큰 데이터셋에서는 같은 샘플 안 오차가 실무적으로 꽤 커도 ICC가 높아 보일 수 있다. 숫자가 좋아도 점수 차이의 실제 크기를 따로 봐야 하는 이유다.

그래서 나는 ICC를 단독 결론으로 쓰기보다 Bland-Altman plot, 평균 차이의 신뢰구간, 허용 가능한 오차 폭과 함께 보는 편이 낫다고 느낀다. ICC는 “반복 측정 구조가 믿을 만한가”를 요약해 주고, Bland-Altman은 “어느 구간에서 얼마나 빗나가는가”를 보여 준다. 둘을 같이 놓으면 상관이 높아서 좋아 보이는 평가표가 실제 운영 허용 범위 밖으로 흔들리는 경우를 더 빨리 잡을 수 있다.

AI 평가표에서의 사용 장면

AI 프로젝트에서는 사람 평가자 점수에만 ICC를 붙일 필요는 없다. 같은 benchmark를 여러 evaluator prompt로 채점했을 때, 같은 retrieval 답변을 여러 judge model이 매겼을 때, 혹은 같은 모델을 여러 seed로 평가했을 때도 반복 측정 구조가 생긴다. 이때 ICC를 계산하면 “이 점수표를 한 번 더 돌려도 비슷한 판단이 나올까”라는 질문에 조금 더 정량적으로 답할 수 있다.

다만 metric이 binary success/failure처럼 매우 거칠거나, 점수 분포가 한쪽으로 몰려 있거나, evaluator가 같은 오류를 공유하는 경우에는 ICC 하나로 안정성을 말하기 어렵다. 이럴 때는 confusion pattern, query-level outlier, 평가자별 bias를 같이 적는 편이 낫다. 내가 보고서에 남긴다면 “ICC가 높음”보다 “ICC(2,1), absolute agreement 기준으로 0.78이고, 낮은 점수 구간에서 평가자 간 차이가 커진다”처럼 조건과 관찰을 함께 쓸 것 같다.

내가 적어 두는 체크리스트

ICC를 쓸 때 나는 먼저 데이터 모양을 확인한다. 행은 평가 대상, 열은 반복 측정이나 평가자, 값은 같은 스케일의 점수여야 한다. 결측이 많은지, 평가자가 모든 샘플을 봤는지, 평균 점수를 운영에 쓸지 단일 점수를 운영에 쓸지도 같이 본다. 그 다음에 ICC 종류를 고르고, 결과표에는 신뢰구간을 붙인다. Shrout와 Fleiss의 고전 분류나 Koo와 Li의 가이드를 참고하면 표기 실수를 줄이기 좋다.

마지막으로 해석 문장은 늘 한 줄 더 보수적으로 쓴다. “신뢰도가 높다”에서 멈추지 않고, 어떤 조건에서 높았는지와 어떤 조건에서는 깨질 수 있는지를 붙인다. 반복 측정 지표는 숫자 자체보다 측정 설계의 그림자를 같이 데려오기 때문이다. 그 그림자를 숨기지 않는 쪽이, 나중에 평가 파이프라인을 다시 볼 때 훨씬 덜 부끄럽다.

댓글

홈으로 돌아가기

검색 결과

"" 검색 결과입니다.