마트 영수증 대부분에는 우유도 커피도 없다. 이렇게 두 물건 모두 없는 영수증(널 거래)이 많아지면 리프트와 카이제곱은 크게 부풀어, 거의 관련 없는 우유와 커피가 강하게 붙어 다니는 것처럼 보인다. 널 불변 측정은 두 물건 중 하나라도 있는 영수증만 보고 계산해서, 널 거래가 몇 장이든 값이 바뀌지 않는다. 대신 두 물건의 인기가 크게 다르면 쿨친스키 값만으로는 상황을 다 알 수 없어, 불균형 비율을 함께 본다.
예시로 보기
우유(B)와 커피(C)가 든 거래를 센다.
| 우유 있음 | 우유 없음 | 합 | |
|---|---|---|---|
| 커피 있음 | 100 | 1,000 | 1,100 |
| 커피 없음 | 1,000 | 100,000 | 101,000 |
| 합 | 1,100 | 101,000 | 102,100 |
우유를 산 1,100명 중 커피도 산 사람은 100명(9%)뿐이다. 커피를 산 1,100명 중 우유도 산 사람도 100명이다. 둘은 거의 따로 팔린다. 그런데 리프트는
\[\operatorname{lift}(B, C) = \frac{100 / 102100}{(1100 / 102100)^2} = 8.44\]로 “강한 양의 상관”이라 말한다. 카이제곱도 670으로 크다. 둘 다 없는 거래 10만 건이 분모를 키워, 기대 빈도가 11.85밖에 안 되기 때문이다. 실제 100은 기대보다 훨씬 많아 보인다.
정의
널 거래는 따지는 항목 집합을 하나도 담지 않은 거래다. 측정값이 널 거래 수에 따라 바뀌지 않으면 널 불변이라 한다. 큰 DB에는 널 거래가 아주 흔하므로(대부분의 영수증에 우유도 커피도 없고, 대부분의 논문에 김 교수도 존 교수도 없다) 널 불변성이 중요하다.
쿨친스키 측정(Kulc)은 두 신뢰도의 평균이다. 1927년 폴란드 수학자 쿨친스키가 제안했다.
\[\operatorname{Kulc}(A, B) = \frac12\left(P(A \mid B) + P(B \mid A)\right) = \frac12\left(\frac{s(A \cup B)}{s(A)} + \frac{s(A \cup B)}{s(B)}\right) \le 1\]분자와 분모에 “\(A\)나 \(B\)를 담은 거래”만 나오고, 둘 다 없는 거래는 어디에도 나오지 않는다. 그래서 널 불변이다. 0.5 근처면 중립, 1에 가까우면 양의 상관, 0에 가까우면 음의 상관으로 읽는다.
불균형 비율(IR)은 두 패턴의 지지도가 얼마나 다른지 잰다. 차이가 클수록 크다.
\[\operatorname{IR}(A, B) = \frac{\vert s(A) - s(B)\vert }{s(A) + s(B) - s(A \cup B)}\]분모는 \(A\)나 \(B\) 중 하나라도 담은 거래의 수다. 이것도 널 불변이다.
여섯 자료를 비교한다. BC는 둘 다, ¬BC는 C만, B¬C는 B만, ¬B¬C는 둘 다 없음(널 거래)이다.
| BC | ¬BC | B¬C | ¬B¬C | \(\chi^2\) | lift | Kulc | IR | |
|---|---|---|---|---|---|---|---|---|
| D1 | 10,000 | 1,000 | 1,000 | 100,000 | 90,557 | 9.26 | 0.91 | 0 |
| D2 | 10,000 | 1,000 | 1,000 | 100 | 0 | 1 | 0.91 | 0 |
| D3 | 100 | 1,000 | 1,000 | 100,000 | 670 | 8.44 | 0.09 | 0 |
| D4 | 1,000 | 1,000 | 1,000 | 100,000 | 24,740 | 25.75 | 0.5 | 0 |
| D5 | 1,000 | 100 | 10,000 | 100,000 | 8,173 | 9.18 | 0.5 | 0.89 |
| D6 | 1,000 | 10 | 100,000 | 100,000 | 965 | 1.97 | 0.5 | 0.99 |
- D1과 D2는 널 거래 수만 다르다(10만 대 100). Kulc는 둘 다 0.91인데, 리프트는 9.26과 1, 카이제곱은 90,557과 0으로 정반대 결론을 낸다.
- D4, D5, D6은 Kulc가 모두 0.5다. D4는 B와 C의 인기가 같아(IR 0) 정말 중립이다. D5와 D6은 IR이 0.89, 0.99로 크다. 한쪽(C)을 산 사람은 대부분 B도 샀지만, B를 산 사람 대부분은 C를 사지 않았다. 신뢰도 하나는 높고 하나는 낮아 평균이 0.5가 된 것이다.
D1, D2의 BC 10,000, ¬BC 1,000, B¬C 1,000을 그대로 두고 널 거래만 늘렸다. 리프트는 널 거래 100건에서 1(독립)이다가 10만 건에서 9.26으로 오르고, 그 뒤로도 끝없이 커진다. Kulc는 0.91에서 움직이지 않는다1.
고르는 법. 널 거래가 지배적이지 않으면 리프트와 카이제곱도 좋다. 널 거래가 많으면 Kulc와 IR을 함께 쓴다.
연결
- 선수: 리프트(널 거래에 흔들리는 측정)
- 같은 생각, 다른 자리: 자카드 계수도 “둘 다 0인 칸”을 빼서 희소한 자료의 비교를 지킨다. 자카드는 \(\frac{s(A \cup B)}{s(A) + s(B) - s(A \cup B)}\)로 Kulc, IR과 같은 분모를 쓴다.
확인 문제
C1 널 거래와 널 불변을 정의하고, 쿨친스키 측정과 불균형 비율의 식을 쓰라.
답: 널 거래는 따지는 항목을 하나도 담지 않은 거래, 널 불변은 널 거래 수가 바뀌어도 값이 그대로인 성질이다. \(\operatorname{Kulc} = \frac12\left(\frac{s(A \cup B)}{s(A)} + \frac{s(A \cup B)}{s(B)}\right)\), \(\operatorname{IR} = \frac{\vert s(A) - s(B)\vert }{s(A) + s(B) - s(A \cup B)}\).
C2 BC 500, ¬BC 500, B¬C 500이다. 널 거래가 0, 500, 100,000일 때 리프트를 각각 구하라. Kulc는?
답: 리프트는 0.75, 1.00, 50.75로 널 거래만 늘었는데 “음의 상관”에서 “아주 강한 양의 상관”으로 바뀐다. Kulc는 \(\frac12(\frac{500}{1000} + \frac{500}{1000}) = 0.5\)로 셋 다 같다.
C3 D4와 D6은 Kulc가 둘 다 0.5다. 두 자료에서 B와 C의 관계는 같은가? 무엇으로 구별하는가?
답: 다르다. D4는 B와 C의 지지도가 같고 서로의 절반이 겹쳐 정말 중립이다(IR 0). D6은 C를 산 1,010명 중 1,000명이 B를 샀지만, B를 산 101,000명 중 C를 산 사람은 1%뿐이다(IR 0.99). 불균형 비율로 구별한다.
-
18_null-invariant-measures_plot.py로 그렸고, 리프트 1.00(D2)과 9.26(D1), 널 거래 10건~\(10^9\)건에서 Kulc가 \(\frac{10000}{11000} \approx 0.91\)로 같음을 같은 코드로 확인했다. ↩