관리 메뉴

애독자's 공부방

[혼공분석] 4주차 _ 혼자 공부하는 데이터 분석 with 파이썬 본문

데이터분석/혼공학습단 13기

[혼공분석] 4주차 _ 혼자 공부하는 데이터 분석 with 파이썬

애독자 2025. 2. 4. 00:42
728x90

혼공단 - 혼공분석, 혼자 공부하는 데이터 분석 with 파이썬

 

 

■ 공부한 내용

# 진도 기본 숙제(필수) 추가 숙제(선택)
4주차
(2/3 ~ 2/9)
Chapter 04 p. 279의 확인 문제 5번 풀고 인증하기 Ch.04(04-1)에서 배운 8가지 기술통계량(평균, 중앙값, 최솟값, 최댓값, 분위수, 분산, 표준편차, 최빈값)의 개념을 정리하기

 

 

 

□ Chapter 04 | 데이터 요약하기
▷ 04-1 | 통계로 요약하기
 1. 핵심 포인트 요약

  - 기술통계(descriptive statistics): 테크니컬(technical)한 어떤 것을 지칭하는 것이 아닌 자료의 내용을 압축하여 설명하는 방법

   . 다른 말로는 요약 통계(summary statistics)라고 하며, 정량적인 수치로 전체 데이터의 특징을 요약하거나 이해하기 쉬운 간단한 그래프를 사용

  - 평균(mean): 데이터값을 모두 더한 후 데이터 개수로 나눈 값. 평균은 일상생활에서도 널리 사용되기 때문에 이해하기 쉽지만, 어떤 기준으로 평균을 계산하는지에 따라 조금씩 다른 의미를 가질 수 있음

  - 중앙값(median): 전체 데이터를 크기 순서대로 일렬로 늘어놓았을 때 중간에 위치한 값. 전체 데이터 개수가 짝수일 때는 중간의 두 데이터의 평균을 계산

  - 분위수(quantile): 순서대로 나열된 데이터를 일정한 간격으로 나누는 기준점. 사분위수의 경우 데이터를 4등분하며, 25%, 50%, 75%에 위치한 값. 백분위수는 데이터를 100개의 구간으로 나눔

  - 분산(variance): 데이터가 평균에서 얼마나 멀리 퍼져 있는지를 알려줌. 각 데이터를 평균에서 뺀 다음 제곱한 후 전체 데이터 개수로 나누어 구함

  - 표준편차(standard deviation): 분산의 제곱근으로 분산과 마찬가지로 데이터의 분포 정도를 표시. 표준편차는 원본 데이터와 단위가 같기 때문에 분산보다 해석이 쉬움

  - 최빈값(mode): 데이터에서 가장 많이 등장하는 값을 알려줌. 숫자와 문제 데이터에 모두 적용 가능


 2. 책에 나온 함수와 메서드

함수/메서드 기능 사용
DataFrame.describe() 데이터프레임의 기술통계량을 출력 DataFrame.describe(percentiles, include, exclude)
  . 매개변수: 설명
  . percentiles: 출력할 분위수를 0~1 사이로 지정 (기본값: [0.25, 0.5, 0.75])
. include: 기술통계 계산에 포함할 데이터 타입을 지정. 기본적으로 수치형에 대한 기술통계 계산
. exclude: 기술통계 계산에 제외할 데이터 타입을 지정. 기본적으로 아무것도 제외하지 않음.
Series.mean() 데이터에서 평균을 계산 Series.mean()
   
numpy.mean() 입력된 배열의 평균을 계산 numpy.mean(a, axis)
  . a: 평균을 계산할 배열 또는 데이터프레임을 전달
. axis: 0으로 지정하면 행 방향, 1로 지정하면 열 방향으로 평균을 계산
Series.median() 데이터에서 중앙값을 찾음 Series.median()
   
numpy.median() 입력된 배열의 중앙값을 찾음 numpy.median(a, axis)
  . a: 중앙값을 찾을 배열 또는 데이터프레임
. axis: 0으로 지정하면 행 방향, 1로 지정하면 열 방향으로 중앙값을 계산
Series.quantile() 데이터에서 분위수를 계산 Series.quantile(q, interpolation)
  . q: 계산할 분위수를 0~1 사이로 지정 (기본값: 0.25), 복수의 분위수를 리스트로 전달 가능
. interpolation: 분위수의 보간 방법을 지정 (기본값: 'linear'로 인접한 두 데이터 포인트의 거리에 비례하여 분위수를 계산 / 'lower'는 작은 값, 'higher'는 큰 값, 'nearest'는 가까운 값, 'midpoint'는 중간값을 선택)
numpy.quantile() 입력된 배열의 분위수를 계산 numpy.quantile(a, axis, interpolation)
  . a: 분위수를 찾을 배열 또는 데이터프레임을 전달
. axis: 0으로 지정하면 행 방향, 1로 지정하면 열 방향으로 분위수를 계산
. interpolation: 분위수의 보간 방법을 지정. 판다스에서 제공하는 방법을 모두 포함하며, 버전 1.22.0부터 미사용
Series.var() 데이터의 분산을 계산 Series.var(ddof)
  . ddof: 자유도 차감값을 지정 (기본값: 1)
numpy.var() 입력된 배열의 분산을 계산 numpy.var(a, axis, ddof)
  . a: 분산을 계산할 배열 또는 데이터프레임 전달
. axis: 0으로 지정하면 행 방향, 1로 지정하면 열 방향으로 분산을 계산
. ddof: 자유도 차감값을 지정 (기본값: 0)
Series.std() 데이터의 표준편차를 계산 Series.std(ddof)
  . ddof: 자유도 차감값을 지정 (기본값: 1)
numpy.std() 입력된 배열의 표준편차를 계산 numpy.std(a, axis, ddof)
  . a: 표준편차를 계산할 배열 또는 데이터프레임 전달
. axis: 0으로 지정하면 행 방향, 1로 지정하면 열 방향으로 표준편차를 계산
. ddof: 자유도 차감값을 지정 (기본값: 0)
Series.mode() 데이터에서 최빈값을 찾음 Series.mode(dropna)
  . dropna: 기본값 True는 기본적으로 누락된 값은 빈도에 미포함. False로 지정하면 누락된 값의 빈도도 카운트

 

 

04-2 | 분포 요약하기

 1. 핵심 포인트 요약

  - 산점도(scatter plot): 두 변수(variable) 혹은 두 가지 특성(feature)값을 직교 좌표계에 점으로 나타내는 그래프

   . 데이터를 2차원 평면 또는 3차원 공간에 점으로 표시하며, 차원의 제약으로 일반적으로 두 개 또는 세 개의 특성을 표현할 수 있지만 점의 색깔을 달리하여 한 개의 특성을 더 표현할 수도 있음

  - 히스토그램(histogram): 데이터를 일정 구간(bin)으로 나누어 구간에 속한 데이터 개수(도수:frequency)를 막대로 표현. 데이터가 어떤 부분에 집중되어 분포되어 있는지 확인 가능

   . 로그 스케일(log scale): 그래프가 한쪽에 편중되어 그려진다면 x,y축을 바꾸어 이를 사용해서 그릴 수 있음. 수치를 로그로 간결하게 표시할 수 있어 넓은 범위의 데이터를 표시하기 좋음

  - 상자 수염 그림(box-and-whisker plot): 사분위수, 최솟값, 최댓값을 사용해 여러 특성의 분포를 비교할 수 있는 그래프. 제1사분위수와 제3사분위수를 사용해 상자를 그리고, 상자의 IQR거리의 1.5배 범위 안에서 가장 멀리 떨어진 데이터까지 수직선(수염)을 그려서 분포를 표현

  - 맷플롯립(matplotlib): 파이썬의 대표적인 그래프 패키지. 산점도, 히스토그램, 상자 수염 그림을 비롯하여 막대그래프, 선 그래프 등 많은 종류의 그래프를 지원하며 그래프의 구성 요소를 다양하게 제어할 수 있는 많은 옵션도 제공

 

 2. 책에 나온 함수와 메서드

함수/메서드 기능 사용
Matplotlib.pyplot.scatter() 2차원 평면에 산점도를 그림 Matplotlib.pyplot.scatter(x, y, alpha)
  . 매개변수: 설명
  . x: 데이터의 x좌표를 전달 (파이썬 리스트나 넘파이 배열, 판다스 시리즈 객체)
. y: y좌표를 전달 (파이썬 리스트나 넘파이 배열, 판다스 시리즈 객체)
. alpha: 점의 투명도를 지정 (0~1사이 실수). 0에 가까울수록 투명하고 1에 가까울수록 불투명
Matplotlib.pyplot.hist() 히스토그램을 그림 Matplotlib.pyplot.hist(x, bins, log)
  . x: 데이터를 전달(파이썬 리스트, 넘파이 배열, 판다스 시리즈 객체)
. bins: 구간 개수를 결정 (기본값: 10)
. log: 기본값 False를 True로 변경하면 로그 스케일로 그림
Matplotlib.pyplot.boxplot() 상자 수염 그림을 그림 Matplotlib.pyplot.boxplot(x, vert, whis)
  . x: 데이터를 전달 (넘파이 배열, 판다스 시리즈나 데이터프레임 객체)
. vert: 상자의 방향을 결정 (기본값: True로 수직 방향 / False는 수평 방향)
. whis: 수염 길이를 결정. 기본값 1.5는 1.5배 IQR까지의 수염을 그림. 두 개의 백분위로 구성된 튜플로 지정 가능
Matplotlib.pyplot.xscale() x축의 스케일을 지정 Matplotlib.pyplot.xscale(value)
  . value: 'log'로 지정하면 x축을 로그 스케일로 변경
Matplotlib.pyplot.yscale() y축의 스케일을 지정 Matplotlib.pyplot.yscale(value)
  . value: 'log'로 지정하면 y축을 로그 스케일로 변경
numpy.random.seed() 원하는 임의의 정수를 입력하면 난수 발생을 동일하게 재현 numpy.random.seed(seed)
  . seed: 유사난수 생성을 위한 시드 값을 지정
numpy.random.randn() 표준정규분포를 따르는 난수를 생성 numpy.random.randn(parameters)
  . parameters: 반환될 배열의 차원을 전달

 

 

 

■ 기본 숙제

  p. 279의 확인 문제 5번 풀고 인증하기

  - 정답:

import matplotlib.pyplot as plt
selected_rows = (1980 <= ns_book7['발행년도']) & (ns_book7['발행년도'] <= 2022)
plt.hist(ns_book7.loc[selected_rows, '발행년도'])
plt.show()

 

 

 

 

 

 

 

■ 추가 숙제(선택)

  Ch.04(04-1)에서 배운 8가지 기술통계량(평균, 중앙값, 최솟값, 최댓값, 분위수, 분산, 표준편차, 최빈값)의 개념을 정리하기

  - 평균(mean): 데이터 집합의 모든 값을 더한 후, 데이터의 개수로 나눈 값. 일반적으로 중심 경향성을 나타내며, 이상치에 민감

  - 중앙값(median): 데이터 값을 크기 순으로 정렬했을 때, 중앙에 위치하는 값. 데이터의 개수가 홀수일 경우 중간값을, 짝수일 경우 두 중앙값의 평균을 사용. 이상치에 영향을 받지 않는 특징

  - 최솟값(minimum): 데이터 집합에서 가장 작은 값. 데이터의 범위를 이해하는 데 도움을 줌

  - 최댓값(maximum): 데이터 집합에서 가장 큰 값. 데이터의 범위를 이해하는 데 유용

  - 분위수(quantile): 데이터를 일정한 비율로 나누는 값. 예를 들어 1사분위수(Q1)는 전체 데이터의 25%가 그 값 이하인 지점을 나타내고, 2사분위수(Q2)는 중앙값과 동일

  - 분산(variance): 데이터의 각 값이 평균으로부터 얼마나 떨어져 있는지를 나타내는 지표. 데이터의 변동성을 측정

  - 표준편차(standard deviation): 분산의 제곱근으로, 데이터의 흩어짐 정도를 표시. 표준편차가 크면 데이터가 평균으로부터 멀리 퍼져 있음을 의미

  - 최빈값(mode): 데이터 집합에서 가장 자주 나타나는 값. 데이터가 어떤 값에 집중되는지를 보여주며, 여러 개의 최빈값이 존재할 수도 있음

기술통계량 정의 특징
평균 데이터 집합의 모든 값을 더한 후 개수로 나눈 값 이상치에 민감
중앙값 크기 순으로 정렬했을 때 중앙에 위치한 값 이상치에 영향 받지 않음
최솟값 데이터 집합에서 가장 작은 값 데이터의 범위를 이해하는 데 도움
최댓값 데이터 집합에서 가장 큰 값 데이터의 범위를 이해하는 데 도움
분위수 데이터를 일정 비율로 나누는 값 (예: 1사분위수, 2사분위수) 데이터 분포를 이해하는 데 유용
분산 데이터의 각 값이 평균으로부터 얼마나 떨어져 있는지를 나타내는 지표 변동성을 측정
표준편차 분산의 제곱근으로, 데이터의 흩어짐 정도를 나타냄 변동성의 단위를 원래 데이터와 동일하게 유지
최빈값 데이터 집합에서 가장 자주 나타나는 값 데이터의 집중도를 나타냄

 

 

728x90