re:dash에서 코호트 분석

6131 단어 redash
최근 Airbnb의 오픈 소스 BI 도구 Superset 1을 사용해보십시오.
Superset이 UI에서 지표를 피벗하여 그래프를 그릴 수 있는 점은 re:dash에 비해 압도적으로 편리할 것 같고... 죄송합니다, re:dash의 Advent Calendar였습니다.

이 기사는 re:dash Advent Calendar 201612/24 기사입니다.
re:dash 로 조금 버릇이 있는 코호트 그래프의 작성 방법을 간단히 정리합니다.

Cohort(코호트 그래프)



사용자의 서비스 연속 사용률을 시각화하기 위해 코호트 그래프가 유용합니다.
샘플을 아래에 놓습니다. 세그먼트에 따라 연속 이용률을 비교하는 것이 코호트 분석에서는 중요해지기 때문에, 자사에서는 filter 를 이용해 이렇게 〇〇를 한 사람/하지 않은 사람의 연속 이용률을 비교하고 있습니다.



같은 데이터 출력으로 리텐션 커브도 그릴 수 있습니다.


그리기 포인트



  • 코호트 그래프 그리기에 필요한 열
  • date (획득일)
  • day_number(획득일로부터 x일/주/월 경과)
  • 오름차순 정렬되어 있으면 컬럼이 없어도 그릴 수있는 것 같지만, 넣는 것이 무난

  • value(획득일로부터 x일/주/월째 방문 인원수)
  • total (획득일 인원수 (모수))


  • 보존 곡선을 그리려면
  • 방문률(value/total)을 계산한 컬럼을 준비하고 y축의 지표로 하면 됩니다.
  • Date 열을 Group By의 메트릭으로 선택하면 범례에 TimeZone 등이 포함되어 길어지므로 샘플 그래프는 날짜를 문자열 형식으로 cast 한 열도 제공합니다.


  • ※ 문자에 일으키면 알기 어렵다고 생각하므로, 자세한 것은 여기 샘플 소스

    로그의 행 데이터에서 SQL을 작성하는 포인트



    샘플의 데이터 소스에서는, 코호트 그래프 draw용으로 정형 끝난 데이터입니다만, 액세스 로그로부터 코호트 그래프를 만드는 것은 조금 힘들어집니다.

    id, log_date, user_id 만의 access 테이블로부터 일차의 코호트 그래프의 draw를 실시하기 위한 SQL(PostgreSQL로)은, 이런 느낌입니까.

    sample_cohort.sql
    with first_access as (
        select user_id, min(log_date) as first_access_date
        from access
        group by 1
        having min(log_date) >= current_date - cast('1 month' as interval) -- 直近1ヶ月の新規獲得ユーザーのみ
    )
    
    select total.first_access_date as date
        , datediff(day, fa.first_access_date, a.log_date) as day_number
        , count(a.user_id) as value
        , total.cnt as total
    from access a 
        inner join first_access fa on fa.user_id = a.user_id
    , ( select first_access_date
            , count(user_id) as cnt
        from first_access
        group by 1
      ) as total
    where fa.first_access_date = total.first_access_date
    group by 1, 2, 4
    order by 1, 2, 4
    

    ···쓰는 것도 힘들고, 데이터량에 따라서는 꽤 무거운 쿼리가 됩니다.
    그 때문에, 자사에서는 유저마다의 일일의 액세스를 일일 집계해 참조하도록(듯이) 하고 있습니다.

    이상, 참고로 코호트 그래프를 re:dash에서 뱅뱅 활용해 주시면 감사하겠습니다.
    ※ 날짜가 지나 버려 죄송합니다, 메리 크리스마스!



    Superset의 GitHub 리포지토리는 여기 또한 Superset 에 대해서는 여기 의 re:dash 와의 비교 기사가 참고가 됩니다.

    좋은 웹페이지 즐겨찾기