Growth Marketing/GM4

[TIL-260428] 멋쟁이사자처럼 그로스마케팅 4기 - 데이터분석 개론 day34 | 군집분석 → ABtest → ARIMA 모델링

pamsyra 2026. 4. 28. 16:52
▼오늘 배운 사항들
1. 데이터분석 모델링 종합 실습
- 군집분석 : 이탈 대상 선별
- ABtest 결과 분석 : 쿠폰 전략 효과 통계 검증
- ARIMA 시계열 분석 : 쿠폰 전략 적용 이후의 구독 유지율 예측

Part 1. 데이터분석 모델링 종합실습

[군집분석]

- 목적 : 팀장님이 전체 고객한테 쿠폰 다 뿌리지 말자고 해서, 이탈할 고객한테만 뿌리기 위해 군집분석해서 이탈대상 선별할것

- 사용 : 군집분석 - KMeans

- 데이터 분석 : 지난번 군집분석 했던 흐름과 동일하게 진행

  • [전처리] 결측치 처리는 평균값으로 진행
# 결측치 처리 - 평균값으로
결측치_컬럼 = ['월청취시간','월접속횟수','구독유지개월','최근접속일수','플레이리스트수']

for col in 결측치_컬럼:
  평균값 = df_고객[col].mean()  # 각 컬럼의 평균 구하기
  df_고객[col] = df_고객[col].fillna(round(평균값))  # 각 컬럼마다 결측치는 평균값으로 채우기

df_고객 데이터를 보니 문자열들은 숫자로 바꿔주고 결측치 처리 필요
이탈위험 85명 대상으로 쿠폰 실험 진행해봅시다

 

 

[ABtest 분석]

- 목적 : 이탈대상으로 쿠폰 실험한 결과데이터로 두 그룹의 재접속률 비교해서 쿠폰 효과 파악하기

- 사용 : t-test

- 가설설정

  • 귀무가설(H0): "두 그룹에 차이가 없다" = 기본 전제, 즉 쿠폰이 효과가 없다는 가정
  • 대립가설(H1): "B그룹(쿠폰)의 재접속률이 더 높다" = 우리가 증명하고 싶은 것

- 데이터 분석 : 두 그룹간 재접속률 차이의 우연 여부를 검정하기 위한 t-test 필수

  • 재접속률 계산 : 0,1로만 된 컬럼은 평균으로 계산하면 비율로 확인 가능
  • from scipy import stats : t test 검정
  • 판정: p < 0.05 → 귀무가설 기각
       쿠폰(B그룹) 효과는 통계적으로 유의미합니다.
       → B그룹 전략(30% 할인 쿠폰)을 전체 이탈위험군에 적용 결정
# 이 두 그룹의 재접속률 차이가 진짜인지 우연인지 검증하기 -> T test

# 재접속(0,1)여부로 두 그룹의 차이가 유의미한지 검정
from scipy import stats

t통계량, p값 = stats.ttest_ind(A그룹['재접속여부'], B그룹['재접속여부'])
print(f"t통계량 : {t통계량}") # t통계량 = 두 그룹의 평균의 차이가 얼마나 큰지 데이터의 흔들림으로 나타냄, 평균 차이/데이터의 변동성 -> 절대값이 클수록 차이가 뚜렷함
print(f"p값 : {p값}")         # 두 그룹의 차이가 없다고 가정했을 때, 지금과 같은 결과가 우연히 나올 확률 -> 적을수록 우연일 확률이 낮음(차이가 있다는 의미)

 

[ARIMA 모델로 시계열 예측]

- 목적 : A/B 테스트로 검증된 쿠폰 전략을 전체 이탈 위험 고객에게 적용한 이후, 월별 구독 유지율 변화 추적(예측)

- 사용 : ARIMA

- 데이터 분석 : 지난번 시계열분석 했던 흐름과 동일하게 진행

  • 구독 유지율 예측 검증시에는, 쿠폰 뿌리고 나서 많이 상승한 것과 차이가 있어 데이터 예측을 잘못했는데
  • 전체값으로 향후 6개월 예측하니 흐름 그대로 가는건 ARIMA모델 장점으로 예측이 잘 나옴

더보기

으ㅏ~아ㅏ가