-
<BI 대시보드> 개인과제(with Tableu)내일배움캠프(데이터 분석 부트캠프 1기)/개인과제 2024. 2. 29. 19:50
데이터분석 숙련 주차 개인 과제는 시각화 중심의 BI툴인 태블로로 대시보드를 만드는 것이었다.
데이터는 A/B test에 관련된 캐글 데이터였다.
https://www.kaggle.com/datasets/zhangluyuan/ab-testing
문제 요구사항은 아래와 같았다.
- 워크시트 1번: 그룹별 유저 비중 파이 차트 시각화
- 워크시트 2번: 그룹별 평균 전환율 막대 그래프 시각화
- 워크시트 3번: 일별 그룹별 평균 전환율 선 그래프 시각화
- 워크시트 4번: 그룹 별 유저 고유 카운트 요일 별 캘린더 차트 만들기
- 워크시트 5번(대시보드에는 불포함) : 데이터 정합성 체크 & 전처리 작업(대시보드 적용)
- 워크시트 6번: 도넛 차트 활용 평균 전환율 지표 카드 만들기
- 워크시트 7번: start date와 end date 매개변수 필터 만들어 유저 수 혹은 전환율 보기 (다른 대시보드에도 필터 적용)
- 워크시트 8번: t-test 텍스트 표시
그리고 이들 워크시트를 한 대시보드에 시각화 하는 것이 과제였다.
우선 완성한 대시보드는 아래 스크린샷과 같다.
데이터 정합성(막대 그래프)
우선 데이터 정합성에 대한 부분이다.
해당 데이터는 A/B test 데이터로 기존 랜딩 페이지와 새로운 페이지를 보여주어 유저 전환율을 비교하는 실험이다.
통제집단에게는 기존 페이지(old page), 실험집단에는 새로운 페이지(new page)를
보여줘야 하는데 아래 그래프를 보면 이 부분이 잘못된 데이터가 소수 존재하는 것을 확인할 수 있다.
([Group]='control' and [Landing Page]='old_page') or ([Group]='treatment' and [Landing Page]='new_page')
따라서 이를 정제해줄 필터를 위 식으로 만들었고 전체 데이터에 적용하였다.
정제 결과 통제집단에는 old page, 실험집단에는 new page만 남게 되었다.
A/B 유저 비율(도넛 차트)
데이터를 정제한 뒤 통제집단과 실험집단의 비율을 확인해본 결과
거의 5:5로 잘 할당된 것을 확인할 수 있다.
그룹 별 유저 수(고유) 캘린더 차트
일별 유저 수(고유) (라인 차트)
이 대시보드를 제작하면서 Start Date와 End Date라는 날짜에 해당하는 매개변수를 만들고
매개변수를 이용한 필터를 만들었다. 만든 필터는 아래와 같다.
[Timestamp] >= [Start Date] AND [Timestamp] <= [End Date]
생성한 매개변수 값을 슬라이더로 변경하면 다른 그래프도 변경될 수 있도록
전체 대시보드에 필터를 적용해주었다.
A/B 전환율
사실 막대그래프와 동일한 수치 데이터인데, 요구사항에 맞춰서 대시보드를 배열해서 집어넣다보니
중복 지표가 들어갔다. 집단 별로 퍼센트차이가 그렇게 크지 않고 전체 평균 전환율도 시각화할 수 있어서
막대그래프보다 도넛차트가 더 나은 것 같다.
전환율을 비교해보면 통제집단의 전환율이 실험집단의 전환율보다 조금 높은 것을 확인할 수 있다.
일별 그룹별 전환율(라인 차트)
2017년 1월 2일부터 24일까지의 일별 그룹별 전환율 라인 차트이다. 더 어두운 색이 실험집단이다.
일별로 각 집단별 전환율을 잘 관찰할 수 있다.
T-검정 워크시트 (t 통계량, 유의확률)
이번 과제에서 가장 귀찮고 어려웠던 부분이 바로 T검정 부분이었다.
통계 패키지나 파이썬 라이브러리를 사용했다면 쉽게 해결되었을 부분이지만
스파르타에서 제공해주는 태블로에서는 Tabpy(태블로에서 파이썬 코드를 사용할 수 있게 해주는 라이브러리)를
연동할 수 없었기 때문에 태블로의 계산기능을 이용해서 직접 t통계량 값을 계산해야 했다.
t 통계량 계산 공식과 p-value 계산 공식은 아래 두 링크를 참고하였다.
https://angeloyeo.github.io/2020/02/13/Students_t_test.html
https://community.tableau.com/s/question/0D54T00000CWdNlSAL/ttest-of-two-independent-means
아래와 같은 코드로 일일히 그룹을 한정 지은 상태에서 평균, 분산, 그리고 집단의 수를 계산된 필드로
생성하여 주었고
AVG(IF[Group]='control' THEN [Converted] END)
위 코드 처럼 일일히 그룹을 한정 지은 상태에서 평균, 분산, 그리고 집단의 수를 계산된 필드로
생성하여 주었고
([avg_conv_control]-[avg_conv_treat]) / SQRT(([var_conv_control]/[cnt_control])+([var_conv_treat]/[cnt_treat]))
t 통계랑을 계산을 통해서 구해냈다
2*(0.5*EXP(-1.2*POWER(ABS([t-value]), 1.3)))
마찬가지로 p-value도 계산을 통해서 구해냈다.
그 결과 t통계량은 1.312, p-value는 유의수준 0.05보다 큰 0.18로 나타나서
통계적으로 두 집단의 전환율은 유의한 평균 차이가 없는 것으로 나타났다.
개인과제를 통해 제대로 된 태블로 대시보드를 구축할 수 있었고 태블로를 다루는 방법에 대해서
좀 자세하게 배울 수 있었던 것 같아서 의미 있는 과제였다.
주어진 업무, 필요에 의해 대시보드를 구축하는 것도 물론 의미가 있는 일이지만
의사결정권자나 실무자를 설득하기 위해서 지표를 선정하고 대시보드를 구축하는 과정이
중요한 과정이라고 생각한다.
그래서 이번 개인과제를 통해 얻은 지식과 기술로 개인 프로젝트 대시보드를 설계 및 작성해보려고 한다.
학습이랑 팀프로젝트로 시간이 좀 없긴 하지만 주말에 또 달리면 어떻게든 될 것이다.
'내일배움캠프(데이터 분석 부트캠프 1기) > 개인과제' 카테고리의 다른 글
<머신러닝> 개인 과제(with XGBoost) (1) 2024.02.06