품질(Quality)

RFM analysis (Recency, Frequency, Monetary)

깡또아빠 2019. 9. 8. 11:27

RFM 분석이라고 알고 계신가요? 과거 데이터 마이닝 수업 시간에 들었던 내용을 정리해서 올려봅니다. 

수업은 김명섭 강사님을 통해서 수강했었습니다. 약 12년? 13년전에요.. (제가 엄청 Old하다는 걸 생각하게 되네요ㅠ)

 

RFM 분석은 마키텡 분야에서 활용하는 기법입니다. Googling 한 정의는 다음과 같습니다.

RFM (recency, frequency, monetary) analysis is a marketing technique used to determine quantitatively which customers are the best ones by examining how recently a customer has purchased (recency), how often they purchase (frequency), and how much the customer spends (monetary). RFM analysis is based on the marketing axiom that "80% of your business comes from 20% of your customers."

 

위 정의된 내용 중 20%가 80%의 수익을 책임진다. 파레토 법칙이 포함되어 있음을 알 수 있습니다. 집중적으로 수익을 창출하는 고객에게 유효한 마케팅인지 평가할 수 있는 방법이 RFM 분석입니다.

 

Recency: 고객이 최근에 구입을 했는가? 

Frequency: 고객이 얼마나 빈번하게 상품을 구입했는가?

Monetary: 고객이 구입했던 총 금액은 얼마인가?

 

RFM Analysis

 

RFM 분석 예시로 DM (Direct Message)를 하는 경우를 생각해 보시죠. (다시 말씀 드리지만, 김명섭 강사님께서 잘 정리해주셨습니다)

 

사례 Exmaple

  • 백화점
  • 고객에게 DM 발송을 계획/예정
  • 고객 대상은 300명
  • DM 비용은 2,000원 
  • 백화점 고객이 구매하는 평균 금액을 100,000원 (이익률은 40,000원)

DM 발송 시 고객 반응율 (Response Rate)

Use database to estimate historical response rate

  • 구매 반응 고객은 약 30명 (위 DM 대상인 고객이 300명이니 30명은 10%)
  • 300명 중 270명은 DM 발송으로 구매로 이어지지 않으니 90%가 미구매 고객

위 경우 모든 고객에게 DM을 발송하게 되는 경우 이익과 기회비용을 계산해보면,

  • 이익이 창출되는 경우는 30명의 반응 고객으로 부터 이어집니다.
  • 30×40,000 (이익률) - 300×2,000 (DM 발송비용) = 600,000원

약 10%의 고객이 반응을 해도 약 60만원의 이익이 발생됨을 알 수 있습니다.

(여기에서는 많은 가정과 제한적인 정보에서 판단되는 점을 이해해주시기 바랍니다. 현실에서 위와 같이 단순 계산으로만 이뤄지지 않거나, 이러한 근거가 직접적으로 의사결정에 적용되기는 어렵습니다.)

 

그러면 지금부터 RFM 분석을 적용을 위해서 고객을 세분화 해보겠습니다.

고객별로 1. 최근 구매일, 2. 구매 빈도, 3. 구매 금액을 계산해보겠습니다.

 

판매데이터가 아래와 같이 있습니다.

Sale data example

위 데이터는 2018년 전체 데이터입니다.

고객번호와 구입한 내역의 상품 카테고리가 표기되어 있습니다.

구입한 금액 (고객 측면), = 판매 금액 (백화점 측면)이 기술되어 있습니다.

동일한 고객이 다른 건으로 구입하게 된 경우 이는 다른 행으로 구분되어 있습니다.

 

이제부터 판매 건별 경과기간을 계산해보겠습니다. 방법은 다음과 같습니다.

경과기간이라고 하니 기준일이 필요하겠죠. 기준일을 삽입하고, 기준일에서 판매일자를 빼서 경과기간을 산출할 것입니다. 위 예제에서 판매일자와 상품에 2개 열 (기준일, 경과기간)을 삽입하고 아래와 같이 정리해보겠습니다.

 

위 데이터에서 바로 RFM 분석을 하기는 어렵습니다. RFM에 정보를 만들기 위해서 피벗 기능을 사용해보겠습니다. 위에서 설명한 RFM에 대해서 다시 한번 아래에 기술합니다.

 

Recency: 고객이 최근에 구입을 했는가? 

Frequency: 고객이 얼마나 빈번하게 상품을 구입했는가?

Monetary: 고객이 구입했던 총 금액은 얼마인가?

 

저는 OFFICE 365를 사용하고 있습니다. OFFICE 365에서 피벗은 Insert 메뉴에 있습니다.

 

PIVOT를 클릭하게되면, 아래와 같이 전체 영역과 새로운 Sheet에 만들지, 동일한 Sheet에 만들지 물어봅니다.

저희는 새로운 New sheet에 만들도록 하죠.

 

 

OK를 클릭하고 나면, 아래와 같이 파란색 테두리로 영역이 만들어지고, 오른쪽에는 관련된 속성 (고객번호, 판매일자, 기준일, 경과기간, 상품, 판매금액을 클릭할 수 있게끔 보여집니다. 클릭도 가능하지만, 드래그 & 드롭으로 Row, Column, Value fields에 끌어다 놓을 수 있습니다.

 

Row에 고개번호, Value Fields에는 판매일자, 경과기간, 판매 금액을 끌어다 놓겠습니다.

그러면 아래와 같이 보여질 것입니다.

 

위에서 A0001번의 고객이 판매일자가 61이라고 하는 것은, 61번의 구매가 발생했다는 뜻입니다.

판매금액이 총 약 4백 2십여만원치 구매를 하신 거고요.

그런데 경과기간이 좀 이상하죠? 그건 앞에 Sum of 가 붙었듯이, 경과기간을 모두 더해진 결과값입니다. 이런 결과는 저희에게 필요한 정보가 아니니 경과기간의 합(Sum)을 min으로 바꿔보겠습니다. 그렇게 되면 기준일로부터 최근 언제 방문했는지 경과 시간을 알 수 있을 것입니다.

 

방법은 다음과 같습니다. 오른쪽 하단에 경과기간의 "Sum of 경과기간" 을 클릭해보면, "Value Field Setting" 메뉴를 통해서 Sum이 아닌 Min으로 변경하실 수 있습니다.

 

그러면 아래와 같이 A0001번 고객이 기준일로부터 최근에 방문/구매한 날자가 11일 이전이라는 것을 알 수 있게 됩니다. 우리가 필요로 하는 정보가 무엇인지를 잊지 않으시기 바랍니다.

 

 

위 그림은 A0001번 고객을 기준으로 행으로 구분되어 동일한 열에 판매일자/경과기간/판매금액이 그룹화되어 결과가 요약되어 있습니다. 이를 다른 열로 바꿔 보도록 하겠습니다. 방법은 간단합니다. 현재 동일한 열에 나오는 것은 Rows에 Σ Values 가 있기 때문입니다. 이를 Columns에 끌어보도록 하겠습니다.

 

 

네 이렇게 되면 저희가 원하는 기본 데이터 세팅이 완료된 것입니다.

어찌보면 있는 예제를 기본 세팅하는 방법을 길게 따라해보신 건데요, 이는 처음 한번 만 따라해보시면 되는 부분이니 너무 어렵게 느끼지 않으시기 바랍니다.

 

이제 데이터는 준비가 되었으니, 우리가 원하는 RFM 분석을 위해서 기준을 정해보시죠. 여기서 기준을 정하는 것은 전략이나, 과거 경험 및 방침 등 여러가지의 회사 프로세스에 따른 부분이니 참고해주시기 바랍니다. 저희는 아래와 같이 정해보도록 하겠습니다.

 

RFM Criteria

위에서 만든 테이블 옆에 저 구분 조건을 바로 옆에 적용해보려고 하면, 아래와 같이 응? 하게 될 것입니다.

Cell이 행/열이 고정값으로 들어가고, GETPIVOTDATA라는 복잡한 부분이 표기가 되어집니다.

위 정리한 테이블을 CTRL + A 로 전체 영역 잡아주시고, CTRL + C 복사하신 다음에 다른 영역에 CTRL + V 붙여넣기가 아닌 선택적으로 Value만 붙여 넣으셔서 사용하시기를 권장 드립니다. (Snipping Tool에서 캡쳐 영역이 안잡히네요.)

 

그런 다음 위 조건을 입력하시면 됩니다.

R: =IF(B2<=30,1,IF(B2<=90,2,IF(B2<=180,3,4)))

F: =IF(C2<=10,1,IF(C2<=20,2,IF(C2<=30,3,4)))

M: =IF(D2<=500000,1,IF(D2<=1000000,2,IF(D2<=3000000,3,4)))

 

 

자 거의 다 왔습니다. 힘을 내시기 바랍니다. 

 

이젠 R (Recency, 최근 구매일), F (Frequency, 구매 빈도), M (Monetary, 구매 금액)에 대해서 구간 별 고객수를 확인해보겠습니다.

 

앞서서 사용했던 Pivot table을 사용해보겠습니다.

Pivot selection

피벗 테이블 영역을 잡고서 새로운 Sheet에 만들기를 한 다음 R를 행 위치로 끌어 놓으면 아래와 같이 나옵니다. 위에서 설정한 R 값이 1에서 4이기 때문에 아래와 같이 나옵니다. 그런 다음 Value Field에 고객 번호를 끌어 놓으면,

아래와 같이 전체 300명의 고객에 대해서 1번 부터 4번까지의 구매일 기준으로 정리가 됩니다. 

구매 빈도에 정리해보면, 다음과 같습니다.

구매 금액에 대해서도 정리해 보시죠.

자 그러면 이제 R, F, M 수치 별로 고객에게 유니크한 ID를 분석해보겠습니다.

직관적으로 R, F, M 값에 따른 고객으로 분류를 하기 위해 R, F, M을 합쳐서 명기해보도록 하죠.

 

위에서 제가 CONCATENATE 함수를 써서 정리했지만, 사실 이러한 함수를 사용하지 않아도 됩니다. 

문자열을 위한 & 만 이용해도 같은 결과가 나옵니다. (의미와 결과를 생각하시고 어렵게 접근하시지 않으셨으면 해서 말씀 드립니다.)

 

그리고 각 고객 별 반응 여부를 확인해봐야겠죠.

불러오는 데이터는 고객 별 반응이 있는 고객이 30명이었다고 사전에 가정을 했었고 이를 랜덤으로 고객에게 0 (미 반응), 1 (반응) 으로 가정해서 value를 부여했습니다.

 

위 표에서 Pivot을 통해서 RFM 별 해당하는 고객 수를 정리해보죠. 사실 Pivot이 아니라 일반 함수를 통해서 counting하여도 동일한 결과가 나오니 앞서서 말씀 드린 의미와 데이터를 생각하시기 바랍니다.

 

그리고 RFM 기준으로 반응이 있는지 없는지를 확인하기 위해서 아래와 같이 정리 해봅니다.

 

이젠 새로운 Sheet에 정리를 해보시죠

RFM 을 기준으로 대상고객 - 구매고객 - 반응율 - 비용 - 예상이익 - 손익을 살펴보겠습니다.

반응율 기준은 "구매고객/대상고객 × 100" 입니다.

비용은 대상고객 별 2,000원 계산합니다. (=DM 발송 비용)

예상이익은 구매한 고객 구매고객 별 40,000원 계산합니다. (맨 위에 있는 가정을 참고하시기 바랍니다.)

손익은 자연스럽게 예상이익에서 비용을 차감한 결과입니다.

 

위 경우 + 손익도 있지만, - 손익도 있습니다.

모두에게 다 DM을 발송하는 경우 맨 위에서 60만원의 이익을 생각할 수 있지만, 우리는 REM 분석을 통해서 집중적으로 어떤 고객에게 마케팅해야 할지를 고민하고 있습니다. 손익 분기 반응율을 고려해서 적용해보기로 하죠.

 

손익분기 반응율을 계산해 보기로 합니다.

DM 발송 비용이 2,000원이었고, 순 이익이 40,000원이었으므로 손익분기 반응율은 

(2,000/40,000) × 100 = 5%가 계산됩니다.

고객의 반응이 5%을 넘는 고객을 대상으로 위 표를 재 정리 해봅니다.

 

위 RFM 대상 고객으로 208명에게 DM을 마케팅하는 경우 손익이 기존 보다 증가되었음을 확인할 수 있었습니다.

 

지금까지 REM에 대해서 이해하고, 활용하는 방법에 대해서 알아보았습니다.

전문적인 사람이 아니다 보니 잘못 이해하고 설명했거나, 오류 또는 보충/보완 설명이 있다면 댓글 부탁 드립니다.

 

위에서 작업한 내용을 첨부파일로 업로드합니다. 참고하시기 바랍니다.

실습데이터_배포.xls
1.06MB

 

이상 읽어주셔서 감사합니다.

'품질(Quality)' 카테고리의 다른 글

ISO 국제 표준 제정 과정  (0) 2022.03.28
[QMS] 품질경영시스템의 개발  (0) 2022.03.27
Process deviation, variance  (0) 2019.08.13
Definition of Quality  (0) 2019.08.12
감사(Audit)의 종류  (0) 2018.08.05