EDA & 데이터 분석/데이터분석

데이터 분석 5주차(가설, 검증, 코호트)

edcrfv458 2024. 12. 23. 15:27

좋은 가설

  • 풀고자 하는 문제의 방향성과 일치하는 가설
  • 테스트 가능한 가설
  • 액션으로 이어질 수 있는 가설

 

문제 상황

  • 교육의 목적은 완주율인데 웹 개발 종합반의 완주율이 크게 낮아짐
  • 이에 대해 어떤 요소들이 영향을 끼쳤는지 파악

 

문제 파악

  • 문제를 파악하기 위해서는 쪼개는 과정이 중요
  • 수강생들이 완주하기 까지의 여정을 살펴보면 문제가 되는 요소들을 파악할 수 있음

 

완주 여정 추측

  1. 강의를 들을 수 있는 시간적 여유가 생김
    1. 시간은 컨트롤하기 힘듦(직장인, 학생)
  2. 강의를 들어야겠다고 마음을 먹음
    1. 찐한 관리라는 수강을 독려하는 서비스 존재
  3. 강의를 듣기 위해 콘텐츠에 접근
    1. 웹페이지 시스템의 불편 사항, 영상 오류 여부 등이 영향을 미쳤는지 확인 - 없다고 가정
  4. 콘텐츠를 목표한 부분까지 들음
    1. 흥미도와 실용성을 체크해봐야 함
  • 기존 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% 가 떨어지는데도 단순히 색이 옅어지기 때문에 얼마나 떨어졌는지를 한 눈에 파악하기가 힘듦
  • 그래서 각 주차에서 이미 전에 나간 사람들이 아닌 그 주차에서 나간 사람들만 계산해보자
    • 즉, 그 전 주차에서 현 주차로 넘어온 사람을 %로 표현

 

위에서 만든 코호트 차트를 훨씬 직관적으로 보이게 하는 과정을 진행

 

시각화