[TIL#28 250331] 데이터분석 입문 주차 시작! 새로운 팀 빌딩! 우리조쵝5

강민지·2025년 3월 31일
2

데이터분석_TIL

목록 보기
30/81

Daily plan

🌞오전

- 데이터분석 입문 주차 발제
- SQL/python 과제 해설 세션

🔥 오후

- 빅분기 발등에 불떨어짐
- 통계 강의 1주차
- SQL 과제 정리
- 코드카타 SQL 85, 86, 87

🌝 저녁

- python 과제 문제 풀이
- 스크럼 작성 + TIL 제출

SQL 과제

use assignments;

문제1

select ad_id, round(100*click_cnt/imp_cnt,2) ctr
from (select ad_id,
			count(case when event_type='click' then 1 end) as click_cnt,
			count(case when event_type='impression' then 1 end) as imp_cnt
	from ad_events
	where event_time like '2022%'
	group by ad_id
	) as a
order by ad_id
  • 이렇게 서브쿼리를 넣는 것 보다 select문에서 바로 ctr을 계산하는 게 나을 것 같음
  • 대신 보기 좋게 줄바꿈 잘하기!
select ad_id,
	round(
	count(case when event_type='click' then 1 end)
    / count(case when event_type='impression' then 1 end) 
    *100
    ,2) as ctr
from ad_events
where event_time like '2022%'
group by ad_id
order by ad_id
  • count 대신 sum을 사용해도 상관 없음

문제2

select customer_id
from customer_orders c
	join products p
	on c.product_id = p.product_id
group by customer_id
having count(distinct product_category)=3
from products
order by customer_id
  • 전체 카테고리의 고유 수가 몇인지부터 확인하기
select count(distinct product_category)
from products

문제3

  • 윈도우 함수 avg() over(rows between 2 preceding and current row)
select user_id, 
	post_date,
	round(avg(post_count) over(
    		partition by user_id 
            order by user_id 
            rows between 2 preceding and current row
            )
    	,2) as rolling_avg_3d
from blog_posts
order by user_id, post_date

문제 4


강의) 통계학 기초 1주차

데이터 분석에서 통계가 중요한 이유

  • 데이터 이해, 해석, 요약, 패턴 찾기 등에 중요한 역할
  • 추론을 통해 결론 도출하는 과정에 필요
  • 데이터 기반 의사결정을 도움 -> 보다 현명한 결정을 내리고 수익을 창출
  • 데이터 분석에서 통계가 사용되는 예시
    • 고객 만족도 설문조사 분석
    • 고객 유형별 세그먼트 상품 추천
    • 기업 전략 수립, 마케팅 진행, 신제품 개발 등

기술통계와 추론통계

  • 기술 통계
    : 데이터를 요약하고 설명하는 통계 방법 (평균, 중앙값, 분산, 표준편차 등)

    • 평균: 데이터의 일반적인 경향 파악에 유용
    • 중앙값: 이상치의 영향을 덜 받는 특징
    • 분산: 값들이 평균에서 얼마나 떨어져 있는지
      • 각 데이터 값에서 평균을 뺀 값을 제곱한 후, 이를 모두 더하고 데이터의 개수로 나눔
    • 표준편차: 값들이 평균에서 얼마나 떨어져 있는지 (분산의 제곱근)
      • 분산과 동일하게 데이터의 변동성을 측정하는 척도
      • 분산은 제곱 단위로 표현되지만, 표준편차는 다시 제곱근을 취하여 원래 데이터 값과 동일한 단위로 변환됨
  • 추론 통계
    : 표본 데이터를 통해 모집단의 특성을 추정하고 가설을 검정하는 통계 방법 (신뢰구간, 가설검정 등) -> 데이터의 일부로 전체를 추정하는 것이 핵심

    • 신뢰구간
      • 모집단의 평균이 특정 범위 내에 있을 것이라는 확률
      • 일반적으로 95% 신뢰구간이 사용됨
    • 가설검정
      • 모집단에 대한 가설 검증을 위해 사용
      • 귀무가설(H0): 검증하고자 하는 가설이 틀렸음을 나타내는 기본 가설 (변화없다, 효과없다)
      • 대립가설(H1): 귀무가설과 반대로, 주장하는 바를 나타냄 (변화가 있다, 효과가 있다)
      • p-value로 귀무가설의 기각 여부를 결정함

다양한 분석 방법

  • 위치 추정: 데이터의 중심을 확인
    • 평균, 중앙값 등
  • 변이 추정: 데이터들이 서로 얼마나 다른지 확인
    • 분산, 표준편차, 범위(range) 등
    • 범위: 데이터셋에서 가장 큰 값과 가장 작은 값의 차이를 나타내는 간단한 분포의 측도로, 데이터가 어느 정도의 변동성을 가지는지 쉽게 파악 가능 (최댓값-최솟값)
  • 데이터 분포 탐색: 데이터 값들이 어떻게 이루어져 있는지 확인
    • 히스토그램, 박스 플랏 등
  • 이진 데이터와 범주 데이터 탐색: 데이터들이 서로 얼마나 다른지 확인
    • 최빈값을 주로 사용
    • 파이그림, 막대 그래프 등
  • 상관관계: 데이터들끼리 서로 관련이 있는지 확인
    • 두 변수 간의 관계를 측정하는 방법
    • 상관계수를 계산해서 -1이나 1에 가까워질수록 강한 상관관계를 가짐
    • 0에 가까울수록 상관관계가 없음
    • 0.4정도부터는 상관관계가 있다고 판단할 수 있는 수치 (예시에서 상관계수가 0.36인 경우가 있었는데, 강사님은 이정도면 애매하다고 했다. 통찰력을 가지고 변수간에 관계가 있는지 자세히 파악해봐야할 정도라고..! 지난 프로젝트에서 상관분석했을 때 0.4~0.6정도의 변수들을 유의미하다고 판단 가능한지 의문이었는데 그정도면 상관관계가 있다고 봐도 될 것 같아서 다행,,)
    • 상관관계는 두 변수 간의 관계를 나타내고, 인과관계는 한 변수가 다른 변수에 미치는 영향을 나타냄
  • 두 개 이상의 변수 탐색: 여러 데이터들끼리 서로 관련이 있는지 확인
    • 다변량 분석
    • ex) 여러 마케팅 채널의 광고비와 매출 간의 관계 분석

SQL

Window function - row의 조건(범위) 지정하는 방법

  • ROWS: 현재 ROW 위치에서 물리적인 범위

  • RANGE: 현재 ROW값을 기준으로 논리적인 범위

    • ROWS UNBOUNDED PRECEDING: 현재 행과 현재 행 위에 있는 모든 행들을 함수에 사용하라는 의미
    • RANGE UNBOUNDED PRECEDING: 현재 행의 값을 기준으로 이하의 값을 함수에 사용하라는 의미
    • ROWS N(숫자) PRECEDING: 현재 행과 바로 위의 행 N개의 값을 함수에 사용하라는 의미
    • ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
    • RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
    • ROWS BETWEEN N PRECEDING AND CURRENT ROW
  • BETWEEN은 윈도우의 시작과 끝 위치를 지정하는 것으로 생략 가능함

    • CURRENT ROW: 현재 행을 끝 위치로 지정
    • 현재 행이 아닌 맨 마지막 행을 끝 위치로 표현하고 싶다면 AND 뒤에 UNBOUNDED FOLLOWING을 사용하면 됨
    • N PRECEDING절처럼 N FOLLOWING으로 현재 행을 기준으로 끝 위치를 N개만큼 지정할 수 있음

Window function - LAG, LEAD

  • LAG: 현재 행의 이전 행 값을 참조
  • LEAD: 현재 행의 다음 행 값을 참조

일기

새로운 조를 만났다.
이번주 토요일에 빅분기 시험인데 큰일났다.
진짜 큰일남. 저번 ADsP때 보다 더 큰일남.

2개의 댓글

comment-user-thumbnail
2025년 3월 31일

떨어지면 저랑 같이 9월에 또 보면되죠 ㅎㅎ 파이팅~

1개의 답글