[코드스테이츠 PMB 11] Ep23. 데이터 시각화
최근엔 IT 프로덕트 개발이 아니더라도 마케팅, 영업 등 대부분의 업무 영역에서 ‘데이터 활용 능력’의 중요성은 더욱 커지고 있다. 핵심은 얼마나 많은 양의 데이터를 보유하고 있느냐가 중요한 것이 아니라, '데이터를 어떻게 활용할 것인가'가 데이터를 기반으로 한 가치 창출의 키(key)라는 것이다. 단순히 데이터의 나열, 데이터의 축적 자체는 큰 의미가 없다.
어떻게 해야 데이터를 잘 활용할 수 있을까.
‘데이터 활용 역량’이라 하면 크게 두 가지를 떠올릴 수 있다. ‘데이터 분석’과 ‘시각적 스토리텔링’이다. 데이터 분석은 기술적으로 데이터를 수집하고 정제하는 데이터 가공 단계부터 분석 기법을 활용한 데이터 분석에 이르는 과정에 필요한 능력을 말한다. 시각적 스토리텔링은 데이터 분석 결과를 시각적으로 표현하여 스토리텔링을 하는 능력이다.
과거에는 이 두 역량 간의 경계가 뚜렷했지만 최근엔 이 두 역량을 아우르는 것이 더욱 중요해졌다. 바로 ‘데이터 시각화’이다.
데이터 분석 결과를 쉽게 이해할 수 있도록 시각적으로 표현하고 전달되는 과정으로, 수치 데이터를 시각 형태로 전환하여 이해할 수 있도록 하는 것이다.
PM에게 데이터 시각화가 중요한 이유는 분석한 결과를 빠르게 이해해 제품의 개선점을 쉽게 발견할 수 있으며, 제품팀에게 제품 분석 결과를 빠르게 공유하고 제품의 문제를 빠르게 개선할 수 있기 때문이다.
1. 데이터의 특성에 맞는 적당한 시각화 종류 선택
2. 좋은 색상과 디자인보다 원하는 정보를 한눈에 빠르게 이해할 수 있도록 데이터 가공
3. 많은 데이터를 담는 것보다 제품 목표 달성에 필요한 핵심 지표를 잘 보이게 하는 것이 중요
인터넷 쇼핑몰에서 옷이나 신발, 소형 가전 등 상품을 구매하고 반품을 해본 경험은 누구나 한 번쯤 있을 것이다. 상품에 하자가 있는 경우도 있고, 받아본 상품이 마음에 들지 않아서 반품을 하기도 한다.
이와 관련하여 MIT Sloan Management Review 265호(2019년 1월) '반품 비용 줄일 수 있는 고객 분석 기법'의 일부 내용을 발췌했다.
2017년 한 해 동안 소비자들은 구매한 상품 중 총 3510억 달러에 달하는 물품들을 반품했다. (만약 ‘소비자 반품’이라는 가상 회사가 있다면 이들은 포천 500대 기업 명단에서 월마트에 이어 2위에 이름을 올릴 것이다.) 평균적으로 미국에 있는 상점들에서 판매된 상품의 10%는 되돌아온다는 의미다.
안타깝게도 반품된 물품들의 대다수는 진열대에 다시 오르지 못하고 직원들의 시간까지 엄청나게 잡아먹는다. 재판매 가능한 물품들을 결정하고 그에 따라 적절히 처리해야 하기 때문이다. 반품된 상품들이 입고되면 직원들은 그 물건들을 전부 분류해야 한다. 그다음 아직 판매 가치가 있는 제품들을 수선하고 재포장해서 매장에 채워 넣는다.
미국 소매업체들이 반품 사기 및 남용으로 떠안는 연간 손실액이 230억 달러라는 점은 문제를 더욱 악화시킨다. 이는 월마트, 코스트코, 홈디포라는 미국 최대 소매업체 3곳의 수익을 한꺼번에 날려버리는 셈이다.
우리나라뿐만 아니라 미국 전자상거래 기업에서도 고객들의 반품 이슈 때문에 골머리를 앓는 모양이다. 고객들의 반품 요청에 가장 큰 영향을 끼치는 요인은 무엇일까? 또 반품을 하는 고객들이 가지는 특성은 무엇인지 한 번쯤 궁금증이 생겼었다.
마침, 다양한 분야의 데이터를 제공하는 캐글(Kaggle)이라는 사이트에서 이와 관련한 데이터를 발견했다.
'Amazon Seller - Order Status Prediction'이라는 데이터이다. 이를 기반으로 가설을 설정해보고 내가 세운 가설이 맞는지 데이터 시각화를 통해 검증해보고자 한다.
캐글(Kaggle)이라는 사이트는 Data Science Competition 플랫폼으로, 데이터 사이언티스트와 머신러닝 학습자들의 온라인 커뮤니티이다. 공개 데이터를 바탕으로 데이터 분석을 연습해보고 서로 공유하는 포럼 형식의 사이트인데 운영 방식은 아래 사진을 참고하자.
이 사이트에서 분석하고자 하는 데이터셋은 다음과 같다. (참고)
해당 데이터셋은 'BL'이라는 최근 아마존에서 제품 판매를 시작한 소규모 가죽 제품 비즈니스에 대한 데이터이다. 현재 인도 마켓플레이스에 약 40개의 SKU가 등록되어 있다. 하지만 지난 몇 개월 동안 반품 주문으로 인해 약간의 손실이 발생했다. 이제 BL은 새로운 주문이 거부(반품)될 가능성을 예측하고 이를 통해 필요한 조치를 취한 후 손실을 줄이고자 한다.
이 중, 내가 볼 데이터는 order_data.xlsx.로 order_no, order_date, buyer, ship_city, shipping_Fee 등 주문, 배송과 관련한 여러 항목들이 정렬되어 있었고 총 171행, 12열로 이루어져 있었다.
구글 빅쿼리나 Python 등 데이터 분석 도구를 활용했다면 좋았겠지만 아직 사용해보지 않은 도구라 다음에 배워보기로 하고, 오늘은 비교적 익숙한 Excel을 이용해서 데이터를 분석해 보았다.
위 자료에서 다음과 같은 columns을 얻을 수 있었다.
order_no(고유 주문 번호), order_date(주문 날짜), buyer(구매자명), ship_city(배송 도시), ship_state(배송 주소), sku(제품 식별부호), description(제품 설명), quantity(주문 단위수), item_total(구매자가 지불한 총금액), shipping_fee(배송비), cod(결제수단: 착불 여부), order_status(주문 상태)
이 중 고객의 주문 상태(반품 여부)에 영향을 미치는 요소들을 골라 가설을 세우고 아래와 같이 검증해 보았다.
데이터를 보면 구매자마다 배송비가 다른 것을 확인할 수 있었다. 같은 도시명인 경우 배송비가 같은 것으로 보아, 거리가 먼 지역일수록 배송비가 비싸지는 것으로 추측된다.
거리에 비례하여 배송비가 책정된다면 배송비가 비쌀수록 반품비 또한 비쌀 것이므로, 배송비에 부담을 느껴 반품 가능성이 낮을 것이라 생각했다.
구매한 상품이 여러 개일 경우 그중 1~2개는 마음에 들지 않거나 반품 사유가 발생할 가능성이 있지 않을까 예상해보았다. 개인적인 경험으로 비추어 본다면, 인터넷 쇼핑몰에서 의류·잡화를 여러 개 구매했을 때 그중 1개 정도는 반품을 할지 말지 고민했던 적이 있다.
매번 그런 것은 아니지만 실물을 확인하고 구매하는 것이 아니기 때문에 많이 구매할수록 상품에 대한 기대와 실제 상품에서 차이가 나는 경우가 있을 것 같다.
착불은 상품을 받은 사람이 택배기사에게 배송비를 지불하는 것이다. 상품을 받은 후 배송비를 결제한 상태에서 반품을 위해 또 배송비를 결제해야 한다면 반품을 꺼릴 가능성이 클 것이라 예측했다.
착불이 아니라 결제 시에 배송비를 같이 결제했다면 반품 신청을 좀 더 쉽게 할 것 같다고 생각했다. 단지 결제 시기의 차이일 뿐인데, 결제가 연속해서 일어나면 왠지 손해 보는 느낌이 들어 꺼리지 않을까.
총 171개의 주문 상품 중 반품된 상품은 11개, 구매자에게 배송 완료된 상품은 160개로 6.4%의 상품만이 반품 요청을 했음을 확인할 수 있었다. 예상보다는 반품률이 낮게 나타났는데 모수 자체가 많지 않기 때문으로 추측된다.
'배송비가 비쌀수록 반품 가능성이 높을 것이다'라는 가설을 검증하기 위해 반품 상품과 배송 완료된 상품을 구분하여 배송비 구성이 어떻게 되는지 살펴보았다. 반품 상품을 배송비가 높은 순에 따라 확인해 보았을 때 배송비 84.96$인 상품이 7개(63.6%)로 가장 많았고, 60.18$와 47.20$가 각각 1개, 배송비 없음이 2개였다.
한편, 배송 완료 상품의 경우 마찬가지로 배송비 84.96$인 상품이 58.1%, 배송비 없음이 15%, 60.18$가 10% 순이 그다음을 차지했다. 반품 상품/배송 완료 상품 모두 배송비 구성 비중은 비슷했으나 여기서 주목할 것은 배송비가 다소 비싼 100$ 이상의 상품(8.1%)들은 모두 반품되지 않았다는 것이다.
따라서 배송비가 비싸다고 해서 반품률이 높다는 것은 틀린 가설임을 확인할 수 있었다. 모수가 작아 명확한 상관성을 밝히기에는 무리가 있어 보이나 배송비와 반품 가능성 사이의 상관관계는 찾을 수 없었다.
'주문 단위 수(주문 건수)가 클수록 반품 가능성이 높다'는 가설을 검증하려면 2개 이상 주문 상품을 대상으로, 반품 상품과 배송 완료된 상품을 구분하여 표시해야 한다고 보았다.
2개 이상 주문 상품이 171개 상품 중 7건이었고, 그중 반품된 건수는 1개에 불과했다. 반품 건수를 한눈에 잘 띄도록 표현하기 위해 누적 세로 막대형 차트로 시각화했다. 따라서, 주문 건수가 많다고 해서 반품 가능성이 높을 것이라는 가설은 '거짓'으로 검증되었다.
가설 3 '착불 배송을 받는 경우 반품 가능성이 낮을 것이다'를 검증하기 위해 착불 건수 중 반품률과 일반 결제 건수 중 반품률을 비교해보았다.
전체 착불 건수는 47건이었고, 그중 5건이 반품되어 전체 착불 건수의 11% 임을 확인했다. 일반 결제의 경우는 전체 124건 중 6건이 반품되어 반품률은 4.8%였다. 이로 보아 착불이 아닌 일반 결제를 했을 때 반품 비중이 더 낮음을 알 수 있었다. 이 가설 또한 '거짓'임을 확인하였다.
공교롭게도 세 가설 모두 검증에 실패했다. 가설을 설정할 때는 나름대로 합리적인 이유이지 않을까란 생각에 가설을 예측해 보았으나 데이터로 확인해 본 결과 전혀 다른 결과가 나왔다.
그 이유를 유추해보니 첫째로는 모수 자체가 너무 작아서 유의미한 인사이트를 뽑아낼 수 있었는지 의문이 들었다. 주문건수 171건으로 분석한 결과와 10,000건을 분석한 결과는 달라질 수 있지 않을까? 그래서 적정 수 이상의 데이터를 확보한 후에 그에 맞는 합리적인 가설을 세운 후 데이터를 분석해야 신뢰성 있는 결과를 도출할 수 있을 것 같다.
두 번째로는 raw data를 일차원적으로 스키밍한 후 주관적인 생각과 직관에 의존해 가설을 설정했다는 것이다. 어떤 근거에 의해서라거나 합리적인 추론이 아닌 감에 의해서 가설을 설정했기 때문에 데이터 분석 결과와 전혀 달랐던 것 같다. 문제를 제대로 정의하지 못했다고 생각이 되는데, 전자상거래에 대한 어느 정도의 배경 지식과 back data를 가지고 있었다면 낫지 않았을까 싶다.
+) 오늘 분석한 데이터가 '반품 가능성 예측하기'였는데 가설 검증과는 별개로, 이에 대한 답이 궁금했다.
그래서 '어떻게 하면 반품률을 사전에 예측하고, 낮출 수 있는지'와 관련한 자료를 찾아보았다.
회사가 반품 정책을 조정할 수 있는 방법은 다양하다. 그중 간단한 방법 하나는 고객이 제품을 반품할 때 이를 흔쾌히 받아들이면서도 반품량이 지나치게 많은 건 아닌지 확인하는 것이다. 과다한 반품 이력이 있는 고객이라면 소매업체가 현장에서 반품 거래를 제한하거나 거부할 수 있다.
판매 시점에 차별화된 반품 정책을 명확히 알릴 수도 있다. 과다한 반품 이력이 포착된 고객에게는 거래 시점에 반품 조건을 고지할 수 있다. 즉, 반품을 할 경우에는 그 기간이 제한돼 있으며 반품 수수료를 물거나 배송비를 직접 부담해야 한다고 설명하는 것이다. 또 계절상품이나 전자제품처럼 상품 가치가 빨리 하락하는 제품군에 대해서도 수수료를 물리거나 반품 기간을 단축할 수 있다.
- DBR '반품 비용 줄일 수 있는 고객 분석 기법' 中
아마도 업계의 특성과 반품률 정책에 부합하는지 확인해 봐야겠지만, 반품률 감소를 위한 다양한 방법들이 존재함을 알 수 있었다.
국내 기업 사례로는 오리온이 소비 데이터를 생산 계획에 실시간 반영하면서 재고를 줄여 반품률을 크게 낮췄다고 한다. 고객 데이터의 중요성을 미리 인지하고, 시스템 구축 및 개선 작업을 계속해왔기에 이 같은 성과를 낼 수 있었다고 본다.
'아마존 셀러의 주문 상태 예측'이라는 흥미로운 주제를 가지고 데이터 분석을 해 보았다. 거기까진 좋았으나 데이터 시각화 단계에서 고전을 면치 못했다. 사실 데이터 시각화를 위한 도구로 Tableau를 사용해보고 싶어서 설치하고 가입한 후 엑셀 데이터를 불러와 이리저리 연구(?) 해보았으나 실패했다(...)
어쩔 수 없이 평소 쓰던 엑셀과 PPT 툴로 연습해 보았는데 뭔가 조잡하고 썩 마음에 들지 않는다. 기본적인 데이터 시각화를 할 수 있을 정도로 태블로를 배워놓아야겠다..^^!
참고자료
https://dbr.donga.com/article/view/1202/article_no/8983/ac/magazine