[데이터 분석]데이터 분석가가 실제 사용하는 6단계로 정리하는 '데이터 분석 리포트 작성 프레임워크(Data Analysis Reporting Framework)'

2023-04-03

                           



안녕하세요. 텐디 데이터팀 데이터 분석가 윤태환입니다.

SAAS(Software-as-a-Service) 형태의 다양한 분석툴이 등장하면서, 비개발자도 쉽게 데이터를 접하며 빠르게 필요한 의사결정에 데이터를 활용하는 툴이 많아 지고 있습니다. 그러다 종종 연간/분기/특정기간내 서비스 전체 또는 주요 지표들에 대해서 개괄적인 분석 리포트를 작성해야하는 상황이 생겨나는데요. 다양한 항목을 포함한 분석 리포트를 작성해야한다면 어떻게 리포트를 작성해야할지 굉장히 막막할 수 있습니다. 이에 분석 리포팅 작성시 도움이 될만한 프레임 워크 및 이슈들을 정리해보려합니다.🙌 



첫째, 문제 정의( ⭐⭐⭐)


Why : 리포팅을 왜 하는 것일까? (⭐)

 우선 리포트를 보는 대상에 따라서, 문제정의 작성 및 리포팅의 이유가 크게 달라집니다. 특정 문제해결에 또는 Daily 리포트는 주로 실무자나 중간급에서 빠른 의사결정 및 진행상황을 체크하기 위함이기에 문제정의가 비교적 명확합니다.

  반면, 리포트 작성의 이유가 전반적인 서비스 평가 및 서비스 지속 인사이트 추출이라는 추상적인 목적을 갖는 경우가 있습니다. 주로 서비스 전체 또는 KPI 2,3개 이상의 리포트를 작성하여 상급자에게 리포팅 하는 경우이거나, 아직 구체적인 주요 KPI 조차 불분명하여 "전체적인 탐색적 분석을 하며 인사이트를 찾고 싶어요"라는 막연한 요청을 하는 경우입니다.

  이 상황에서도 "우리의 서비스가 얼마나 효율적으로 또는 어떤 방향으로 운영되고 있으며", "어떤 문제가 있는지", "분기별로 얼만큼의 성과를 이루었는지" 등의 목표가 존재하기에, 추상적인 목표를 아래 분석 항목별로 나눠, 구체화 시키는 작업이 필요합니다.



What : 무엇을 분석할 것인가?(⭐)

 분석 대상이 '커머스'라는 가정하에, 고객 여정별로 분석 항목 구체화하여 항목들을 나열해보았습니다. 아래 항목들 중에서 각자의 상황에 적합한 분석 항목들을 골라 주제와 목표를 설정해보세요. 이때, 단순히 분석 지표만 설정하는 것이 아니라, 해당 지표로 확인하고 하는 목표까지 함께 지표별로 정리하는게 중요합니다.


    (1) 유입 (Acqusition)

  • 앱설치자수 (total / daily)


    (2) 유입 채널 (Attribution)

  • 채널별 앱설치자수(유입자수) (total / daily)
  • 채널별 유입자 *KPI 전환율 (KPI : 회원가입 / 구매 / ETC)
  • 채널별 Fraud / Bounce 유저수 (total / daily)


    (3) 활성화 (Activation)

  • 회원가입자수 (total / monthly / weekly / daily)
  • 회원가입 전환율 (total / monthly / weekly / daily)


    (4) 유지 (Retention)

  • 접속 빈도 : DAU / WAU / MAU
  • 접속 빈도 : 평균 접속주기  
  • 사용 시간 : 세션당 평균 사용 시간 (집단별 / daily)
  • 퍼널 분석 : 설치 > 가입 > 상품 조회 > 상품 구매 > 재구매  (기간별 / 집단별 비교)


    (5) 참여 & 커머스 (Engagement & Commerce)

  • 참여 : 특정 이벤트 유입자 및 회원가입 등 KPI 지표
  • 참여 : 공유 조회 활성 유저수 (total / monthly / weekly / daily)  
  • 커머스 : 상세페이지 조회 & 조회자수  
  • 커머스 : 구매 & 구매자수 (total / monthly / weekly / daily)
  • 커머스 : 재구매 & 재구매율
  • 커머스 : 조회 & 구매 상품 Top 10
  • 커머스 : 구매 전환율 (사용자 그룹별 / 기간별 / 상품별)
  • 커머스 : 구매 금액 / 인당 평균 구매액
  • 커머스 : Pair 분석


    (6) 이탈 (Churn)

  • 최근 7/14/28일 이탈율 (동기간 대비 / 집단별 / 일별)
  • Bounce / Farud  유저수 / 비율


    (7) 도달 (Reachability)

  • 메시지 퍼널 : 발송자 > 오픈자수 > 오픈자 중 구매자
  • 메시지 성과 분석 : 시간대별 접속자수 / 구매자수 추이 + 메시지 발송 시간 표기


    + 인구통계 (Demographic)

  • 전체 유저 : 성별 / 연령 분포
  • 사용자 그룹별(일반 / VIP 등등) : 성별 & 연령 분포
  • 사용자 속성 정보(등급 / 설문 결과 등등)


 위 목록에서 필요한 항목을 골라, 1차 문제 정의를 작성하고 탐색적 리포팅을 작성합니다. 이 과정에서 시간과 여유가 있다면, 탐색적 분석 과정에서 도출한 인사이트를 토대로 원인을 파악하기 위한 2차 문제 정의를 작성 할 수 있습니다.



How : 어떻게 분석할 것인가?

 위 항목들을 토대로, 리포트에 어떤 분석 주제들을 넣을지 선택했습니다. 그러나 관련된 지표를 계산해 냈다고 하더라도, 단일 지표만으로는 "해당 지표가 그래서 긍정적인 수치인지? 부정적인 수치인지?" 판단하기 어렵다. 이 때문에, 각 항목을 어떤 방식으로 분석할 것인지에 따른 실험 설계가 필요하며, 타겟 지표를 비교 할 수 있는 비교 집단을 함께 설계해야 합니다.

    ex) 메시지 성과 분석

  •     분석 집단 : 메시지 발신 후 전환율
  •     비교 집단 : 메시지 발신 전 전환율



둘째, 데이터 수집

 분석에 필요한 데이터를 수집하는 과정으로, 사전에 협의된 분석 기간의 데이터를 추출한다. 이 단계에서는 데이터의 수집 뿐아니라, 적합성, 커스텀 변수등을 확인합니다.


    (1) 데이터 퀄리티

  • 데이터 누락 확인


    (2) 데이터 기간

  • 분석 데이터 기간 확인


    (3) 분석 기준

  • 사용자 기준 데이터
  • 기기 기준 데이터


    (4) Key, Value, Param 정의

  • 매출, 카테고리 KPI 변수명 등을 사전에 정의



셋째, 데이터 전처리

  수집된 데이터의 결측치, 중복값, 타입오류 등의 이슈를 사전에 체크해줍니다. 다만 로그데이터를 분석하는 경우, 이상치 제거는 평균의 왜곡 등을 방지하기 위해서 필요하지만, 경우에 따라서 DB값과 차이를 생성하므로, 제거 여부 논의 후 판단해야하는 상황이 생긴다. 주요 전처리 이슈들은 아래와 같습니다.


    (1) 데이터셋 확인 단일

  •  상품의 중복 카테고리 이슈 [ex. 상품 1개, 카테고리 2개]
  •  데이터 타입 이슈 [ex. 금액 Value : str type으로 수집됨]

    (2) 결측값 처리

  • 삭제
  • 대체 (평균, 최빈값, 중간값)
  • 예측값 대체 (Regression, Logistic)

    (3) 이상치 처리

  • 단순 삭제
    : 리포트 경우 삭제가 어렵기에, Scaling으로 편향된 이상치를 조정
  • 평균, 중위값 등으로

    (4) Feature Engineering

  • Scaling
    : 변수의 단위가 너무 크거나 편향 될 경우, 변수간 관계가 잘 드러나지 않기에, Log 또는 SqureRoot등을 취해 스케일 조정
  • Binning
    : 연령, 금액 등 연속형 변수를 범주형 변수로 변경
  • Transfrom
    : 자주 사용하는 예로, 단순 weekday를 주중과 주말로 변환하는 것 처럼, 분석 목표에 맞는 변수생성


  * 참고 : 데이터 전처리에 대한 모든 것 - DODOMIRA

  * 참고 : 데이터 전처리 필요성 및 - 나는야 데이터사이언티스트




넷째, 데이터 분석 or 모델링

 ML/DL 모델을 구축하는 과정은 이단계에서 정제된 데이터를 모델에 넣어 최적화 작업을 진행합니다. 반면 리포트를 위한 분석에서는 데이터를 토대로, 인사이트를 발굴하기 위한 차이점과 원인을 찾는 실험설계의 과정이 반복됩니다.

       1. 가설 설정

       2. 실험군 비교군 설정

       3. 분석 지표 생성

       4. 결과 해석


리포트를 쓰다보면, 수많은 가설들을 세우고, 이에 따른 실험군과 비교군의 사용자집단들이 무수히 많아지기도 합니다. 때문에 아래 2가지 모듈을 사전에 생성하고 작업한다면 비교적 정리된 상태로 분석을 진행할 수 있습니다.

       1. 사용자 그룹 생성 모듈 : 실험군과 대조군을 쉽게 생선하기 위한 모듈

       2. 지표 출력 모듈 : 비교군과 대조군을 INPUT으로 넣었을 때, 목표하는 지표를 출력해주는 모듈



다섯째, 데이터 분석 시각화

 시각화는 앞선 분석항목들을 최종적인 형태로 만들어 분석 결과를 해석하거나, 또는 리포트를 받는 사람입장에서 직관적으로 결과를 인지하기 위해 필요합니다. 때로는 너무 많은 변수들을 하나의 차트에 담으려고 하다보면, 시각화된 자료를 보고 해석하는데 많은 시간이 소요될 수 있습니다. 시각화도 화려해보이는 시각화보다는, 목적에 맞추어 필요한 정보를 쉽게 비교할 수 있는 형태를 추천합니다.


Ex) 적절한 시각화 방법 활용 예시
  • 항목간 비교시 파이 그래프(비율)는 지양하고 막대(양) 그래프 위주
  • 시계열은 라인으로(실선)
  • 분포는 히스토그램이나 박스플롯
  • 변수간 관계는 산점도



여섯째, 리포팅 및 피드백 반영(⭐)

 열심히 '기획 정의'를 작성하고 코드를 짜며 '분석'을 완료하고, '시각화'까지 마쳤다면, 이제 자료를 리포팅 형식으로 정리하고 결과를 해석하기 위한 글을 작성하는 마지막 단계가 남아있습니다. 여기까지 오느라 이미 많은 시간이 소요됐겠지만, 이 단계가 잘 이뤄지지 않으면 그동안의 노력이 물거품이 되어버릴 수 있을 만큼 중요한 단계입니다.


리포팅 포맷

 최종 리포트 작성을 위해 먼저 고민하는 것은 리포트의 포맷입니다. 가장 쉽게는 '엑셀' 또는 'PPT'가 있을 것이며, 'GA Data Studio', 'Power BI', 'Tableau'와 같은 툴을 사용 할 수 있다면 해당 분석툴의 기능을 사용하는 것도 좋습니다. 여기선 예시로 'Excel'과 'PPT'를 사용하는 경우에, 아래와 같은 목적에 맞춰서 툴을 선택하는 것을 추천드립니다.

    - Excel

      : 탐색적 데이터 분석 과정에서 획득한 데이터들을 보며 실무진에게 리포팅하는 경우

    - PPT

      : 탐색적 분석을 마치고, 인사이트를 정리하여, 최종 의사결정자에게 중요한 분석 결과만 전달하는 경우



리포팅 정리시 주안점
(1) 독자 중심 정리
  •  상대가 이해할 수 있는 언어 사용
  •  목적을 수시로 상기하고 재확인
  •  분석 과정 보다는 '결과'중심 전달


(2) 간결 & 명확
  •  짧은 문장
  •  Bullet point 방식
  •  선 핵심내용, 후 근거


(3) 피드백 & 수정
  •  피드백 후 수정 & 보완은 당연한 과정
  •  분석입장에서 공을 들인 결과물도, 고객사 입장에서 중요도가 낮을 수 있음을 명시.



여기까지 분석 리포트를 작성하기 위한 각 단계별 작업들을 정리해보았습니다.  

개인적으로 리포트 작성 과정에서 망망대해에서 허우적 거렸던 경험이 많았기에, 그간 경험에 기반하여 스스로에게 필요한 프레임워크를 만들기 위한 글이었으나, 비슷한 상황에 처한 다른 누군가에게도 도움이 될 만한 부분이 있지 않을까 합니다.

주어진 상황에 따라 방식은 다를 수 있으며, 개인적 경험에 기반한 FrameWork에 정형화된 분석 방법론을 적용하여 정리하였으므로 다른 자료도 함께 참고하면 도움이 될 것 같습니다. 




<Reference>

[1] [데이터 분석 절차 - @osk3856](https://velog.io/@osk3856/data-analysis)  

[2] [데이터 분석을 위한 5단계 절차 - 마경근](https://brunch.co.kr/@data/10)   

[3] [분석 프로세스 - 위키독스](https://wikidocs.net/16561)  

[4] [데이터 분석 계획](https://noti-note.tistory.com/12)

(주)텐디

  • 대표 : 김찬웅
  • 주소 : 06145 서울특별시 강남구 역삼동 선릉로 551 새롬빌딩 5층
  • 전화 : 02-558-8155
  • 사업자 등록번호 : 721-88-00371