////////
Search
Duplicate

연령 기반 사용자 행동

Tags
Archive
ETA
2025/06/17
Main Task
Sub Task
담당자
메모
상태
Done
생성 일시
2025/06/16 10:16
우선 순위
진행률 %
Task : 데이터를 연령 기반으로 그룹화 하기
50대 이상 고령층의 이탈률이 높은 것은 가독성이나 인터페이스 불편 등 연령 특화 UX 부족 때문일 가능성이 있다.
birthday 컬럼을 활용해 age / age_group 파생 변수를 만들어서 연령별 비교 분석을 한다.
연령층(경제적 상황)(성인/미성년자)에 따라 구독 유형이 비싸질수록 이탈률이 낮아질 것이다.
age 컬럼과 subscription_plan 컬럼을 활용해서 상관관계를 비교 분석한다.
실행 및 진행 사항 정리
# birthday 컬럼 중 NaN 값 제거 merged_df = merged_df.dropna(subset=['birthday']) # birth_year 파생 변수 생성 merged_df['birth_year'] = pd.to_datetime(merged_df['birthday'], errors='coerce').dt.year # current_year 를 pandas의 Timestamp 를 이용해 age 파생 변수 생성 current_year = pd.Timestamp.now().year merged_df['age'] = current_year - merged_df['birth_year'] # age_group 파생 변수 생성 bins = [0, 19, 29, 39, 49, 59, 200] labels = ['10대 이하', '20대', '30대', '40대', '50대', '60대 이상'] merged_df['age_group'] = pd.cut(merged_df['age'], bins=bins, labels=labels, right=True) # 성인/미성년자 구분을 위해 is adult 파생 변수 생성 merged_df["is_adult"] = merged_df["age"] >= 20 # is adult 와 subscription_plan 의 이탈률 분석 merged_df["is_dropout"] = merged_df["exit_position_numeric"] < 75 dropout_summary = merged_df.groupby(["is_adult", "subscription_plan"])["is_dropout"].mean().unstack() ### 코멘트 1. **birthday 파싱 방식** `birthday` 컬럼은 `str[:4]`로 자르기보다는 `pd.to_datetime()`으로 날짜형으로 변환한 후 `.dt.year`를 사용하는 것이 더 안정적입니다. 2. **age_group 범위 조정** 현재는 50대 이상을 하나로 묶었지만, 60대 이상 사용자가 일정 수 이상 존재한다면 별도로 분리하는 것도 고려해볼 수 있습니다. 3. **is_dropout 기준 보완** `exit_position_numeric < 90` 기준은 적절하지만, 50% 기준 보조 지표나 연령대별 이탈 분포(Box Plot 등)도 함께 보면 분석 폭이 넓어질 수 있습니다. 4. **plan_price_map 인코딩** 순서형 인코딩은 좋은 시도지만, 현재는 EDA 목적이므로 문자형 유지가 해석과 시각화 측면에서 더 적합할 수 있습니다.
Python
복사
결과
user_id
entry_channel
quick_preview_used
recommendation_clicked
last_access_timestamp
gender
birthday
device_type
subscription_plan
theme_mode
book_id
genre
exit_position_numeric
dropout_reason_category
dropout_reason_detail
birth_year
age
age_group
0
user_0001
추천
No
True
2023-05-08 14:13:00
male
1998-06-17
mobile
monthly
dark
E01
경제/시사
68
자발적
지루함
1998
27
1
user_0002
추천
No
True
2023-01-13 00:54:00
male
2010-04-15
mobile
monthly
dark
E01
경제/시사
44
자발적
추천 실패
2010
15
2
user_0003
추천
No
True
2023-07-12 09:13:03
male
1985-02-13
mobile
monthly
dark
E01
경제/시사
59
자발적
너무 김
1985
40
# 연령층(경제적 상황)(성인/미성년자)에 따라 구독 유형이 비싸질수록 이탈율이 낮아질 것이다. free_trial monthly pay_per_book is_adult False 0.875000 0.923077 0.843137 True 0.902516 0.888000 0.882129 데이터를 확인해 보았을 때 구독이 비싸질수록 이탈률이 낮아지지도 않고 성인 쪽에서 더 뚜렷한 경향이 나타나지도 않았기 때문에 가설의 뒷받침이 되긴 어렵다고 판단
Python
복사