사분위수로 데이터 분포 설명하기

Python으로 금융 데이터 가져오기와 관리

Stefan Jansen

Instructor

데이터 분포 설명하기

  • 첫 확인: 중심경향과 표준편차
  • 더 세밀한 분포를 보려면?
  • 사분위수 계산 및 시각화
Python으로 금융 데이터 가져오기와 관리

산포 더 보기: 분위수

  • 분위수: 관측치를 동일 비율로 나눈 구간
    • 사분위수: 4구간, 각 25%
    • 십분위수: 10구간, 각 10%
    • IQR: 제3 사분위수 − 제1 사분위수

분위수 도식

Python으로 금융 데이터 가져오기와 관리

pandas로 분위수 구하기

market_cap = nasdaq['Market Capitalization'].div(10**6) 
median = market_cap.quantile(.5)

median == market_cap.median()
True
quantiles = market_cap.quantile([.25, .75])
0.25     43.375930
0.75    969.905207
quantiles[.75] - quantiles[.25] # IQR(사분위수 범위)
926.5292771575
Python으로 금융 데이터 가져오기와 관리

pandas & numpy로 분위수 구하기

deciles = np.arange(start=.1, stop=.91, step=.1)
deciles
array([ 0.1,  0.2,  0.3,  0.4,  ..., 0.7,  0.8,  0.9])
market_cap.quantile(deciles)
0.1       4.884565
0.2      26.993382
0.3      65.714547
0.4     124.320644
0.5     225.968428
0.6     402.469678
...
Python으로 금융 데이터 가져오기와 관리

막대그래프로 분위수 시각화

title = 'NASDAQ 시가총액 (백만 USD)'
market_cap.quantile(deciles).plot(kind='bar', title=title)
plt.tight_layout(); plt.show()

분위수 막대그래프

Python으로 금융 데이터 가져오기와 관리

통계를 한 번에 확인하기

market_cap.describe()
count      3167.000000
mean       3180.712621
std       25471.038707
min           0.000000
25%          43.375930  # 제1 사분위수
50%         225.968428  # 중앙값
75%         969.905207  # 제3 사분위수
max      740024.467000
Name: Market Capitalization
Python으로 금융 데이터 가져오기와 관리

통계를 한 번에 확인하기

market_cap.describe(percentiles=np.arange(.1, .91, .1))
count      3167.000000
mean       3180.712621
std       25471.038707
min           0.000000
10%           4.884565
20%          26.993382
30%          65.714547
40%         124.320644
50%         225.968428
60%         402.469678
70%         723.163197
80%        1441.071134
...
Python으로 금융 데이터 가져오기와 관리

연습해 봅시다!

Python으로 금융 데이터 가져오기와 관리

Preparing Video For Download...