6강 / 20강
상호정보량 — 함께 움직임을 재는 자
직선이 아니어도 잡아낸다
DIGGIT 의 이름에 Information Theory(정보이론) 가 들어 있는 이유가 여기 있습니다. ARACNe 도, MINDy 도, DIGGIT 도 두 값이 함께 움직이는 정도를 잴 때 상관계수가 아니라 상호정보량(mutual information, MI) 을 씁니다.
상관계수는 직선 관계만 봅니다. 두 값이 U자로 관계되어 있으면 상관은 0 이 나옵니다 — 분명히 관계가 있는데도요.
MI(X; Y) = Y 를 몰랐을 때의 불확실성 − X 를 알고 난 뒤 남은 불확실성
"X 를 알면 Y 에 대한 궁금증이 얼마나 줄어드나"입니다. 줄어드는 게 없으면 0, 완전히 결정되면 최대. 관계의 모양은 묻지 않습니다.
U자 관계에서 상관계수는 0 이 나옵니다. MI 는 그렇지 않습니다.
Python
브라우저에서 실행
🎮 격자를 바꿔 보세요
자료의 모양과 격자 칸 수를 바꿔 가며 MI 가 어떻게 달라지는지 보세요. 칸을 너무 잘게 쪼개면 없는 관계도 있어 보인다는 함정도 확인해 보시고요.
🤔 확인 문제
상관계수 대신 상호정보량을 쓰면 무엇이 달라지나요?
해설 MI 는 관계의 모양을 가리지 않습니다. 대신 방향(양·음)은 알려 주지 않고, 표본이 적으면 오히려 부풀려지기 쉽습니다 — 그래서 늘 귀무분포(13강)와 함께 씁니다.
MI 의 함정 — 표본이 적으면 부풀려진다
MI 에는 고약한 성질이 있습니다. 표본이 적을수록 값이 커집니다. 극단적으로 환자가 4명이고 격자를 4칸으로 쪼개면, 아무 관계가 없어도 각 칸에 점이 하나씩 떨어져 "완벽한 관계"처럼 보입니다.
그래서 MI 는 절대 그 값만 보고 판정하지 않습니다. 자료를 마구 섞어서 만든 귀무분포와 비교합니다. 13강의 순열검정이 그 이야기입니다.
이 표를 한 번 보고 나면 MI 값을 절대값으로 해석하지 않게 됩니다.
Python
브라우저에서 실행
🤔 확인 문제
환자 6명의 자료에서 상호정보량이 0.9 비트로 계산되었습니다. 바로 '강한 관계' 라고 결론지을 수 없는 이유는?
해설 MI 는 편향된 추정량입니다. 판정은 언제나 순열로 만든 귀무분포와의 비교로 합니다.
🤔 확인 문제
상호정보량의 값이 0 이라는 것은 무엇을 뜻하나요?
해설 MI 는 0 이상입니다. 음수가 없으므로 '반대로 움직인다' 는 표현 자체가 MI 에는 없습니다. 방향이 필요하면 상관계수나 회귀 계수를 함께 봐야 합니다.