고객 세분화(segmentation)를 위한 통계 분석
- 고객의 특성과 행동 패턴을 분석하여=> 비슷한 그룹으로 나누는 과정
- 이를 통해 맞춤형 마케팅 전략을 수립하고, 고객 만족도를 높이며, 기억의 수익을 극대화할 수 있음
- 대표적인 통계 분석 기법
- 기술 통계 분석
- K-means 군집 분석
- RFM 분석
- 계층적 군집 분석
1. 기술 통계 분석
- 데이터 분포와 기본적인 특징을 파악하는 데 사용
- 고객 데이터를 분석할 때 자주 사용되는 통계 지표
- 평균 (Mean): 고객 1인당 평균 구매 금액, 평균 방문 횟수 등을 분석하는 데 사용된다.
- 중앙값 (Median): 데이터의 중앙값을 계산하여 이상치의 영향을 최소화할 수 있다.
- 표준편차 (Standard Deviation): 고객 간 소비 패턴의 차이를 파악하는 데 도움을 준다.
예제 코드
import pandas as pd
data = {
"고객ID": range(1, 11),
"총구매금액": [50000, 150000, 30000, 400000, 120000, 80000, 60000, 200000, 90000, 250000],
"방문횟수": [5, 20, 3, 40, 12, 8, 6, 25, 10, 35]
}
#여러 딕셔너리로 이루어진 데이터를 데이터프레임으로 변환
df = pd.DataFrame(data)
# 기술 통계 분석 수행
summary_stats = df.describe() #기술통계(총계, 평균, 표준편차, 최대/최소값, 사분위수) 확인
display(summary_stats) #츌력
2. K-means 군집 분석
- 고객을 여러 개의 그룹으로 나누는 방법
- 유사한 특성을 가진 고객끼리 묶어 그룹을 생성하며, 그룹의 개수(K)는 사전에 지정해야 함
- 이 방법을 사용하면 고객을 고가 제품 선호 그룹, 할인 제품 선호 그룹 등으로 구분 가능
- 즉 고객을 명확한 그룹으로 나누어 맞춤형 마케팅을 진행할 수 있음
- e.g. 마트 위치 선정할 때 활용
- 4개 데이터(주택밀집, 거주 인구, 유동인구, 4인가족)들을 고려하여, 이를 기준으로 분석⇒ 평균으로 찍히는 지점으로 위치 선정
예제 코드
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
data = {
"고객ID": range(1, 11),
"총구매금액": [50000, 150000, 30000, 400000, 120000, 80000, 60000, 200000, 90000, 250000],
"방문횟수": [5, 20, 3, 40, 12, 8, 6, 25, 10, 35]
}
df = pd.DataFrame(data)
X = df[["총구매금액", "방문횟수"]] # 군집 분석에 사용할 특성
# K-Means 클러스터링 수행
kmeans = KMeans(n_clusters=3, random_state=42) # 3개의 평균을 기준으로 클러스터링 수행
df["군집"] = kmeans.fit_predict(X) # 군집 분석에 사용할 특성으로 K-means 알고리즘 학습=> 이를 군집col으로 df에 저장
# 시각화
plt.scatter(X["총구매금액"], X["방문횟수"], c=df["군집"], cmap="viridis", alpha=0.7)
plt.xlabel("총 구매 금액")
plt.ylabel("방문 횟수")
plt.title("K-Means 군집 분석 결과")
plt.colorbar()
plt.show()
3. RFM 분석
- RFM 분석(Recency, Frequency, Monetary Analysis)은 고객을 최근성(Recency), 빈도(Frequency), 금액(Monetary) 기준으로 평가하여 고객의 가치를 측정하는 방법
- 최근성 (Recency): 고객이 마지막으로 구매한 날짜를 기준으로 측정된다.
- 빈도 (Frequency): 일정 기간 동안 고객이 구매한 횟수를 측정한다.
- 금액 (Monetary): 고객이 사용한 총 금액을 기준으로 평가한다.
- 이 분석을 통해 VIP 고객, 일반 고객, 이탈 가능 고객을 구분할 수 있음!
예제 코드
import numpy as np
data = {
"고객ID": range(1, 11),
"구매일": pd.date_range(start="2024-01-01", periods=10, freq="30D"),
"총구매금액": [50000, 150000, 30000, 400000, 120000, 80000, 60000, 200000, 90000, 250000]
}
df = pd.DataFrame(data)
# 현재 날짜 기준 최근성 계산
df["Recency"] = (pd.to_datetime("today") - df["구매일"]).dt.days
# 빈도와 금액 계산
df["Frequency"] = np.random.randint(1, 20, len(df))
df["Monetary"] = df["총구매금액"]
# RFM 점수 부여
df["R_Score"] = pd.qcut(df["Recency"], 5, labels=[5, 4, 3, 2, 1])
df["F_Score"] = pd.qcut(df["Frequency"], 5, labels=[1, 2, 3, 4, 5])
df["M_Score"] = pd.qcut(df["Monetary"], 5, labels=[1, 2, 3, 4, 5])
df["RFM_Score"] = df["R_Score"].astype(int) + df["F_Score"].astype(int) + df["M_Score"].astype(int)
display(df[["고객ID", "Recency", "Frequency", "Monetary", "RFM_Score"]])
4. 계층적 군집 분석
- 계층적 군집 분석(Hierarchical Clustering)은 고객을 계층 구조로 그룹화하여 유사도에 따라 점진적으로 병합하는 방법
- 이 분석을 통해 고객을 세부적인 등급으로 나눌 수 있음
예제 코드
from scipy.cluster.hierarchy import linkage, dendrogram
data = {
"고객ID": range(1, 11),
"총구매금액": [50000, 150000, 30000, 400000, 120000, 80000, 60000, 200000, 90000, 250000],
"방문횟수": [5, 20, 3, 40, 12, 8, 6, 25, 10, 35]
}
df = pd.DataFrame(data)
X = df[["총구매금액", "방문횟수"]]
# 계층적 군집 분석 수행
linkage_matrix = linkage(X, method="ward")
# 덴드로그램 시각화
plt.figure(figsize=(10, 5))
dendrogram(linkage_matrix)
plt.title("계층적 군집 분석 (Dendrogram)")
plt.xlabel("고객 인덱스")
plt.ylabel("거리")
plt.show()
분석 결과 활용 방안
💡 고객 유형을 나누는 주요 기준은?
- 구매 행동 (구매 빈도, 객단가, 브랜드 충성도)
- 상호작용 방식 (SNS 활동, 브랜드 참여도)
- 가격 민감도 (할인 의존 여부)
- 고객 생애 가치(LTV, Life Time Value)
- 이탈 가능성 (반복 구매 고객 vs. 이탈 위험 고객)
1. 주요 고객 유형별 특성 비교
고객 유형 | 구매 특징 | 방문 빈도 | 브랜드 상호직용 |
충성도 | 가격 민감도 |
대표 사례 |
방문형 고객 | 가끔 방문, 구매율 낮음 |
낮음 | 거의 없음 | 낮음 | 높음 | 할인 이벤트 시 방문하는 고객 |
할인형 고객 | 할인 시에만 구매 | 중간 | SNS 쿠폰 공유 | 낮음 | 매우 높음 | 쿠폰/세일 정보에 민감한 고객 |
충성 고객 | 브랜드 제품 지속 구매 |
높음 | SNS 참여 활발 | 높음 | 낮음 | 특정 브랜드만 구매하는 고객 |
이탈 위험 고객 | 한동안 구매 없음 | 낮음 | 거의 없음 | 낮음 | 중간 | 최근 6개월 동안 구매 없는 고객 |
신규 고객 | 첫 구매 이후 추가 구매 유도 필요 |
낮음 | 관심 O | 불확실 | 중간 | 첫 방문 후 이탈할 가능성 높은 고객 |
VIP 고객 | 고가 제품 주기적 구매 |
높음 | 적극적 소통 | 매우 높음 | 낮음 | 명품 브랜드, 프리미엄 서비스 이용 고객 |
구독 고객 | 정기 구독 서비스 이용 |
중간~높음 | 브랜드 컨텐츠 소비 | 중간~높음 | 낮음 | 정기배송 서비스, 멤버십 고객 |
장바구니 이탈 고객 |
장바구니 담지만 구매 안 함 |
중간 | 이메일 광고 클릭 | 낮음 | 중간 | 쇼핑몰에서 상품만 보고 떠나는 고객 |
2. 패션 & 이커머스 고객 유형별 마케팅 사례
(필자가 관심있는 산업군을 세부 조사함!)
'그로스 마케팅' 카테고리의 다른 글
GM5. 구매 데이터 기반 주요 지표(이탈률, 전환율, ROAS, CAC ···) 분석&보고서 (5) | 2025.02.26 |
---|---|
GM4. EDA(데이터 기본 정보 확인 & 그래프 시각화) (1) | 2025.02.21 |
GM3. [데이터 시나리오화] 사용자 행동 분석, 사용자 행동 흐름 분석, 트래픽 소스 분석, 전환 분석, 장치 및 지역 분석 (2) | 2025.02.17 |
GM2. 그로스 마케팅 KPI에 대한 데이터 분석(2) (2) | 2025.02.07 |
GM1. 그로스 마케팅 KPI에 대한 데이터 분석(1) (0) | 2025.02.06 |