1. 라이브러리 import

2. 데이터 불러오기

3. 데이터 요약

4. EDA

4.1 이상치 제거

4.2 Sales & Profit 분포

[분석 절차]

  1. Sales와 Profit간의 분포를 산점도를 통해 확인합니다. 이때, Sales는 평균을 기준으로 Profit은 0을 기준으로 분포를 비교하도록 합니다.
  2. Sales와 Profit의 히스토그램을 통해 각 변수의 분포를 확인해봅니다.

4.3 Market별 Sales& Profit 집계

[분석 절차]

  1. Market과 Market1의 차이를 확인합니다.
  2. 국가(Country)별 Sales와 Profit을 집계하여 비교해봅니다.
  3. Sales 기준 상위 10개국과 Profit 기준 상위 10개국을 비교해봅니다.

[분석 결과]

  1. SuperStore 데이터의 feature들을 확인해보면 "Market"과 "Market1"이라고 명명되어있는 컬럼이 있습니다. 둘다 주문이 가능한 국가들을 대륙을 기준으로 구분한 Cateogrical Variable인 것으로 보입니다.
  2. Market과 Market1의 차이를 확인한 결과 Market1이 더 세분화된 구분인 것으로 확인되었습니다.
  3. EMEA의 경우 Europe, Middle East, Africa의 국가들이 혼재되어있습니다. EMEA에 소속된 국가들을 세부적으로 확인해본 결과, EMEA의 유럽 국가들은 EU(서유럽)과 구분되는 동유럽 국가들이 소속되어 있고, 서아시아 국가들이 포함되어 있고 아프리카 국가들은 해당되지 않고 있습니다.
  4. 따라서, Market1은 아래와 같이 시장을 구분하고 있다고 정리할 수 있습니다.

    EU(Western Europe), APAC(Asia-Pacific), LATAM(Latin American), Canada, US, Africa, EMEA(Eastern Europe & the Middle East)

  5. 국가별 Sales와 Profit의 분포를 비교해본 결과 Africa와 EMEA에 소속된 국가들이 상당수 높은 Sales와 Profit을 기록하고 있습니다.

4.4 Discount별 Sales & Profit 분석

[분석 절차]

  1. Discount에 따라 Sales와 Profit이 어떻게 변하는지 확인합니다.
  2. 원본 데이터에서 필요한 변수만 따로 분리하여 df_discount에 저장합니다.
  3. df_discount 내 변수간 상관관계를 확인해봅니다.
  4. reg_plot을 통해 상관계수가 높은 변수들의 관계를 시각적으로 확인해보고 회귀직선을 그려봅니다.
  5. Sales - Profit에 대한 Scatterplot을 통해 Discount에 따른 매출과 수익 패턴을 확인해봅니다.

[분석 결과]

  1. df_discount에 대해 상관관계 분석을 시행한 결과, Discount와 Profit이 -0.54로 상관관계 계수가 높았습니다. 이는 Discount와 Profit이 음의 상관관계를 가지는 것을 보여주며 할인율이 클수록 이익이 줄어든다는 것을 의미합니다.

  2. 흥미로운 것은 Shipping Cost와 Sales간의 상관관계가 0.77로 높은 수치를 보이고 있다는 것입니다. 두 변수 사이의 정확한 관계는 추가적인 분석이 필요할 것으로 보입니다.

  3. regplot을 통해 이전 상관관계 분석의 결과를 시각적으로 확인할 수 있었지만, Discount 변수가 discrete한 패턴을 보여 관계검정보다는 차이검정을 진행할 필요가 있다고 보입니다.

  4. Sales와 Profit의 분포를 Discount에 따라 구분하여 확인해본 결과 적자를 기록한 영역의 할인율이 꽤 높은 것을 확인할 수 있었습니다.

4.5 Market별 인기 Category 확인

[분석 절차]

  1. Market과 Subcategory를 축으로 하는 crosstab 생성합니다.
    • Crosstab의 Value값은 주문량(Quantity)의 총합(sum)에 대해 Market을 기준으로 합이 1이 되도록 normalize을 진행합니다.(백분율로 환산)
    • 가령, EU의 각 Sub Category의 normalize값의 합은 100%, APAC의 Sub Category의 총합 또한 100%가 됩니다.
  2. Heatmap을 통해 Crosstab의 결과를 시각적으로 확인합니다.

[분석 결과]

  1. 전반적으로 대부분의 Market에서 Art, Binders 카테고리가 가장 인기가 많았습니다.
  2. 특징적인 것은 US 시장에서 Papers 카테고리의 주문량이 많았으며, (APAC, Africa)에서 Fasteners의 주문량이 많았고 (Africa, Canada, EMEA, EU)에서 Storage 카테고리의 주문량이 높았습니다.

4.6 Order Date별 Sales & Profit & Quantity 비교

[분석 절차]

  1. Order Date 컬럼을 Month와 Day로 분리하여 새로운 컬럼을 만듭니다.
  2. Month & Day에 따라서 Sales와 Order Quantity 추이가 어떻게 변하는 지 확인합니다.

[분석 결과]

  1. 연간 Sales와 Profit추이를 비교한 결과, Sales와 Profit 모두 매년 증가 추세에 있습니다.
  2. Month와 Day에 따른 Order Quantity(주문량)를 비교한 결과, Month를 기준으로 주문량은 하반기(특히,4분기)에 집중되어 있습니다.
  3. Day를 기준으로 보았을 때는 전반적으로 225 전후의 주문량을 기록하고 있으며 월말(29,30,31)로 갈수록 주문량이 큰폭으로 하락하는 양상을 보이고 있는데 이에 대해서는 다른 관점(평균 주문량)에서 분석을 진행해야 할 것으로 보입니다.
  1. Heatmap 그래프에서도 Sales와 Order Quantity 모두 4분기에 집중되어 있는 것을 확인할 수 있습니다.

4.7 배송등급별 Sales와 Profit 비교

[분석 절차]

  1. Ship Mode에 따른 Shipping Cost, Sales, Profit을 비교해봅니다.

[분석 결과]

  1. Ship Mode에 따라 평균 Shipping Cost 차이가 있지만 Sales와 Profit에는 큰차이가 없습니다.

4.6.4 Ship Mode별 배송기간 확인

5. 고객 세분화 (Segmentation)

5.1 Sales와 Profit 기준으로 고객 세분화

[분석 절차]

  1. df_top_customer을 통해서 고객별 Sales와 Profit의 분포를 확인합니다.
  2. 분포를 Sales(매출)과 Profit(수익)에 따라 4개의 영역으로 세분화하여 Customer Segmentation을 확인합니다.
    • Sales의 평균값을 기준으로 "High Sales"와 "Low Sales"로 구분하고 0을 기준으로 "High Profit"과 "Low Profit"으로 구분합니다.
    • 이에 따라 총 4개의 세그먼트로 고객들이 세분화될 수 있습니다.

[분석 결과]

  1. 고객들의 분포가 "High Profit"에 집중된 것으로 보아 현재 수익성에는 큰 문제가 없는 것으로 판단됩니다.
  2. "Low Profit"에 분포된 고객들에 대해서는 추가적인 마케팅과 수익개선을 위한 전략이 필요로 할 것입니다. 또한, "Low Profit" 내에서도 Sales의 정도에 따라서도 다른 전략을 취해야 합니다.
  3. "High Sales & Low Profit"에 해당되는 고객들에 대해서는 같은 제품 카테고리 내에서도 높은 마진의 제품들을 상위에 노출시키도록 하고 "Low Sales & Low Profit"에 해당되는 고객들에 대해서는 프로모션을 통해 구매 횟수와 매출을 끌어올릴 수 있는 방안을 적용하고 이후 추가적으로 수익성을 개선할 수 있는 전략을 적용해야 합니다.