공부 기록/회고

두번째 프로젝트 [Olist 전자상거래 데이터 분석]

cysk 2026. 1. 18. 15:46

두번째로 진행한 프로젝트다. 이전 프로젝트에서 내배캠 매니저님이 " 팀원이 틀려도 실행하는게 좋다. 프로젝트의 목적은 배움이고, 실패에서 배운다" 라고 하여서 내 의견을 최대한 배제하고 팀원의 자율성을 존중 한 프로젝트이다. 

어느정도로 개입하고 리드해야 하는지 확인할 수 있었던 프로젝트다.

 

진행 기간 :  2025년 10/13~10/23(9일)/4인

사용된 데이터 : 캐글에 공개된 2016-09~ 2018-10 Oilst 전자상거래 데이터

기여 내역 : 전처리, 분석, 인사이트 도출, 자료수집

 

1. Olist 기업 분석

Olist는 2015년에 설립된 브라질 내 최대 규모 마켓플레이스 중 하나이다. 여러 대형 마켓플레이스(아마존 등)에 Olist store라는 이름으로 상품을 노출, 판매하도록 도와주는 판매자 통합 플랫폼이다. 

 

 

2. 데이터 소개

총 8개의 주요 테이블로 이루어져 있으며 카테고리의 이름을 영어로 번역한 1개의 추가적인 테이블로 이루어져 있다.(총 9개의 테이블)

 

3. 전처리 내역

  • 각 테이블의 PK를 통해 데이터를 합쳤다.
  • Payment_type에서 not_defined를 제거하였다.
  • 배송시간을 파악하기 위해 배송상태가 배송 완료인 것만 필터링 하였다.
  • 좌표 결측치를 도시의 좌표 중앙값으로 채웠다.
  • 컬럼 삭제 [리뷰 제목, 내용, 리뷰답변 타임스탬프, 리뷰 작성일, 제품 길이, 높이, 너비, 순차 결제 번호]
  • 좌표기반 거리 산출 : 판매자와 구매자간 거리산출을 위해 하버사인 공식을 활용하여 거리를 산출하였다. 
  • 배송 지연 파생 컬럼 생성 : 예상 배송 완료일 - 고객 배송 완료일(음수는 xx일만큼 배송 지연, 양수면 xx일만큼 빠른 배송)

남은 결측치 내역

  • 이 중 [product_category_name, product_name_lenght, product_description_lenght, product_photos_qty]는 중복 결측치(4개 컬럼 동일 결측치)인것을 확인하였고, 제품 카테고리, 이름, 설명, 사진이 모두 없기에 테스트 페이지나 페이크 상품이라 가정하고 삭제를 진행하였다.
  • 브라질 좌표계 밖의 데이터가 존재하여 해외구매라 생각하였고, 해외구매의 경우 [1. 구매자가 받았을 때 배송확인을 누른다. 2. 배대지등의 중간 물류 업체가 받고 확인을 누른다] 를 확인 할 수 없어 지오제이슨을 기준으로 필터링 하였다.
  • 월별 판매 건수를 확인한 결과 2016-9~2016-12까지의 데이터와 2018-09~2018-10의 데이터는 구매횟수가 매우 적어 제거하였다.(2016-9~2016-12 까지는 서비스 극초기, 2018-09~2018-10는 자료 제공을 위한 가공 중에서 데이터가 손실된게 아닌가 하는 생각을 하였다.)

4. 분석

우선적인 목표 설정을 재구매율 개선이였다. Olist는 데이터 상 신생 기업이였고, 재구매율이 약 3%로 매우 낮아 대다수의 구매자가 한번 구매하고 이탈하는 구조였기 때문이다.

 

나는 배송 소요 시간쪽을 주로 파보려 하였다. 브라질은 북부의 정글지대와 남쪽의 평야지대가 공존하고, 국토의 가로, 세로 길이와 넓이 모두 커서 배송 시간에 따라 재구매율이 다를것이라 판단하였다.

 

따라서 다음과 같은 가설을 세워 1차적인 가설 분석을 진행하였다.

  • 배송 지연이 클수록 재구매율이 낮음
  • 배송 소요 시간이 길수록 재구매율이 낮음
  • 주문 승인 지연이 길수록 재구매율 낮음

1차적으론 배송 지연과 배송 소요시간이 채택되었다. 다만 데이터의 수가 많을수록 작은 차이여도 P-value는 유의하다고 나오기에 참고용으로만 사용하였다.

  • 2차로 box plot과 Q-Q plot, 히스토그램과 기술통계를 통해 분석을 진행하였다.

 

 

결과적으로 배송 프로세스가 전혀 관리되고 있지 않고, 비효율적임을 알아냈다.

std로 표기된 표준편차는 11.64로 어떤 배송은 평균보다 11.64일 빨리오거나 늦게 오는 것이 통계적으로 정상범위라는 의미이다.

min과 max값을 보면 -56과 55로 어떤 경우에는 56일 일찍, 어떤 경우에는 55일 늦게 도착한다는 것으로 배송 프로세스를 전혀 통제하고 있지 않다는 의미이다.

다른 통계도 같은 의미를 지니고 있는데 이는 하단의 접은글에 적도록 하겠다. 

더보기

지연일에 대한 박스 플롯 해석

박스 크기는 75%값과 25%의 차이인 13일로 박스가 좁게 형성되어 있습니다. 이는 데이터의 절반이 13일내 좁은 범위에 밀집되어 있음을 보여줍니다.

또한 박스의 위치를 보시면 상자 전체가 음수 영역에 치우쳐져 있습니다.

이는 배송의 50%가 최소 6일에서 19일 조기 도착 구간에 몰려있음을 보여줍니다.

이상치로는 상자의 위 아래로 많은 이상치가 존재하는데,

이는 극단적인 조기 도착과 극단적인 지연 도착이 드물지 않으며

현재 배송 프로세스 상 일반적으로 발생하는 현상임을 의미합니다.

 

q-q플롯 해석.

파란색 점들은 빨간색 직선인 정규 분포를 따르지 않고 뚜렷한 s자 곡선을 그립니다.

왼쪽 하단과 오른쪽 상단을 보시면 각각 빨간 선을 벗어나는데

이는 실제 데이터가 정규분포가 예측하는 것보다 훨씬 더 극단적인 값을 가지고 있음을 의미합니다.

결론적으로 데이터가 두꺼운 꼬리 분포를 가지며 평균적인 값보다 극단적인 값이 더 자주 발생하는 예측 불가한 분포임을 알 수 있습니다.

 

히스토그램 해석.

가장 높은 막대기가 중앙값과 일치하는 경향을 보입니다.

분포가 정규분포가 아니며 중심의 왼쪽으로 데이터가 넓고 길게 퍼져 있으며 이는 대다수의 배송이 조기도착한다는 통계와 일치합니다.

다만 오른쪽 꼬리가 0을 넘어 50일까지 끊이지 않고 길게 이어집니다.

이 꼬리 때문에 평균이 중앙값보다 높게 왜곡됩니다.

근거 보강을 위한 머신러닝

통계적으로는 배송이 전혀 관리되고 있지 않다는 것을 알 수 있었다. 그러나 이것이 재구매율에 어떤 영향을 끼치는지는 알 수 없다. 

그렇기에 재구매율에 영향을 끼치는 요소들이 무엇인지 확인하기 위해 머신러닝을 사용하였고, 교차검증을 위해 XGBoost와 CatBoost를 활용하여 확인하고자 하였다.

머신러닝은 Accuracy, Recall, Precision, F1 말고도 예측하고자 하는 항목에 어떤 컬럼[특성]이 영향을 미치는지 확인 할 수 있고, 이를 통해 재구매율에 대해 배송관련 소요 시간이 얼마나 영향을 미치는지, 그보다 더 중요한 요소는 없는지 확인하려 하였다.

 

불균형 데이터를 증강하기 위해 SMOTE와 그리드 서치를 사용하였고, SMOTE는 범주형 피쳐도 넣을 수 있는 SMOTENC를 선택하였다. 또한 변수나 모델의 관리를 위하여 PipeLine 라이브러리를 사용하였다.

추가적으로 해석의 용이성을 위하여  SHAP를 사용하였다.

  • 결과

 

shap 영향도 분석 결과 상위 3개 변수는 총 주문량, 배송 기간, 할부 개월수로 동일.

두 모델 모두 주문 수량, 배송기간, 할부 개월을 동일하게, 동일한 순서로 식별 하였고 변수 영향 방향성 면에서 색상과 x축, 영향력의 크기 및 분포 면에서 x축, 스케일 및 플롯 모양을 확인 하였을 때 각 변수의 데이터 밀집형태도 거의 동일하여 신뢰할 수 있는 결과라고 판단하였다. 

 

주문 수량이 많고, 할부 기간이 길며, 배송이 빠르면 재구매 확률이 높아진다고 요약 할 수 있다.

 

인사이트 도출을 위한 분석 및 자료 수집

위의 결과를 통해 다음과 같은 결과를 얻을 수 있었다.

1. Olist의 배송 시스템은 전혀 관리되고 있지 않음.

2. 재구매율에 영향을 끼치는 요소는 주문수량, 할부 기간, 배송이 빠름

 

그렇다면 어떻게 해야 하는가?를 알기위해 추가적인 분석을 진행하였다.

  • 지오제이슨을 활용해 배송 소요 시간과 판매자-구매자의 위치를 표기.

우선 배송 소요 시간이 긴 지역은 북부, 그 다음으로 북동부가 배송소요 시간이 15일 이상으로 물류 효율화가 되지 않은 지역임을 확인하였다.

그리고 판매자-구매자의 좌표를 찍어보았을 때, 판매자는 주로 남부, 남서부에 위치하였고 구매자는 북부, 북동부를 제외하고 고르게 분포함을 알게되었다.

 

또한 북부의 경우 Olist의 판매자가 남부에 비해 적어 거의 진출하지 않은 지역임을 확인할 수 있었다.

그래서 왜 Olist는 북부에 진입하지 않았는가? 왜 남부 먼저 진입하였는지 궁금하여 좀 더 확인하였다

  • 브라질 북서부의 역사
더보기

대항해시대 시기 개척되어 플렌테이션을 주로 하는 농업지역이다. 남서부에 철광이 발견되면서 남서부가 공업화한 것과는 달리 북서부는 계속하여 농업위주의 경제를 이어나가 상대적으로 낙후되었다.

 

또한 지속된 가뭄의 영향으로 농가의 소득이 줄어들고 있으며, 농사를 그만두는 농가가 늘어나는 등의 영향을 받아 내륙 토지의 가격이 낮게 형성되어있다.

  • 인구가 적어서 그런가? 싶어서 확인해본 브라질 인구밀도 지도 및 인구수 자료
더보기

오히려 인구 밀집도는 북서부와 남부가 별 차이가 없음을 확인하였다. 또한 북서부 6개주는 인구가 많다는 것을 확인하였다.

6개주 인구 다 합치면 2900만으로 브라질 전체 인구 중 27.2%

각각

Ceará :CE : 8904459

Rio Grande do Norte :RN : 3442175

Paraíba :PB : 3972202

Pernambuco :PE : 9345173

Alagoas :AL : 3340932

Sergipe :SE : 22423937

  • 브라질의 도시화율
더보기

북서부는 도시화율이 낮은 낙후지역임을 확인

  • 지니 계수 및 GDP
더보기

 GDP 14.4%를 차지하는 2번째로 부유한 지역이지만 지니계수는 0.559로 불평등이 가장 심한 지역이다.

요약하자면 브라질 내에서 인구와 GDP를 차지하는 비율이 두번째로 많은 고인구, 부유한 지역이지만 지니계수 0.559로 빈부격차가 큰 지역이다. 또한 도시화율이 낮고 내륙의 토지가 역시 낮게 형성되어 있음을 확인할 수 있었다.

 

인사이트 도출

그렇다면 현재까지 알아내고 확인한 자료를 종합하면 다음과 같다.

통계 분석 : 배송 시스템이 전혀 관리가 안되고 있음.

머신러닝 : 재구매율에 영향을 끼치는 요소는 주문수량, 할부 기간, 배송

자료 수집 : 상대적으로 싼 인건비, 내륙의 토지가, 해안 인접성

 

북동부는 상대적으로 싼 인건비와, 내륙의 토지가를 가지고 있어 물류 센터를 상대적으로 저렴한 가격에 짓고 운영할 수 있으며 해안과 인접해 물류 배송도 용이하다. 또한 빈부격차가 심하다는 말은 저가, 고가 모두 수요가 있다는 것이다.

 

이를 정리하니 다음과 같은 생각이 들었다.

북동부의 진입과 함께 물류 센터를 지어 테스트 보드로 사용하면 어떨까?

 

결론 :

북서부 지역은 인구 밀집도가 높음에도 물류 인프라 부재로 배송 지연이 심각하다. 이는 해당 지역의 잠재 수요를 저해하는 요소이므로, 물류 거점 확보 혹은 추가적인 판매자 유치를 통한 재구매율 제고 전략이 필요하다. 

기대 효과

물류 센터를 지음으로써 얻는 이익은 다음과 같다

1. 배송비, 배송일 감소

우선 배송비가 평균 64% 감소하여 추가적인 가격 경쟁력을 얻을 수 있다.

타지역에서(남부) 북부로 이송하는 시간을 단축하여 배송일 역시 감소 시킬 수 있다. (67%감소)

 

2. BM 다각화

올리스트는 판매자와 쇼핑몰, 구매자와 물류 파트너의 관계에서 수수료를 메인 BM으로 삼았다. 이것을 물류 서비스를 통한 수수료로 보완 가능하다.

또한 북부에서 구매한 상품 중 남부에서 출발한 상품을 [배송 기간이 오래 걸려도 구매할 가치가 있는 물건]으로 판단하여 선제적으로 입고 할 수 있다.

 

3. 현재 BM 강화

Olist의 문제점 중 하나는 배송 품질이 전혀 관리되고 있지 않다는 것이다. 이를 물류센터를 지음으로써 해결하고 운영을 통해 물류 시스템을 최적화 하며 남부 판매자의 디메리트(배송기간)을 제거할 수 있다. 

또한 현재의 배송 시스템은 판매자는 개개인의 물류 창고에서 반출하여 배송하는 형식이다. 이는 판매자가 물류 창고를 관리한다는 의미이며 이를 Olist의 물류창고에 입고함으로써 불편도를 하락시킬 수 있다. 

 

지역 추천

그렇다면 어디에 지어야 할까? 이것을 확인하기 위해 인구밀도와 함께 브라질 내 도로망을 확인하였다.

하단의 접은글은 브라질의 도로 생태계이다.

더보기
https://link.springer.com/chapter/10.1007/978-3-031-93619-7_9

인구 밀도와 도로망, 물류 접근성(해안 접근성 및 주변 지역 연결성)을 확인한 결과 시에라와 파라이바 두 지역이 가장 최적이라 판단하였다.

 

------

첫번째 프로젝트에서 1달이 지난 뒤 진행한 프로젝트이다. 그동안 배운것을 거의 전부 사용한 프로젝트인 것 같다. 

그러나 인사이트 도출 과정에서 사고의 비약이 있었던 프로젝트이다. 특히나 물류센터의 경우 아직도 논리적 흐름에서 비약이 있지 않았나 싶다.

 

다만 머신러닝의 활용, 자료 수집, 인사이트 도출의 측면에서 어떻게 해야 설득을 할 수 있을까, 어떻게 해야 논리적일까를 가장 많이 고민한 프로젝트인것 같다.