지지도와 신뢰도는 분모가 다릅니다
지지도는 전체 거래 중 두 품목이 함께 나온 비율이고, 신뢰도는 조건으로 삼은 품목이 있는 거래 중 상대 품목도 나온 비율입니다. 향상도는 신뢰도를 상대 품목의 전체 비율로 나눕니다. 아래 100건 예제에서는 우유 → 빵의 세 값이 각각 0.30, 0.75, 1.5입니다.
다음은 계산 연습용으로 만든 장보기 거래 100건입니다. 우유가 포함된 거래는 40건, 빵이 포함된 거래는 50건, 두 품목이 모두 포함된 거래는 30건으로 정했습니다. 실제 매장 조사나 판매 성과를 제시하는 자료가 아닙니다.
| 거래의 구성 | 빵 포함 | 빵 없음 | 합계 |
|---|---|---|---|
| 우유 포함 | 30 | 10 | 40 |
| 우유 없음 | 20 | 40 | 60 |
| 합계 | 50 | 50 | 100 |
우유만 있는 거래는 40 − 30 = 10건이고 빵만 있는 거래는 50 − 30 = 20건입니다. 둘 다 없는 거래는 나머지 40건입니다. 네 칸을 합하면 전체 거래 수가 됩니다. 두 품목의 거래 수를 더한 90건을 전체 거래 수처럼 사용하면 둘을 함께 산 거래를 중복으로 세게 됩니다.
이 분석의 단위는 거래입니다. 한 영수증에 우유 두 개와 빵 한 개가 있어도 우유 포함 거래 한 건, 빵 포함 거래 한 건, 둘 다 포함된 거래 한 건으로 셉니다. 수량이나 금액을 분석하는 별도 방식과 구분합니다. 같은 사람이 여러 번 방문하면 거래는 여러 건이므로 거래 비율을 곧 사람의 비율이라고 바꾸어 말하지 않습니다.
세 지표는 분모가 다릅니다
우유를 A, 빵을 B라고 부르겠습니다. A → B는 A가 들어 있는 거래를 조건으로 삼아 B가 함께 나타나는 관계를 살펴보는 규칙입니다. A는 선행항, B는 후행항입니다. 같은 거래에서 어떤 품목이 포함되었는지를 보며 여기의 화살표가 구매 시간의 순서나 원인을 뜻하지는 않습니다.
지지도는 전체 거래 중 A와 B를 모두 포함한 거래의 비율입니다. 우유 → 빵의 지지도는 30/100 = 0.30, 즉 30%입니다. 규칙이 전체 자료에서 얼마나 자주 나타났는지 보여 줍니다. 전체를 분모로 사용하므로 우유 거래만 모아 놓고 계산한 비율과 다릅니다.
신뢰도는 A를 포함한 거래 중 B도 포함한 거래의 비율입니다. 우유 → 빵에서는 우유를 산 거래 40건이 조건 집단이므로 30/40 = 0.75입니다. 조건부확률 P(B|A)에 대응합니다. 전체 거래의 75%가 두 품목을 함께 샀다는 뜻이 아니라, 우유가 있는 거래의 75%에 빵도 있었다는 뜻입니다.
향상도는 이 신뢰도를 전체 거래에서 B가 나타나는 비율로 나눈 값입니다. 전체 빵 거래 비율은 50/100 = 0.50이므로 우유 → 빵의 향상도는 0.75/0.50 = 1.5입니다. 우유를 조건으로 삼았을 때 빵이 나타나는 비율이 전체 빵 비율의 몇 배인지를 비교합니다. 같은 값은 0.30/(0.40 × 0.50)으로도 구할 수 있습니다.
분모를 기억하는 문장
기억 단서는 ‘지지도는 전체에서, 신뢰도는 조건 집단에서, 향상도는 평소 비율과 비교’입니다. 지지도와 신뢰도는 함께 나타난 거래를 어느 집단으로 나누는지 떠올리면 됩니다. 향상도를 구할 때는 신뢰도를 후행항의 전체 비율로 한 번 더 나눕니다. 이때 평소 비율은 과거 자료가 아니라 지금 분석하는 동일한 전체 거래에서 후행항이 나타나는 비율입니다.
| 지표 | 우유 → 빵 계산 | 이 자료에서 답하는 질문 |
|---|---|---|
| 지지도 | 30/100 = 0.30 | 전체에서 둘이 함께 나온 비율은? |
| 신뢰도 | 30/40 = 0.75 | 우유 거래 중 빵도 있는 비율은? |
| 향상도 | 0.75/0.50 = 1.5 | 전체 빵 비율에 비해 몇 배인가? |
지지도와 신뢰도는 비율이어서 영부터 일 사이의 값을 갖습니다. 향상도는 두 비율의 비이므로 일을 넘을 수 있습니다. 향상도 1.5를 확률 150%로 해석하지 않습니다. 선행항이 한 번도 나타나지 않아 조건 집단이 비어 있으면 신뢰도 계산의 분모가 영이 됩니다. 향상도 역시 필요한 비율이 정의되는지 먼저 확인해야 합니다.
화살표를 뒤집으면 바뀌는 값이 있습니다
빵 → 우유로 바꾸면 조건 집단은 빵 거래 50건입니다. 신뢰도는 30/50 = 0.60이 됩니다. 우유 → 빵의 0.75와 같지 않습니다. 두 규칙의 분자가 모두 30이어도 조건으로 삼은 집단이 다르기 때문입니다. 조건부확률을 거꾸로 읽을 때 생기는 대표적인 혼동입니다.
같은 거래를 두 방향으로 다시 계산하면 다음과 같습니다.
| 규칙 | 지지도 | 신뢰도 | 향상도 |
|---|---|---|---|
| 우유 → 빵 | 30/100 = 0.30 | 30/40 = 0.75 | 0.75/0.50 = 1.5 |
| 빵 → 우유 | 30/100 = 0.30 | 30/50 = 0.60 | 0.60/0.40 = 1.5 |
바뀐 것은 조건 집단이 다른 신뢰도입니다. 지지도와 향상도는 같습니다. 향상도를 0.30/(0.40 × 0.50)으로 쓰면 방향을 뒤집어도 같은 이유가 보입니다.
향상도가 1보다 크면 이 자료에서 두 품목이 독립이라고 할 때 기대되는 수준보다 함께 나타나는 비율이 높습니다. 1보다 작으면 그 수준보다 낮습니다. 정확히 1이면 관측된 비율에서 P(A와 B) = P(A)P(B)가 성립합니다. 표본에서 얻은 값 하나로 다른 기간이나 모집단에서도 독립이라고 증명한 것은 아닙니다.
신뢰도가 높아도 향상도가 높지 않을 수 있습니다. 빵처럼 원래 자주 나타나는 품목은 다른 조건을 붙여도 신뢰도가 높게 나올 수 있기 때문입니다. 신뢰도를 후행항의 전체 비율과 나란히 놓으면 조건을 붙인 뒤 얼마나 달라졌는지 읽을 수 있습니다. 반대로 향상도만 보고 거래의 규모를 무시하면 드문 우연한 조합을 과하게 평가할 수 있습니다.
거래 두 건에서 나온 신뢰도 100%를 읽는 법
같은 100건의 거래 안에 치즈를 산 거래가 두 건 있고 그 두 건 모두 빵이 들어 있다고 추가로 가정하겠습니다. 치즈는 기존 거래에 들어 있는 품목이며 전체 거래를 두 건 더 늘린 것이 아닙니다. 치즈 → 빵의 지지도는 2/100 = 0.02, 신뢰도는 2/2 = 1, 향상도는 1/0.50 = 2입니다.
숫자만 보면 우유 → 빵보다 신뢰도와 향상도가 높습니다. 하지만 그 판단을 뒷받침한 치즈 거래는 두 건뿐입니다. 같은 비율이라도 관측한 횟수가 적으면 새로운 거래에서 비율이 크게 달라질 수 있습니다. 그래서 지지도나 건수도 함께 읽습니다. 신뢰도가 높다는 이유만으로 믿을 만한 일반 규칙이라고 볼 수는 없습니다.
최소 지지도를 20%, 최소 신뢰도를 70%로 정했다고 합시다. 우유 → 빵은 지지도 30%와 신뢰도 75%이므로 두 기준을 만족합니다. 빵 → 우유는 지지도는 같지만 신뢰도가 60%여서 두 번째 기준을 만족하지 않습니다. 치즈 → 빵은 신뢰도가 100%여도 지지도가 2%이므로 첫 번째 기준에서 제외됩니다.
이 기준은 계산 예를 위해 정한 것입니다. 어떤 자료에도 20%와 70%가 적절하다는 뜻은 아닙니다. 목적과 품목 빈도, 남은 규칙의 규모를 보고 기준을 정합니다. 드문 품목이 중요하다면 높은 최소 지지도로 모두 제외하는 선택이 목적에 맞지 않을 수 있습니다. 기준을 통과한 규칙이 곧 유용한 규칙이라는 보장도 없습니다.
Apriori는 불가능한 후보를 지지도로 줄입니다
품목을 하나 더 요구하면 그 조건을 모두 충족하는 거래가 늘어날 수는 없습니다. 치즈가 들어 있는 거래가 두 건이면 치즈와 다른 품목을 함께 포함한 거래도 두 건을 넘을 수 없습니다. 최소 지지도가 20%일 때 치즈 자체가 기준에 못 미치면 치즈를 포함한 더 큰 품목집합도 같은 기준에 못 미칩니다.
Apriori는 이런 지지도의 성질을 이용해 확인할 후보를 줄입니다. 자주 나타나는 품목집합의 모든 부분집합도 자주 나타나며 드문 품목집합에 품목을 더 붙인 집합은 빈번해질 수 없습니다. 이 관계를 하향 폐쇄성 또는 반단조성이라고 부릅니다. 용어가 낯설면 먼저 ‘조건을 더 붙여도 해당 거래 수는 늘지 않는다’로 계산 범위를 확인합니다.
신뢰도에는 같은 성질을 적용할 수 없습니다. 신뢰도는 조건 집단을 분모로 쓰므로 조건이 늘 때 분자와 분모가 함께 달라질 수 있습니다. 따라서 신뢰도가 낮은 규칙에 조건을 추가해도 항상 낮다고 단정할 수 없습니다. 지지도로 품목집합 후보를 줄이는 일과, 그 집합에서 만든 규칙의 신뢰도를 확인하는 일은 구분합니다.
추천이나 진열에 활용하기 전에 확인할 것
우유를 사면 빵 구매가 늘어난다는 인과관계는 이 표만으로 확인할 수 없습니다. 두 품목이 같은 용도에 쓰이거나 행사로 함께 노출됐을 수도 있습니다. 같은 영수증에 들어 있다는 사실은 우유를 먼저 샀다는 시간 순서도 알려 주지 않습니다. 구매 순서를 분석하려면 그에 맞는 시간 자료와 다른 분석 설계가 필요합니다.
규칙을 추천이나 진열의 후보로 활용하려면 다른 기간이나 별도 거래에서도 관계가 유지되는지 살펴봅니다. 중복 기록, 취소 거래, 묶음 상품, 매장별 차이가 계산에 어떤 영향을 주는지도 확인합니다. 품목 이름을 통일하는 전처리만으로도 거래 포함 여부가 달라질 수 있으므로 어떤 기준으로 장바구니를 만들었는지 남겨 둡니다.
결과를 보고할 때는 방향이 있는 규칙, 사용한 거래 기간과 단위, 전체 거래 수, 두 품목의 개별 건수와 동시 발생 건수, 세 지표를 함께 적습니다.
핵심 정리와 실수 점검
핵심 정리
- 지지도는 전체 거래, 신뢰도는 선행항 거래를 분모로 사용합니다.
- 향상도는 신뢰도를 후행항의 전체 비율로 나눈 값이며 방향을 뒤집어도 같습니다.
- 높은 신뢰도나 향상도만으로 안정성이나 유용성, 인과관계가 입증되지는 않습니다.
놓치기 쉬운 지점
- 우유 → 빵의 신뢰도에서 빵 거래를 분모로 쓰거나 향상도에서 우유의 전체 비율로 나누는 실수
- 신뢰도 100%를 보고 적은 거래 건수를 무시하거나 지지도의 하향 폐쇄성을 신뢰도에도 적용하는 실수
확인할 내용
- 분석 단위를 거래로 정하고 품목 포함 여부를 일관되게 센다.
- 전체 거래 수와 선행항, 후행항, 동시 발생 건수를 각각 적는다.
- 규칙의 방향과 세 지표, 실제 관측 건수를 함께 설명한다.
이해한 내용 확인하기
직접 작성한 학습용 문항입니다. 공식 기출문제가 아닙니다.
Q1. 거래 200건에서 A는 50건, B는 80건, 둘 다 포함된 거래는 30건입니다. A → B의 지지도, 신뢰도, 향상도를 구하세요.
생각한 뒤 해설 보기
지지도는 30/200=0.15, 신뢰도는 30/50=0.60, 향상도는 0.60/(80/200)=1.5입니다. 전체, 조건 집단, 후행항의 전체 비율을 차례로 분모에 연결합니다.
Q2. 같은 200건 자료에서 B → A의 신뢰도는 얼마인가요? 지지도와 향상도도 바뀌나요?
생각한 뒤 해설 보기
신뢰도는 30/80=0.375입니다. 지지도는 0.15로 같고 향상도는 0.375/(50/200)=1.5로 같습니다. 방향을 바꾸면 조건 집단이 달라지지만 동시 발생 비율과 두 개별 비율의 곱은 그대로입니다.
Q3. 어떤 규칙의 신뢰도가 90%이고 후행항은 전체 거래의 90%에 나타납니다. 신뢰도가 높으므로 향상도도 1보다 큰가요?
생각한 뒤 해설 보기
아닙니다. 향상도는 0.90/0.90=1입니다. 조건 집단에서의 후행항 비율이 전체 비율과 같습니다. 높은 신뢰도만으로 독립 기준보다 강한 연관이 있다고 말할 수 없습니다.
Q4. 100건 중 치즈 거래 두 건 모두 빵을 포함합니다. 최소 지지도 20%, 최소 신뢰도 70%를 설정하면 치즈 → 빵을 남길 수 있나요?
생각한 뒤 해설 보기
두 기준을 모두 요구한다면 남길 수 없습니다. 신뢰도는 2/2=100%지만 지지도는 2/100=2%로 기준보다 낮습니다. 기준을 통과하지 못한다는 사실과 현실에서 쓸모가 없다는 판단은 다릅니다.
Q5. 한 영수증에 우유 두 개와 빵 한 개가 있고 우유 → 빵의 향상도가 높게 나왔습니다. 동시 구매를 세 건으로 세거나 우유 구매가 빵 구매의 원인이라고 말해도 되나요?
생각한 뒤 해설 보기
둘 다 안 됩니다. 품목의 포함 여부를 쓰는 장바구니 분석에서는 해당 영수증이 동시 포함 거래 한 건입니다. 높은 향상도는 관측된 동시 발생 관계이며 구매 순서나 인과효과를 입증하지 않습니다.
더 궁금한 점
향상도가 1.5이면 구매 확률이 150%인가요?
아닙니다. 향상도는 조건부 비율을 후행항의 전체 비율로 나눈 배수입니다. 예제의 1.5는 우유 거래에서 빵의 비율 75%가 전체 빵 비율 50%의 1.5배라는 뜻입니다.
지지도가 낮은 규칙은 쓸모가 없나요?
반드시 그렇지는 않습니다. 드문 품목도 목적에 따라 중요할 수 있습니다. 다만 적은 관측으로 얻은 비율은 불안정할 수 있으므로 건수와 별도 자료에서의 재현 여부를 함께 살펴야 합니다.
참고 자료와 확인 범위
- arules 개발자 문서: 연관규칙 평가 지표 ↗
지지도, 신뢰도, 향상도의 정의, 거래 단위, 지지도의 하향 폐쇄성과 낮은 빈도의 한계를 확인했습니다.
- arules 공식 문서: Apriori ↗
최소 지지도와 신뢰도로 규칙을 찾는 절차, 조건 설정과 품목 포함 여부를 확인했습니다.
- CRAN arules 참조 설명서 ↗
거래, 품목집합, 규칙의 자료 구조와 support, confidence, lift 품질 지표를 확인했습니다.