기초통계 (3) 분포탐색하기

생각하는 마리오네트·2021년 8월 1일
0

통계

목록 보기
8/41

🎓 앞서 (1) 과 (2)에서는 모두 데이터의 위치 혹은 변이를 나타내기 위한 하나의 수치로 데이터를 요약하고 있다. 이와 더불어 데이터가 전반적으로 어떻게 분포하고 있는지를 알아보는 것 역시 유용하다.

📈 용어 정리

  • Boxplot(상자그림) : 데이터 분포를 시각화하기 위한 그림
  • 도수분포표 : 어떤 구간에 해당하는 수치 데이터 값들의 빈도를 나타내는 기록
  • 히스토그램(histogram) : x축은 구간들을, y축은 빈도수를 나타내는 도수 테이블의 그림(막대그래프와 시각적으로 비슷하지만 혼동해서는 안된다, 추후에 설명예정), 히스토그램의 구간은 동일한 크기를 갖는다.
  • 밀도 그림(density plot) : 히스토그램을 부드러운 곡선으로 나타낸 그림(커널밀도추정을 주로 사용한다, 판다스에서는 density = True를통해 그려줄 수 있다.), 밀도 는 일반 히스토그램과 y축 값이 다르다. 히스토그램의 경우 y축은 개수를 나타내지만, 밀도 그림에서는 비율을 나타낸다.

📈 백분위수와 Box-plot(상자그림)

  • 백분위수는 분포의 꼬리 부분을 묘사하는 데 제격이다.
  • quantile을 통해 쉽게 사분위수를 구할 수 있다.
import pandas as pd
num = pd.Series([2, 3, 4, 5, 6, 7])

Q1 = num.quantile(.25) # Q1의 값
Q2 = num.quantile(.50) # Q2의 값
Q3 = num.quantile(.75) # Q3의 값
  • IQR = Q3 - Q1
  • Box-plot(상자그림)은 백분위수를 이용해 데이터의 분산을 손쉽게 시각화 하는 방법이다.
(이미지 출처 : practical-statistic-for-data-scientists/python/notebooks/Chapter 1 - Exploratory Data Analysis.ipynb)
  • 인구수가 높은 이상치가 있음을 한눈에 파악할 수 있다.
  • 상자부분의 위쪽과 아래쪽은 각각 75%, 25% 백분위수를 나타낸다, 중간값은 상자안에 있는 굵은 수평선으로 표시한다.
  • 이상치의 기준은 Q1 - (IQR x 1.5), Q3 + (IQR x 1.5) 이다.

📈 도수분포표와 히스토그램

  • 도수분포표는 변수의 범위를 동일한 크기의 구간으로 나눈 다음, 각 구간마다 몇개의 변숫값이 존재하는지를 보여주기 위해 사용된다.
  • 도수분포표 예시
키(cm)명수
160cm 이하3명
160 ~ 165cm 이하5명
165 ~ 170cm 이하10명
  • cut함수를 사용하여 구간에 매핑할 수 있다. 이후 value_counts()메서들 랏용하여 빈도 테이블을 구한다.
mapping = pd.cut(df['population'],10) # 전체 인구를 10개의 구간으로 나눈다.
mapping.value_counts()
  • 빈구간이 생길 수 있는데 이는 중요한 정보가 될 수 있다.
  • 구간의 크기를 바꿔보는 것도 유용한 정보를 얻는 좋은 방법이다.
  • 만약 크기가 너무 크면, 분포를 나타내는 중요한 특징을 놓칠 수 있다.
  • 반대로 너무 작아도, 결과가 너무 쪼개져 더 큰 그림을 볼 수 없게된다.

( 중요!! : 도수분포표와 백분위수 모두 구간을 나눠서 데이터를 살펴보는 접근방법이다. 사분위수의 경우 같은 수의 데이터가 포함되도록, 즉 서로 크기가 다르게 구간을 나누는 것이며, 도수분포표는 구간의 크기가 같도록, 즉 구간안에 데이터의 수는 다를수 있다.)

  • 히스토그램은 바로 이 도수분포표를 식각화하는 방법이다. X축에는 구간들을 표시하고 y축에는 해당 구간별 데이터의 개수를 포함한다.
  • python의 경우 histplot을 통해서 만들 수 있고 bins를 이용하여 구간의 수를 핸들링 할 수 있다.
  • 히스토그램은 그래프에 빈구간이 있을 수 있으며, 구간은 도수분포표의 시각화방법이므로 동일하다, 또한 구간의 수는 사용자가 결정할 수 있으며, 막대들은 데이터가 비어있지 않는 한 붙어있다.

📈 밀도 그림과 추정

  • 밀도그림의 경우 데이터의 분포를 연속된 선으로 보여준다. 즉, 히스토그램의 부드러운 버전이라고 볼 수 있다.
  • python에서는 histplot에서 파라미터로 kde = True 를 넣어주면 완성하게 된다.
  • 히스토그램과 이 밀도 그림과의 가장 큰 차이는 바로 y축 값의 단위입니다. 히스토그램과 다른게 밀도그림에서는 개수가 아닌 비율로 표시가 됩니다.
profile
문제를해결하는도구로서의"데이터"

0개의 댓글