[DA] 상황에 따라 달라지는 평균(AVG) 선택 기준 정리 - 돌멩이의 데이터 분석
·
데이터 분석/통계 이론
평균은 데이터를 하나로 요약하는 가장 쉬운 방법이지만, 데이터의 분포와 목적에 따라 그것이 '왜곡'이 될 수도 있다.따라서 '어떤 평균을 쓸지'를 정하는 것도 분석가의 좋은 주관 중 하나이다.평균을 고르는 기준1. 왜도(skew) : 데이터가 한쪽으로 치우쳐 있는가?왜도의 절댓값이 클 수록, 평균을 보여주는 것은 데이터를 왜곡하는 행위가 될 수 있다.2. 이상치가(outlier)가 의미 있는 값인가, 노이즈인가?똑같이 튀는 수치라도, 그것을 노이즈 혹은 하나의 현상으로 파악하는 지 여부에 따라 의미가 달라진다.참고 : 2025.11.24 - [데이터 분석/이론] - [DA] 이상치(Outlier)를 다루는 방법 / 제거만이 답일까? [DA] 이상치(Outlier)를 다루는 방법 / 제거만이 답일까?포트폴..
[로그 분석] Window 함수로 유저 행동 및 이탈 구간 분석하기 - 돌멩이의 데이터 분석
·
데이터베이스 DB/BigQuery
💻본 포스팅은 [인프런] 카일스쿨의 BigQuery(SQL) 활용편을 기반으로 요약 및 실습한 기록을 정리했습니다.실습 주제 고민 강의 시간에 사용자가 다음 세션으로 넘어가기 까지의 시간을 계산해, 일정 시간이 넘어가면 새로운 세션으로 넘어가게끔 하는 과제를 수행함 하루에 여러 번 접속하는 서비스에서 유용 직접 지정해 본 주제 : 사용자의 화면 흐름 및 체류 시간 파악을 통해 이탈률이 가장 높은 구간을 찾아보기 STEP 1 : UNNEST를 통한 분석 BASE 만들기 화면 흐름을 중심으로 이탈률을 계산해야하므로, event 중 사용자가 어떤 화면을 보고 있는지 알 수 있는 firebase_screen에 대하여 UNNEST를 진행 firebase_screen의 value..
[SQL/BigQuery] QUALIFY 함수로 윈도우 함수 결과 필터링 - 돌멩이의 데이터 분석
·
데이터베이스 DB/BigQuery
QUALIFYBigQuery에서 윈도우 함수의 결과에 대해 직접 조건을 걸 수 있게 만들어주는 함수서브쿼리나 WITH 절을 따로 사용하지 않아도 된다는 것이 장점오류 경험 (초보자)SELECT user_id, event_timestamp, ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY event_timestamp DESC) AS row_numFROM app_logsWHERE row_num = 1 # 오류 발생 — Unrecognized name : row_num at [34:3] 오류 원인 : WHERE 절이 SELECT 절 보다 실행 순서가 먼저이기 때문에, SELECT에서 생성된 row_num을 찾을 수 없음참고자료 : 기존 방식 : 서브쿼리 사용SELECT *..
[SQL/BigQuery] 발로란트 프로젝트 예시로 이해하는 BigQuery의 PK(Primary Key) & FK(Foreign Key)
·
데이터베이스 DB/BigQuery
PK(Primary Key, 기본키)정의테이블에서 각 행(row)을 고유하게 식별하는 값중복 불가(NULL 불가), 테이블의 "대표 식별자"가 되는 값쉬운 예시주민등록번호 / 학번 / 주문번호 처럼 한 개로 한 대상을 특정 가능FK(Foreign Key, 외래키)정의다른 테이블의 PK를 참조하는 컬럼두 테이블을 연결하는 다리 역할쉬운 예시주문 상세(order_items) 테이블의 order_id → orders 테이블의 id를 참조더 좋은 예시를 아래에서 설명 프로젝트를 활용한 PK와 FK 예시PK하나의 match는 하나의 고유한 match_id를 가진다match_id가 같은 match는 존재할 수 없다따라서 match_id를 기본키로 설정 FK하나의 match_id는 총 10명의 player 정보를 가..
[Project] 발로란트 승률 분석을 위한 데이터 전처리 과정 정리 (EP.4: 선공격 및 승리팀 판단 로직 구축)
·
개인 프로젝트 (Project)/Valorant 유저 데이터 분석
이전 포스팅 2025.12.07 - [Mini Projects/Valorant Winning Rate] - [Toy Project] 발로란트 선수비·선공격 승률 분석을 위한 데이터 수집→정제 전체 프로세스 구축 완료 (EP.3) [Toy Project] 발로란트 선수비·선공격 승률 분석을 위한 데이터 수집→정제 전체 프로세스 구축 완이전 포스팅2025.11.28 - [공부/Projects] - [Toy Project] Valorant(발로란트) 선수비 vs 선공격 어느 쪽이 유리할까? (EP. 2 : 데이터 수집처 실종) [Toy Project] Valorant(발로란트) 선수비 vs 선공격 어느 쪽이 유리castle1data.tistory.com들어가면서..결론부터 말씀드리자면, 모든 데이터에 대한 전..
[Case Study] 쿠팡 웹 로그 파헤치기 (Performance 로그는 누가, 왜 기록할까?) - 돌멩이의 데이터 분석
·
마케팅 Marketing
💻본 포스팅은 [인프런] 카일스쿨의 BigQuery(SQL) 활용편을 기반으로요약 및 실습한 기록을 정리했습니다.구매 버튼 '한 번'에 수집되는 로그들장바구니에 접속한 상태에서 구매하기 버튼을 눌렀을 때 수집되는 로그를 확인해보고자 한다.submit으로 시작하는 총 8개의 로그를 확인 할 수 있었다.로그 비교 분석 💬 8개 로그 전체 요약순서logTypedomain(event)설명①web_page_viewpage view결제 페이지 진입②web_latency_track_log (fcp)performance첫 콘텐츠 표시③web_latency_track_log (lcp)performance주요 콘텐츠 표시④tti-loggerperformance페이지 완전 로드⑤checkout_page_viewview결..