[TIL] SQL과 Excel을 활용한 유저 코호트 분석 실습

tolerance·2020년 9월 12일
2

데이터분석

목록 보기
1/1
post-thumbnail

그로스해킹 강의 듣고 나서, 최근 한달간 나를 괴롭혀온 Investigating a Drop in User Engagement: Answers와 관련된 기본 유저 리텐션에 관한 코호트 분석을 아래와 같이 시도해보았다.
(여기서 유저 리텐션은 해당 주차에 마지막으로 로그인한 기록, 즉 롤링 리텐션Rolling Retention을 기준으로 했다.)

처음엔 이렇게 나왔다. 하지만 행 기준 2014년 4월 이전 데이터는 여기에서 동일한 조건으로 적용되지 않아서 큰 의미가 없다. (2014년 4월 이전에 계정 활성화를 한 사람은 컬럼 쪽에서도 이전 기간의 데이터가 필요)

이게 최종 완료 데이터다. 보다 명확하게, 한눈에 해석할 여지가 생겼다. 예를 들면 아래와 같다.

  • 계정 활성화 시점을 그룹화 한다고 했을 때, 5월부터 8월까지 각 월에 활성화된 유저들의 5주 후 유지율을 비교해보자.
5월: 1주차 100% -> 5주 후 70%
6월: 1주차 100% -> 5주 후 72%
7월: 1주차 100% -> 5주 후 61%
8월: 1주차 100% -> 5주 후 57%

이처럼 6월은 오히려 좋았지만, 5, 6월에 비해서 7월, 7월보다는 8월에 더 확연히 시간이 지남에 따른 활성 사용자 감소세가 나타남을 확인할 수 있다.


  • 5, 6, 7월의 경우 9주 후 유지율도 확인할 수 있다. 데이터와 아래 수치를 보면 뭔가.. 7월 활성화 유저들에게 안 좋은 일이 일어나고 있음이 분명해보인다.
5월: 1주차 100% -> 9주 후 33%
6월: 1주차 100% -> 9주 후 27%
7월: 1주차 100% -> 9주 후 12%

그 이상의 분석은 오늘의 포인트는 아니므로 일단 요정도로 정리해둔다. 저 조그마한 것을 만들기 위해 뻘짓을 너무 많이 해서 토할 것 같다. 까먹을까봐.. 뇌의 과부하와 분노가 생생할 때 오늘 배운 걸 대략으로라도 적어두자면 아래와 같다.


SQL에 관해 배운 점

  • 공포의 GROUP BY를 나는 아직 잘 모른다.
  • MAX를 쓰는 경우 해당 컬럼은 GROUP BY 항목에 들어가지 않아야 온전한 MAX 값으로 계산이 되었다.

엑셀에 관해 배운 점

  • WEEKNUM이라는 함수를 활용하면 특정 날짜가 1년 중 몇번째 주차인지 알 수 있다. =WEEKNUM(대상날짜, 요일 수) 이렇게 쓸 수 있는데, 요일 수 부분은 엑셀에서 해보면 안다. 무슨 요일을 시작 요일로 정할지를 정하는 부분이다. 참고
  • 몇 주 전에 진행된 엑셀 강의에서 이야기해주신 내용은 다 까먹었다. 노트 필기를 찾는 것보다(안함) 검색이 빠르다. 그래도 '아 그거 배웠는데.. 배웠으니까 검색하면 나오겠지.'라는 마음을 갖게 되어 좋았다.
  • 개발언어처럼 엑셀을 할 때도 검색이 중요하다는 걸 알았다.
  • 리텐션을 표현하는 방식에 저런 시각화 외에는 어떤 것이 있는지 궁금해졌다.

전반적으로 배운 점

  • 데이터 분석의 결과가 무엇인지 생각하고 역순으로 따라가는 방법이 프로세스에 낫다고 판단한다. 일단 되는대로 하면 시간은 시간대로 쓰고 분석도 망하기 쉽다.
  • 마음만 앞서는 태도로는 분석에 들어가는 총 시간을 줄이기가 어렵다. 처음에 차분하게 분석 프로세스를 계획하고, 계획대로 실행해보는(안 되면 바꾸면 되니까) 경험을 쌓아가자.

호기심에 시작한 자율학습에 혼자서 걸려 넘어지고 진흙탕 안을 잔뜩 굴렀지만 너무 재밌었다.

profile
매일. 나. 배운다. 조금씩

0개의 댓글