좋은 가설
- 풀고자 하는 문제의 방향성과 일치하는 가설
- 테스트 가능한 가설
- 액션으로 이어질 수 있는 가설
문제 상황
- 교육의 목적은 완주율인데 웹 개발 종합반의 완주율이 크게 낮아짐
- 이에 대해 어떤 요소들이 영향을 끼쳤는지 파악
문제 파악
- 문제를 파악하기 위해서는 쪼개는 과정이 중요
- 수강생들이 완주하기 까지의 여정을 살펴보면 문제가 되는 요소들을 파악할 수 있음
완주 여정 추측
- 강의를 들을 수 있는 시간적 여유가 생김
- 시간은 컨트롤하기 힘듦(직장인, 학생)
- 강의를 들어야겠다고 마음을 먹음
- 찐한 관리라는 수강을 독려하는 서비스 존재
- 강의를 듣기 위해 콘텐츠에 접근
- 웹페이지 시스템의 불편 사항, 영상 오류 여부 등이 영향을 미쳤는지 확인 - 없다고 가정
- 콘텐츠를 목표한 부분까지 들음
- 흥미도와 실용성을 체크해봐야 함
- 기존 1개의 문제를 4개의 문제로 쪼갬
- 4가지 문제 중 하나라도 안 되면 완주율이 떨어짐
기본 세팅
데이터 호출하고 확인
- created_at: 수강 등록 시점
- updated_at: 최근 수강 완료 시점
- marketing: 마케팅 수신 동의 여부
- managed: 찐한 관리 여부
- progress_rate: 진도율
첫 번째 문제
- 고객이 어떠한 서비스 사용할 때는, 충분한 금전적, 시간적 여유가 있어야 함
- 비즈니스 운영에 있어, 서비스를 충분히 사용할 수 있고 니즈가 있는 고객을 파악하는 것과 그 고객군을 타겟팅하여 판매하고 있는 가의 지속적인 트래킹이 아주 중요
- 따라서 시간이 없어 듣지 못하는 고객의 경우 무언가를 개선한다고 완주를 할 수 있는것은 아님
현재 상황
- 광고의 메인 타겟은 20-30 대
- 20-30대의 구매 건수는 다른 나이대에 비해 높은 편
- 완주 후 퀴즈를 제출하는 이벤트에서 20-30대의 참여율 저조
- 퀴즈 참여하지 않은 인원에게 전화를 했는데 '바빠서'라는 답변이 압도적
- 가설 세우기
- 다른 연령대에 비해 바쁜 20-30대의 수강 완주율이 상대적으로 낮을 것
- 검증
- 나이대별 완주율을 비교
- 이후 액션
- 20-30대가 실제로 완주율이 낮을 경우 프로덕트가 적절한 고객에게 가지 못해 불만족이 발생하고 있는 상황이므로 프로덕트 개선 또는 광고 메인 타겟을 변경할 수 있음
나이대 별 수강 인원
나이대 별 수강률의 합
나이대 별 평균 수강률
시각화
[결론: 오히려 20-30 대의 수강률이 젤 높음 따라서 1번 문제는 별로 신경쓰지 않아도 된다.]
두 번째 문제
- 실제로 사람들이 여유가 생겼을 때 코딩 수업을 들어야겠다는 마음이 생기게 할 수 있는지
- 그런 마음을 못 먹게 하고 있는 것은 아닌지 생각
- 잘만 해결할 수 있다면 문자/카카오톡을 테스트 할 수 있음
현재 상황
- 찐한 사람 운영 중인데 유의미한 영향을 미치고 있는지를 확인
- 최근 3개월간 찐한관리 신청 비율과 완주율이 모두 감소
- 해결 방법
- 8월부터 웹개발 종합반 완주율이 떨어진 이유를 파악 고객이 수강 완료할 수 있도록 적절한 동기부여
- 가설 세우기
- 찐한 관리를 받은 인원이 그렇지 않은 인원보다 완주율이 높을 것이다
- 검증
- 찐한 관리를 하는 집단과 하지 않는 집단 나누어 완주율을 비교
- 이후 액션
- 찐한 관리 받은 인원의 완주율 높을 경우: 찐한 관리 신청 비율 높이기
- 찐한 관리 받지 않은 인원의 완주율 높을 경우: 다른 동기부여 방법 고민하기
데이터 확인
- managed 컬럼의 데이터는 bool 타입
groupby를 위해 문자열로 변경해줘야 함
완주율의 평균
시각화
[결론: 찐한 관리 신청자가 비신청자의 대략 2배 정도 완주율이 높았으므로 찐한 관리 신청을 독려하는 액션을 취해야 할 것이다.]
세 번째 문제
- 실제로 컨텐츠가 흥미있고 실용적인 컨텐츠인지에 대한 내용
- 컨텐츠가 흥미롭고 실용적이어야 수강생들이 계속 신청할 것
- 고객이 수강을 완료할 수 있도록 흥미롭고 도움이 되는 콘텐츠 제공해야 함
- 8월 중순부터 웹 개발 종합반의 완주율이 크게 떨어진 이유를 밝혀야 함
현재 상황
- 강의를 수강하려면
- 컨텐츠 자체가 흥미롭고 재미있고 유익해야 함
- 8월 3주차 부터 컨텐츠를 바꿨었음
- 8월 2주차 개강반부터 새로 제작된 3주차 컨텐츠를 듣기 시작함
- 가설 세우기
- 8월 둘째 주 부터 변경된 3주차 강의의 완주율이 현저히 떨어졌을 것
- 검증
- 완주율을 비교
- 액션
- 문제가 있었을 경우: 이전의 커리큘럼으로 돌아감
- 문제가 없었을 경우: 다른 요인을 찾아봄
- 주차 별 완주율을 확인해서 3주차가 영향을 끼쳤는지 확인
- 하지만 단순히 8월 2주차와 8월 3주차만 비교하는 것이 아닌 8월 3주차 전에는 항상 3주차가 높았는지, 8월 3주차 부터 계속 3주차 완주율이 낮았는지 등을 확인해야 함
- x축에 그룹별과 주차별이 들어가는데 매우 복잡함
- x축, y축에는 표현해야할 데이터로 사용하고 데이터의 높낮이는 색의 진하기로 표현 ➡️ 히트맵(코호트)
- 코호트: 똑같은 집답인데 다른 것은 동일하고 우리가 원하는 부분만 바뀌어있는 것을 보는 것
- 커리큘럼을 x축, 개강일을 y축, 높낮이를 색으로 표현
- 다 똑같이 웹 개발 종합반을 듣는 사람들인데 언제 개강했는지만 다른 독립된 집단
데이터 호출하고 정보 보기
- create_at: 개강한 날
- progress_rate: 진행율
create_at을 개강 주차로 구함
수강 시작 주 컬럼 추가 (일년 중 몇주차인지)
시작 주 컬럼 데이터에서 중복을 제거한 결과
진도율을 강의 주차로 변경하기
범주화 결과물 이용
이제 데이터를 이용해 32, 33주차에 개강한 사람이 몇 주차에 머무르고 있는지 계산
- count나 sum이 없어 결과물에 큰 변화는 없지만 내부적으로 start_week로 크게 그룹핑을 하고 같은 그룹 내에서도 week로 그룹핑
- row의 수가 179개가 됨
user_id 별로 유니크한 값으로 코호트 데이터를 만듦
- 몇 주차에 몇명이 머무르고 있는지 확인 가능
각 주차별로 완료한 사람만 나옴
- 0주차에는 1주차부터 5주차까지 완료한 사람의 수를 다 더해줘야 함
- 1주차에는 2주차부터 5주차까지 완료한 사람의 수를 다 더해줘야 함
- 2주차에는 3주차부터 5주차까지 완료한 사람의 수를 다 더해줘야 함
- 3주차에는 4주차부터 5주차까지 완료한 사람의 수를 다 더해줘야 함
- 4주차에는 5주차 완료한 사람의 수를 다 더해줘야 함
인덱스 재설정
피벗 테이블 만들기
다 마무리 했지만 단순히 3 ➡️ 4 가는 거만 보기에는 수강 시작 인원의 수가 다르다는 것이 문제
- 좀 더 명확하게 판단하기 위해서는 단순 숫자로만 판단하는 것이 아닌 단위를 통일해줘야함
- 대표적인 것으로는 %로 표현하는 방법이 있음
- 각 주차의 모든 데이터를 0주차의 데이터로 나눠줌
반올림 적용
히트맵 표현
[해석: 3주차 때문에 완주율이 떨어진거라고 할 수가 없음]
과제
- 0주차부터 시작하는 것이므로 오른쪽으로 갈 수록 색이 옅어짐
- 0주차에서 1주차로 갈 때는 거의 떨어지지 않지만 뒤쪽으로 갈수록 14~15% 가 떨어지는데도 단순히 색이 옅어지기 때문에 얼마나 떨어졌는지를 한 눈에 파악하기가 힘듦
- 그래서 각 주차에서 이미 전에 나간 사람들이 아닌 그 주차에서 나간 사람들만 계산해보자
- 즉, 그 전 주차에서 현 주차로 넘어온 사람을 %로 표현
위에서 만든 코호트 차트를 훨씬 직관적으로 보이게 하는 과정을 진행
시각화
'EDA & 데이터 분석 > 데이터분석' 카테고리의 다른 글
데이터 분석 파이썬 종합반 4주차(함수, 변수) (0) | 2024.12.24 |
---|---|
데이터 분석 파이썬 종합반 3주차(조건문, 반복문) (0) | 2024.12.23 |
데이터 분석 파이썬 종합반 2주차(파이썬 리스트, 튜플 자료형) (6) | 2024.12.23 |
데이터 분석 4주차(가설, 검증) (1) | 2024.12.19 |
데이터 분석 3주차(시각화) (0) | 2024.12.18 |