고객은 왜 맥주와 기저귀를 함께 살까?

고객이 같이 사는 제품의 이유! 연관성 분석 이해하기

집에 어린 아기가 있는 남성 분들, 이 글을 읽고 계신다면 지금 당장 주목해주세요! 여러분, 종종 마트에 들려 기저귀와 맥주를 함께 사지 않으신가요? 90년대 중반 월마트에서는 매주 수요일 저녁마다 기저귀와 맥주의 매출이 함께 높아졌다고 합니다. 이 기묘한 일을 추적하기 위해 담당자가 맥주와 기저귀 진열대를 일부러 가까운 곳에 붙여 놓았더니 놀랍게도 두 제품의 매출이 전날보다 5배나 뛰었다고 합니다! 이유인즉 퇴근길, 아내의 심부름으로 마트에서 기저귀를 사며 보상심리로 맥주도 함께 구매했기 때문이라고 하는데요, 혹은 맥주를 사러가는 길에 아내의 잔소리를 피하기 위해 기저귀를 사온다고 역제안하는 이유에서라고 합니다. 



고객이 어떤 상품을 함께 (with) 구매할 것인지를 알 수 있는 연관성 분석 


데이터 분석가는 누가 상품을 구매하였는지를 분석하는 것도 중요하지만 무엇보다 ‘어떤 상품을 누구에게 팔아야 할 것인지’를 예측해내는 것 또한 매우 중요합니다. 위 맥주와 기저귀 사례처럼 고객이 어떤 상품을 살 것인지, 어떤 상품이 누구에게 판매될 것인지를 안다면 얼마나 좋을까요? 

오늘 글에서는 ‘누가 어떤 상품을 구매할 것인지를 예측하는 법’, 이를 통해 매출을 극대화할 수 있는 법에 대해 소개해 드리고자 합니다. 보통 데이터분석에서는 연관성 분석(Association Analysis)이라는 기법을 많이 활용하는데요, 이름에서도 바로 알 수 있듯 데이터 내부의 연관성, 즉 상품과 상품간의 상호 관계 또는 종속 관계를 찾아내는 분석법입니다. 


장바구니 분석(Basket Analysis)


연관성 분석은 흔히 장바구니 분석(Basket Analysis)라고 부르기도 합니다. 그 관계를 정확히 파악하면 아래 표처럼 나타낼 수 있습니다. 장바구니 분석은 연관성 분석을 유통업에서 부르는 용어라 다른 업계에서는 잘 사용하진 않지만, 도식화하면 부분집합 또는 협의의 개념이라 볼 수 있습니다.


장바구니 분석은 연관성 분석의 한 종류라고 볼 수 있습니다
장바구니 분석은 연관성 분석의 한 종류라고 볼 수 있습니다

장바구니 분석은 POS 시스템이 나타나면서 세계적으로 퍼져나갔는데요, 상품 구매 예측은 물론이고 상품 추천이나 오프라인 상의 매대 진열, 사은품 또는 패키지 상품 구성 등 다방면으로 적용할 수 있다는 장점이 있습니다.


  • 유통업 : 고객들이 함께 구매할 상품을 제안할 수 있음
  • 호텔/숙박업 : 고객들이 특정 서비스를 받은 후 어떤 서비스를 다음으로 원하는지 선제안할 수 있음
  • 금융사 : 기존 금융 서비스 내역을 통해 대출 같은 특정 서비스를 받을 가능성이 높은 고객을 발굴할 수 있음
  • 보험사 : 정상적인  청구 패턴과 다른 패턴을 보이는 고객을 찾아 추가 조사를 실시할 수 있음

장바구니 분석(Market Analysis)에 활용되는 데이터


장바구니 분석의 기본 데이터는 영수증 데이터입니다. 상품 구매자의 구매상품과 구매수량을 활용할 수 있습니다.




연관성 분석을 설명하기 전 ‘동시출현관계’를 나타내는 척도에 대해 설명해드리고자 합니다. 동시출현 빈도는 연관성 분석에 있어 가장 중요한 기본 지표입니다. 위 표에서 사과를 X, 우유를 Y라고 표현한다면 이 두개를 함께 구매한 고객 D와 고객 E는 총 2명이기 때문에 동시 발생빈도가 2가 됩니다.


동시발생성을 나타내는 지표, X와 Y를 함께 구매한 사람의 수
동시발생성을 나타내는 지표, X와 Y를 함께 구매한 사람의 수

동시에 구매한 사람의 빈도 외에도, 두 제품간의 연관성을 찾기 위해 이 두 집단을 좀 더 세밀하게 이해하는 것이 필요합니다. 각 집단의 개별적인 이해, 합집합일때의 이해, 그리고 각 집단의 수치들을 하나의 지표로 표현하기 위한 대표값을 확인하는 것은 연관성을 이해하는데 참고할 수 있는 정보입니다. 이러한 정보를 얻기 위한 다이스계수, 자카드계수, 코사인계수를 예로 한번 봐볼까요?


다이스(Dice) 계수는 X를 구매한 사람과 Y를 구매한 사람의 합계를 말합니다.

자카드(Jaccard) 계수는 X 또는 Y를 하나라도 구매한 사람의 수를 말합니다.

코사인(Cosine)계수는 X를 구매한 사람과 Y를 구매한 사람의 기하평균을 의미합니다.

고객이 함께 많이 구매할 것 같은 상품을 예측해봅시다.


고객이 함께 구매할 것 같은 상품은 어떻게 예측해야 할까요? 척도를 통해 예측하는 방법과 뷰저블의 Segmenting CTA & Path-Plot 기능을 활용하여 연관성을 갖는 상품을 발견하는 방법, 2가지를 소개해드릴게요.





1. 척도를 통해 예측하기


상품 추천, 즉 고객이 함께 많이 구매할 것 같은 상품을 예측하는 데에 가장 많이 활용되는 척도로는 신뢰도(Confidence), 지지도(Support), 향상도(Lift)라는 것이 있습니다. 무엇인지 하나씩 살펴 볼게요.


A. 신뢰도(Confidence)



위 표에서 사과를 많이 구매한 사람 중 얼마나 많은 사람이 우유도 함께 구매했을까요? 확률을 구해보니 사과를 구매한 사람은 3명이고, 그 중 2명이 우유을 구매했네요. 그럼 여기서 구할 수 있는 신뢰도는 66.7%가 됩니다. 

위에서 언급한 동시출현 빈도 지표와 다른 점으로는 X와 Y의 방향성이 있습니다. 동시출현지표는 X와 Y를 방향성과 상관없이 서로 바꿀 수 있지만 상품 추천에 활용되는 지표는 X와 Y에 각각 방향성이라는 것이 존재합니다.





기저귀와 맥주를 함께 구매했다는 사례를 다시 예로 들어볼까요? 기저귀를 구매한 뒤에 맥주를 구매한 것인지, 기저귀를 구매하기 전에 맥주를 구매한 것인지에 대해 언급하지 않았지만, 추천의 경우 ‘지금 바로 기저귀를 구매하려는 고객에게 맥주를 추천할 것인지’, ‘기저귀를 산 고객에게 다음으로 맥주를 추천할 것인지’가 문제가 되는 경우가 종종 발생합니다. 

만화책 1편을 구입한 고객에게 2편을 연달아 제안하는 건 별다른 문제가 없겠지만 아직 1편을 읽지도 않은 고객에게 2편을 먼저 추천하는 것은 문제됩니다. 또 매트리스를 구매한 고객에게 매트리스 커버를 추천할 수는 있지만 매트리스 커버를 먼저 추천하는 것은 이상하죠. 이처럼 상품 추천에 있어 연관성 분석을 할 때는 방향성을 반드시 고려해야 합니다.


신뢰도는 X를 구매한 사람이 Y도 구매할 확률을 말합니다.
신뢰도는 X를 구매한 사람이 Y도 구매할 확률을 말합니다.

B. 지지도(Support)


다음으로는 지지도라는 것이 있습니다. 표에서는 사과와 우유를 얼마나 함께 구매하는지를 나타내는 지표라고 볼 수 있습니다. 왜 지지도가 필요할까요? 지지도는 전체 상품 중 X와 Y를 함께 구매할 확률이라 말하였습니다. X를 구매하는 고객이 Y라는 상품을 구매하면 신뢰도는 100%가 되는데 그럼 X를 구매하는 고객에게 Y를 반드시 추천해야할까요? 별로 팔리지 않는 상품이라면요? 즉, 다시말해 지지도는 좋은 규칙(구성비가 높고 빈도가 많은)을 찾거나 불필요한 연산을 줄이기 위한 기준으로 사용된다고 볼 수 있습니다.




C. 향상도(Lift)


마지막으로 향상도에 대해 알아봅시다. 지지도가 별로 팔리지 않는 상품을 솎아내기 위한 지표였다면 거꾸로 많이 팔리는 인기상품을 골라낼 때 활용되는 것이 향상도입니다. 인기도라고 볼 수 있겠네요. 아무리 신뢰도 높은 상품일지라도 추천될 상품이 대다수가 이미 알고 있고 사는 상품이라면, 그다지 좋은 추천이라고는 말할 수 없습니다. 

마트에서 쓰레기봉투를 떠올려보세요. 다 알고 다 구매하는 상품이죠. 삼겹살을 구매하려는 고객에게도, 방울토마토나 스테이크를 구매하려는 고객에게도 다 쓰레기 봉투를 추천한다면 그것이 과연 좋은 상품 추천이라 말할 수 있을까요? 네, 아닐 것입니다.





아래 벤다이어그램으로 쉽게 설명드릴게요. 

분자는 신뢰도(Confidence), 분모는 Y의 인기도를 의미합니다. 즉, 아무것도 사지 않더라도 얼마나 많은 사람들이 Y를 구매하는지에 대한 확률을, X를 구매한 사람 중 Y도 함께 구매한 사람이 얼마나 많은지에 대한 확률과 비교하고 있습니다. X를 사지 않더라도 Y를 구매한 고객이 50%라 친다면, X를 구매한 사람 중 50%나 Y를 구매했다는 결론이 나버려 ‘별로 좋지 못한 상품 추천’이 되어버리죠. 향상도가 1보다 작다면 좋지 못하다고 해석할 수 있습니다.



다시 표로 돌아와봅시다. 여기서 지지도를 50%로 설정해보겠습니다. 5명의 고객 중 3명이 구매한 이력이 있는 상품에 대해서만 계산한다고 이해할 수 있습니다. 그럼 아래 표에서는 사과, 우유, 콩나물, 고등어, 오이만 남게 됩니다. 



자 다음으로, 사과와 우유, 콩나물, 고등어, 오이에서 각각 신뢰도와 인기도(향상도)를 구해봅시다. 사과를 구매한 3명 중 우유를 구매한 건 고객 D와 고객 E입니다. 신뢰도는 2/3인 67%가 되겠네요. 마찬가지로 사과를 구매한 세 명의 고객은 모두 콩나물도 샀네요. 그럼 신뢰도는 3/3이니 100%가 됩니다. 

인기도는 전체에서 몇 명이나 구매하고 있는지를 의미하기 때문에 4명이 구매한 우유와 콩나물은 80%, 나머지는 60%로 계산됩니다.


각각 신뢰도와 향상도를 구한 장바구니 데이터 표
각각 신뢰도와 향상도를 구한 장바구니 데이터 표

다음으로는 다시 신뢰도가 60% 이상 혹은 향상도가 1 이상인 상품들만 걸러봅시다. 그럼 신뢰도가 낮은 흰색 셀은 모두 버릴 수 있습니다. 인기도보다 신뢰도가 더 낮다고 볼 수 있는 주황색 셀도 모두 버릴 수 있는데요 남은 셀은 분홍색 6개가 있네요. 사과, 콩나물, 오이만 이 살아남았습니다.



X, Y

콩나물, 사과
사과, 콩나물
오이, 사과
오이, 콩나물
사과, 오이
콩나물, 오이 


신뢰도를 100%로 볼 것인가 혹은 75%로 볼 것인가, 지지도에 따라 달리할 것인가 최종 의사결정을 통해 고객의 추천 상품을 결정할 수 있습니다.





이 글에서는 상품과 상품간의 1:1 관계를 놓고 설명드렸는데요, 실제 연관성 분석에서는 다수 구매 상품의 경우의 수를 모두 조합하여 추천 상품을 선정합니다. 상품이 10가지여도 한 아이템 당 조합할 수 있는 경우의 수가 총 90가지가 되기 때문에 약 5만 7천번의 연산이 필요하게 됩니다. 실시간으로 5만 7천번의 연관을 하면 서버가 버틸 수 있을까요? 

여기서 새로이 생겨난 개념이 연관규칙 알고리즘(Apriori algorithm)인데요, 1993년 애가왈(Agarwal)과 스리칸트(Srikant)라는 사람에 의해 제안 되었습니다. 연관규칙 알고리즘은 간단히 설명하면 지지도가 일정 ‘이하’인 아이템을 포함하는 조합은 처음부터 신뢰도를 계산하지 않는다는 점입니다. 구매 데이터가 적은 상품이나 현업에서 의미있게 사용될만한 규칙만을 골라내는 것이죠. 앞서 말한 것처럼 지지도 50% 이상인 상품만을 활용하면 상품 4가지가 떨어지는 것을 예로 들 수 있습니다. 

이 외에도 DHP, ECLAT 등 데이터 마이닝에서 활용되는 연관규칙분석 방법들이 있는데요, 나중에 자세히 다시 설명드리도록 하겠습니다.





누구나 쉽게, 뷰저블로 연관성 분석 진행하기!


고객이 함께 많이 구매할 것 같은 상품(연관성)을 찾기 위한 정보는 꼭 엑셀 형태로 된 데이터로만, 통계 데이터의 수식으로만 확인할 수 있는 것이 아닙니다. 


뷰저블의 Segmenting CTA 메뉴 또는 Path-Plot을 통해 데이터 전문가가 아니더라도, 통계 전문가가 아니더라도 할 수 있습니다! 

Segmenting CTA 메뉴에서는, 특정 CTA를 클릭(터치)한 사용자만을 분류하여 살펴보고, 다른 데이터와 비교하여 특정 CTA와 상관관계가 있는 정보를 직관적으로 쉽게 찾을 수 있습니다. 또한 상관관계 뿐 아니라, Path-Plot의 여정을 통해 인과관계를 통한 연관성 또한 쉽게 확인할 수 있습니다. 

뷰저블의 각 기능으로 연관성을 분석하는 방법을 알아볼까요?


Segmenting CTA 기능이란?


뷰저블의 Segmenting CTA는 페이지 내 특정 버튼이나 배너 등 주요 전환 요소(CTA)를 클릭한 사용자와 클릭하지 않은 사용자의 정보를 확인할 수 있는 기능입니다. 따라서 CTA요소 별 두 사용자 그룹 간의 데이터 비교 및 분석이 가능합니다. 

구매 상품 예측을 위해서는 상품 상세 페이지의 구매 관련 CTA인 ‘장바구니와 구매하기’ 버튼을 활용할 수 있습니다. 

예를 들어, ‘사과’ 제품을 구매한 사용자가 a.어떤 경로로 유입되서 왔는 지, 또 b.어떤 버튼을 클릭해서 전환했는 지를 알면 연관된 상품을 예측해볼 수 있겠죠?


a. 어떤 경로로 유입되서 왔는지


먼저 뷰저블에서 ‘사과’ 제품의 상세페이지를 등록하고 ‘장바구니 버튼’을 CTA로 선택해봅시다. 아래 예시와 같이 장바구니를 클릭한 사용자가 어느 경로에서 유입되었는 지 확인할 수 있습니다. 사용자의 유입 경로를 파악하면, 사용자의 구매 패턴을 유추할 수 있겠죠? 사용자가 타 상품 페이지에서 전환되어 왔다면 그 상품과 ‘사과’와의 연관성이 있다고 볼 수 있습니다.


해당 상품을 구매한 사용자가 어떤 경로로 도달했는 지 확인할 수 있습니다.
해당 상품을 구매한 사용자가 어떤 경로로 도달했는 지 확인할 수 있습니다.

b.어떤 버튼을 클릭해서 전환했는지


Segmenting CTA에서는 ‘장바구니 버튼’을 선택한 사용자만의 클릭 히트맵도 확인할 수 있습니다. 아래 예시로 보자면, 장바구니를 클릭한 사용자는 상세 이미지와 구매하기, 그리고 첫번째 타 상품을 많이 선택했네요. 이미지가 타 상품으로 이동하는 전환 버튼이라면, 해당 상품을 살펴본 사용자가 타 상품도 함께 살펴봤다고 볼 수 있겠죠?


Segmenting CTA 예시 화면으로 실제 뷰저블에서는 페이지 캡처 위에 히트맵이 얹혀집니다.
Segmenting CTA 예시 화면으로 실제 뷰저블에서는 페이지 캡처 위에 히트맵이 얹혀집니다.

이 외에도 Segmenting CTA의 무브 히트맵, 스크롤 히트맵, 패스 플롯을 활용해 고객이 관심있는 항목을 추측해 볼 수 있습니다. 사용자의 구매 패턴도 함께 확인할 수 있죠. 또한, 구매 관련 CTA로 전환하지 않은 사용자는 전환 사용자와 어떻게 다른 행태를 보이는 지도 알 수 있습니다.


Path-Plot 기능이란?


Path-Plot은 페이지 내에서 사용자가 콘텐츠를 어떤 여정으로 탐색했는지를 나타냅니다. 


가입 버튼까지의 콘텐츠 탐색 여정을 나타내는 Path-Plot
가입 버튼까지의 콘텐츠 탐색 여정을 나타내는 Path-Plot 

구매나 전환이라는 결과 외에도 ‘탐색 여정’으로 콘텐츠 간의 연관성을 찾는 것은, 고객이 상품에 가진 잠재적인 니즈와 경험의 과정까지 고려한 연관성을 추측할 수 있다는 의미를 가집니다. 요구사항이 점점 더 다양해지고 빠르게 변화는 시장속에서 결과가 이미 지표로 나타난 뒤에 분석을 하기엔 늦을 수 있습니다. 

뷰저블의 Path-Plot으로 페이지 내에서 사용자들의 탐색 여정이 어떠한지 알아보는 것만으로 그치지 말고, 인과관계를 파악해보세요! 우리의 중요한 상품 과 연관성이 높거나 낮은 콘텐츠는 무엇일까요? 우리는 연관성 정보를 미리 발견할 수 있습니다.





오늘 글에서는 유통업계에서 흔히 장바구니분석이라 불리는 연관성분석에 대해 소개했습니다. 전혀 관련성 없어보일 것만 같은 상품관의 연결고리를 파악하면 마케팅 전략을 새롭게 구상할 수 있습니다. 이 분석을 잘 활용한다면 기업의 매출을 끌어올리고 고객에게 브랜드 신뢰도를 줄 수 있는 중요한 도구가 될 수 있습니다. 연관성 분석, 어려워보이지만 하나씩 데이터에 적용해보며 연관성 있는 제품들을 파악해보면 어떨까요? 


Share This Post

Share on facebook
Share on linkedin
Share on twitter
Share on email

More To Explore