四分位数で分布を把握する

Pythonでの金融データのインポートと管理

Stefan Jansen

Instructor

データ分布を記述する

  • 概観: 代表値と標準偏差
  • 分布をより細かく把握するには?
  • 分位点を計算して可視化
Pythonでの金融データのインポートと管理

ばらつきを詳しく見る: 分位点

  • 分位点: 観測を等割合で分けた区間
    • 四分位: 4区間、各25%
    • デシル: 10区間、各10%
    • 四分位範囲: 第3四分位 − 第1四分位

quantile.png

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] # 四分位範囲
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 Market Capitalization (million USD)'
market_cap.quantile(deciles).plot(kind='bar', title=title)
plt.tight_layout(); plt.show()

quantile_bar.png

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...