* 데이터는 교육 받으면서 사측에서 제공 받았습니다.
RFM 고객 세분화 분석을 해봤다!
분석 프로젝트를 하면서 느끼는건 개발이 코드와 싸움이라면
분석은 이렇게 기준을 잡아도 될까? 이게 적합한 비율일까? 등의 무한 고민
어려웝🫠
이론
RFM 분석
RFMRFM에서 R은 최근성(Recency), F는 구매 빈도 (Frequency), M은 구매액(Monetary)를 뜻하고이 세가지 지표(얼마나 최근에, 얼마나 자주, 얼마나 많이 구매)는 고객을 분류하고 고객의 가치를 측정하는데
beigepepxi.tistory.com
나의 블로그 재소환
그럼 분석으로 넘어가보겠습니다.
RFM
Recency

현재로 부터 구매일자가 얼마나 지났나? 를 파악하기 위해, 고객별로 가장 최근 주문일자를 구해줬다.
* 여기서 구한 최근 주문 일자를 이용해 현재로 부터 며칠이 지난건지를 구해야함!
Frequency

고객별로 구매를 몇번 했는지 구하기 위해, 고객별로 주문할 때 생성하는 주문/판매ID의 개수를 세줬다.
Monetary

고객별로 매출을 알기 위해, 고객별로 지불한 매출의 합을 모두 합해줬다.
이후, 최근 구매 날짜를 통해 고객별로 최근 구매일이 현재 날짜로 부터 얼마나 지났는지 구해줌으로써 (최종 Recency)
고객별 최근 구매, 구매 횟수, 구매 금액 보는 데이터프레임을 구해줬다.

RFM scoring
구해진 R, F, M에 대해 기준에 따라 점수를 주어 R scoring, F scoring, M scoring을 구해줬다.
기준을 정해주는게 너무 어려웠던,,
R scoring
먼저 R에 대한 점수를 구해봤다.

해당 데이터는 식품을 판매하고 구매한 것에 대한 데이터이기에 7일 / 14일 / 30일 / 30일 초과, 이렇게 4개의 기준으로 점수를 부여했다.
- 식품은 의류와 같이 구매주기가 긴 상품이 아니다. 따라서, 7일 단위로 구매 주기를 잡아 점수를 부여했고 최근 구매일이 30일이 초과되면 비활성화 유저라고 봐도 무방하다고 판단했다.
F scoring
F는 백분위수 기준으로 점수를 부여했다.

25 / 50 / 75 / 100 이기에 원래대로면 4점 척도로 구성되어야 하지만, 75 이상을 하나로 묶기에는 정말 구매를 빈번하게 하는 고객과, 구매를 종종하는 고객 사이 구분이 되지 않을 거 같다고 생각했다. (마치 often과 usually의 차이랄까)
따라서, 이러한 고객들을 분류해주기 위해 95를 기준으로 하여 구분값을 하나 더 두었다.
M scoring
M도 백분위수 기준으로 점수를 부여했고, 역시나 75~100 사이 구분을 하나 더 둬야겠다 생각해 5점 척도로 점수를 구성했다.

점수에 대한 데이터 프레임

가중치 부여
식품을 대상으로 하는 이커머스의 경우, 구매 금액보다는 최근성과 구매 빈도가 중요하다고 생각되어
- Recency에 가중치 0.5
- Frequency에 가중치 0.3
- Monetary에 가중치 0.2 를 부여했다.

가중치를 부여한 r_score, f_score, m_score를 더하면 최종 RFM 점수가 산출된다

나는 100점 척도가 좋아서 RFM점수의 최대값을 100점으로 만들어줬다
RFM 기반 고객 등급 지정
이렇게 산출한 RFM 점수를 기반오르, 고객 등급을 정해봤다.
일단, 현재 전체 고객수가 3000명 밖에 되지 않기 때문에 크게 4개의 등급으로 고객 등급을 정의했다.

해당 기준은 밑에 계산된 고객 비율과 매출 비율을 보고 조정해가면서 최종적으로 결정함!


그림으로 표현해봤다.
고객등급을 통해
등급별로 차등지급 되는 할인 쿠폰 제공 및 차등된 적립금 지급 등,
등급 별 혜택 제공을 할 필요가 있다.
RFM 기반 고객 세분화
등급에 이어, 고객을 조금 더 세분화하여 볼 필요가 있다 생각하여 고객 세분화를 진행해봤다.
- 떠나간 VIP : 최근 구매 사항 없음 / 구매 빈도와 구매 금액이 높음
- 떠났지만 괜찮은 고객 : 최근 구매 사항 없음, 구매 빈도 낮음, 구매 금액 낮음
- 잠재 VIP : 구매 빈도 낮음 / 최근 구매 사항 있고 구매 금액 높음
- 신규 고객 : 구매 빈도 낮음 / 최근 구매 사항 존재
잠재 vip는 가입한지 얼마 되지 않아 구매 빈도는 낮지만, 최근에 구매를 했고, 구매 금액이 높은 경우로 가정했다.
이 경우, 추후에 구매 빈도도 높아지고, 구매 금액 역시 더욱 높아지면 vip가 될 가능성이 높다고 생각했기 때문!


고객 분류에 따라 다른 전략이 필요하다고 생각했다.
- 떠난 VIP의 경우, 할인 혜택이나 새로운 상품에 대한 소식 등을 푸시 알람으로 제공할 필요가 있다.
추가적으로는, 푸시 알람 내용을 고객에 맞춰 제공하는 것도 좋다고 생각한다. - 떠난 일반 고객의 경우, 마케팅을 줄여 관련한 비용을 절감하는게 좋다고 생각한다.
- 신규 고객과 잠재 vip의 경우, 리텐션을 최대한 높이는게 중요하다고 생각한다.
특히 잠재 vip의 경우 꾸준이 앱/웹에 접속하게 만들어 상품을 노출시키는 것이 중요한 것 같다.
인사이트 정리
- 고객 등급 별 차등된 혜택 제공
- 고객 분류에 따라 다른 액션이 필요함
- 떠난 VIP : 관심있을 법한 내용으로 활발한 푸시 알람 제공 필요
- 떠난 일반 고객 : 마케팅을 줄여 관련 비용 절감 효과 기대
- 신규 고객 및 잠재 VIP : 리텐션을 높게 유지할 수 있는 전략 필요 ( ex. 방문 이벤트 등)
* 데이터는 교육 받으면서 사측에서 제공 받았습니다.
RFM 고객 세분화 분석을 해봤다!
분석 프로젝트를 하면서 느끼는건 개발이 코드와 싸움이라면
분석은 이렇게 기준을 잡아도 될까? 이게 적합한 비율일까? 등의 무한 고민
어려웝🫠
이론
RFM 분석
RFMRFM에서 R은 최근성(Recency), F는 구매 빈도 (Frequency), M은 구매액(Monetary)를 뜻하고이 세가지 지표(얼마나 최근에, 얼마나 자주, 얼마나 많이 구매)는 고객을 분류하고 고객의 가치를 측정하는데
beigepepxi.tistory.com
나의 블로그 재소환
그럼 분석으로 넘어가보겠습니다.
RFM
Recency

현재로 부터 구매일자가 얼마나 지났나? 를 파악하기 위해, 고객별로 가장 최근 주문일자를 구해줬다.
* 여기서 구한 최근 주문 일자를 이용해 현재로 부터 며칠이 지난건지를 구해야함!
Frequency

고객별로 구매를 몇번 했는지 구하기 위해, 고객별로 주문할 때 생성하는 주문/판매ID의 개수를 세줬다.
Monetary

고객별로 매출을 알기 위해, 고객별로 지불한 매출의 합을 모두 합해줬다.
이후, 최근 구매 날짜를 통해 고객별로 최근 구매일이 현재 날짜로 부터 얼마나 지났는지 구해줌으로써 (최종 Recency)
고객별 최근 구매, 구매 횟수, 구매 금액 보는 데이터프레임을 구해줬다.

RFM scoring
구해진 R, F, M에 대해 기준에 따라 점수를 주어 R scoring, F scoring, M scoring을 구해줬다.
기준을 정해주는게 너무 어려웠던,,
R scoring
먼저 R에 대한 점수를 구해봤다.

해당 데이터는 식품을 판매하고 구매한 것에 대한 데이터이기에 7일 / 14일 / 30일 / 30일 초과, 이렇게 4개의 기준으로 점수를 부여했다.
- 식품은 의류와 같이 구매주기가 긴 상품이 아니다. 따라서, 7일 단위로 구매 주기를 잡아 점수를 부여했고 최근 구매일이 30일이 초과되면 비활성화 유저라고 봐도 무방하다고 판단했다.
F scoring
F는 백분위수 기준으로 점수를 부여했다.

25 / 50 / 75 / 100 이기에 원래대로면 4점 척도로 구성되어야 하지만, 75 이상을 하나로 묶기에는 정말 구매를 빈번하게 하는 고객과, 구매를 종종하는 고객 사이 구분이 되지 않을 거 같다고 생각했다. (마치 often과 usually의 차이랄까)
따라서, 이러한 고객들을 분류해주기 위해 95를 기준으로 하여 구분값을 하나 더 두었다.
M scoring
M도 백분위수 기준으로 점수를 부여했고, 역시나 75~100 사이 구분을 하나 더 둬야겠다 생각해 5점 척도로 점수를 구성했다.

점수에 대한 데이터 프레임

가중치 부여
식품을 대상으로 하는 이커머스의 경우, 구매 금액보다는 최근성과 구매 빈도가 중요하다고 생각되어
- Recency에 가중치 0.5
- Frequency에 가중치 0.3
- Monetary에 가중치 0.2 를 부여했다.

가중치를 부여한 r_score, f_score, m_score를 더하면 최종 RFM 점수가 산출된다

나는 100점 척도가 좋아서 RFM점수의 최대값을 100점으로 만들어줬다
RFM 기반 고객 등급 지정
이렇게 산출한 RFM 점수를 기반오르, 고객 등급을 정해봤다.
일단, 현재 전체 고객수가 3000명 밖에 되지 않기 때문에 크게 4개의 등급으로 고객 등급을 정의했다.

해당 기준은 밑에 계산된 고객 비율과 매출 비율을 보고 조정해가면서 최종적으로 결정함!


그림으로 표현해봤다.
고객등급을 통해
등급별로 차등지급 되는 할인 쿠폰 제공 및 차등된 적립금 지급 등,
등급 별 혜택 제공을 할 필요가 있다.
RFM 기반 고객 세분화
등급에 이어, 고객을 조금 더 세분화하여 볼 필요가 있다 생각하여 고객 세분화를 진행해봤다.
- 떠나간 VIP : 최근 구매 사항 없음 / 구매 빈도와 구매 금액이 높음
- 떠났지만 괜찮은 고객 : 최근 구매 사항 없음, 구매 빈도 낮음, 구매 금액 낮음
- 잠재 VIP : 구매 빈도 낮음 / 최근 구매 사항 있고 구매 금액 높음
- 신규 고객 : 구매 빈도 낮음 / 최근 구매 사항 존재
잠재 vip는 가입한지 얼마 되지 않아 구매 빈도는 낮지만, 최근에 구매를 했고, 구매 금액이 높은 경우로 가정했다.
이 경우, 추후에 구매 빈도도 높아지고, 구매 금액 역시 더욱 높아지면 vip가 될 가능성이 높다고 생각했기 때문!


고객 분류에 따라 다른 전략이 필요하다고 생각했다.
- 떠난 VIP의 경우, 할인 혜택이나 새로운 상품에 대한 소식 등을 푸시 알람으로 제공할 필요가 있다.
추가적으로는, 푸시 알람 내용을 고객에 맞춰 제공하는 것도 좋다고 생각한다. - 떠난 일반 고객의 경우, 마케팅을 줄여 관련한 비용을 절감하는게 좋다고 생각한다.
- 신규 고객과 잠재 vip의 경우, 리텐션을 최대한 높이는게 중요하다고 생각한다.
특히 잠재 vip의 경우 꾸준이 앱/웹에 접속하게 만들어 상품을 노출시키는 것이 중요한 것 같다.
인사이트 정리
- 고객 등급 별 차등된 혜택 제공
- 고객 분류에 따라 다른 액션이 필요함
- 떠난 VIP : 관심있을 법한 내용으로 활발한 푸시 알람 제공 필요
- 떠난 일반 고객 : 마케팅을 줄여 관련 비용 절감 효과 기대
- 신규 고객 및 잠재 VIP : 리텐션을 높게 유지할 수 있는 전략 필요 ( ex. 방문 이벤트 등)