제품/고객별 구매 빈도 계산하기

By 2016년 8월 18일Blog, 데이터시각화

안녕하세요. 플랜잇 입니다.

최근에 ‘특정 제품의 재구매 간격’을 구하는 방법을 문의 주신 분이 있으셨습니다. 아마 새로 출시된 제품이 실제로 반복적인 재구매로 이어지는지, 그 시간적인 텀을 일자별 구매 데이터를 활용하여 확인하고자 하셨던 듯 하네요.

사실 많이들 궁금하신 내용일 듯 합니다. 고객 별로 지속적으로 재구매가 이루어지는지, 영업 사원 별로 지속적으로 매출이 발생하는지, 온라인 마케터가 정기적으로 활동을 하는지 등등 Event의 활동 빈도를 파악하는 컨셉을 활용하여 분석할 일은 꽤 많이 있을듯 합니다. 그리고 다른 툴로는 분석하기 어려운 일일 겁니다.

그래서 한번 만들어 보았습니다~!  다만, LOD를 포함하여 조금 어려운 내용도 포함되어 있으니, 기본적인 학습이 되신 분들이 쉽게 따라 하실 수 있으리라 생각됩니다.

 

우선 데이터 소스는 우리의 영원한 기본 데이터 Superstore를 활용하겠습니다. Tableau Desktop을 실행하시면 왼쪽 아래 나오는 Sample data 이고, 보통 DB에 저장되는 형태와 유사하기 때문에 많이 참고가 되시리라 봅니다.

저희가 접근하는 방식은 Product Name 단위로 선택된 기간 동안의 일수(Day count)를 계산하고, 이를 구매 횟수(Order ID의 Unique Count)로 나누면, 구매 간격 일수가 계산되는 방식입니다. (물론 이 방식이 유일무이한 방식은 아닙니다~)

먼저 LOD를 활용하여 제품당 Order ID의 Count Distinct 값을 구합니다. 다른 조회 조건이 있을수도 있으니 Include를 썼습니다. 아래 이미지에 나온 수식을 그대로 타이핑하시면 됩니다. Count가 아니고, CountD 입니다~

(LOD를 잘 모르신다면, http://www.tableau.com/ko-kr/about/blog/LOD-expressions 를 참고하셔요~)

 

160818-1

‘Product name’을 ‘행’으로 가져다 놓고, 방금 만든 ‘Order Count’를 ‘텍스트’에 가져다 놓습니다.

그리고 Order date를 ‘년월’ 포맷으로 필터에 가져다 놓아 조회 조건을 적용합니다. 저희는 14년 전체를 골라 보았습니다. 아래 보시는 바와 같이 14년도에 발생한 구매 ID가 Product 단위로 조회된 것을 확인하실 수 있습니다.

160818-2

그 다음에 선택된 Order Date 범위 내의 Day 수를 계산해 보겠습니다. 저는 datediff 함수를 써서, 제품별로 최초 구매와 최종 구매 시점 사이의 일수를 Min 일자와 Max 일자 함수를 써서 계산해 보았습니다. 예를 들어 3/1에 최초 구매, 5/1에 최종 구매를 했다면, Day Cnt 값은 61이 나오겠네요~

160818-3

이걸 쉬트에 가져다 놓으면, 제품별 구매 횟수와 최초/최종 구매일자 사이의 일수가 표현됩니다.

160818-4

그리고 계산된 Day Cnt 값을 구매 횟수로 나눈 값을 Order Frequency로 불러 보겠습니다. 다만, Order count를 그대로 나누면 안되고, 1을 빼서 나눠야겠죠. (엑셀로 써서 생각해보시면 이유를 아시지 싶습니다~^^) 그리고 Order Count는 포맷에 따라 여러 개 값이 나올 수 있는 상황이기 때문에 여기에 ATTR 함수를 적용해서 단일 값으로 나오도록 수식을 바꿔줍니다. (ATTR 함수가 궁금하시면, https://www.interworks.com/blog/tcostello/2014/05/15/attr-tableaus-attribute-function-explained 을 참고하세요. 처음엔 조금 어려우실수 있습니다만, 곧 아하 하실겁니다~)

160818-5

이를 worksheet에 적용하면, 아래와 같이 최종적으로 우리가 계산하고자 하는 값이 나옵니다~!!

이것을 Bar chart나 Heat map 등 원하시는 다른 포맷으로 변경해서 사용하시면 되겠습니다~!!

160818-6

저희가 결과 파일을 첨부드리니, 다운받아서 활용하세요~

이처럼 공식적인 구매 간격 일수를 구할 수도 있지만, 아래 이미지처럼 구매일자 축으로 구매 ID와 구매 금액을 표현하여 구매 간격을 시각화하실수도 있겠네요~!!

160818-7

(http://public.tableau.com/shared/RGGD2TSMF?:display_count=yes)

조금 어려우셨나요? 하지만 이 정도로 자유롭게 계산할 수 있어야, 여기 저기 활용할 일이 많으실 거라 생각합니다. 고비를 넘어가면 마음껏 누릴 수 있는 푸른 잔디가 펼쳐져 있을 겁니다~!!

정답 파일을 첨부해 놓았으니 마음껏 활용하세요~!

 

정답파일 다운로드 받기 : 제품별 구매 빈도 계산.twbx

 

그리고 파일 안에 ‘제품별 구매 빈도 (전체 기간)’ sheet를 보시면, 조금 다른 방식으로 구현된 예시를 보실 수 있습니다만, 너무 복잡할 것 같으니 여기서 더 설명하진 않겠습니다. 이해가 안되시면 support@planit-partners.com으로 메일 보내 주세요~~^^

맨날 보던 숫자 똑같이 계산하는 건 재미 없죠~!! 태블로로 새로운 Insight를 찾아보시죠~!!