損失分布のKDE
カーネル密度推定(KDE)は「ファットテール」を持つ分布、つまり平均から大きく外れる値が時折出る分布(ポートフォリオ損失の分布など)にフィットできます。
第2章ではスチューデントの T 分布を学びました。自由度が低い場合、こちらもポートフォリオ損失のこの特徴を表現できます。
ここでは 2008〜2009 年のポートフォリオ losses に対して、Gaussian KDE と T 分布をそれぞれフィットし、ヒストグラムを使って両者の当てはまりを可視化して比較します。(T 分布はフィットしたパラメータ params を用いる一方、gaussian_kde はノンパラメトリックで関数を返すことを思い出してください。)
scipy.stats から gaussian_kde() と t 分布が利用可能です。プロットは用意された axis オブジェクトに追加できます。
この演習はコースの一部です
Pythonで学ぶ定量的リスク管理
演習の手順
- ポートフォリオの
lossesにt分布をフィットします。 gaussian_kde()を使ってlossesに Gaussian KDE をフィットします。- 両方の推定の確率密度関数(PDF)を
axisオブジェクトを使ってlossesに対してプロットします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Generate a fitted T distribution over losses
params = t.____(losses)
# Generate a Gaussian kernal density estimate over losses
kde = ____(____)
# Add the PDFs of both estimates to a histogram, and display
loss_range = np.linspace(np.min(losses), np.max(losses), 1000)
axis.plot(loss_range, t.____(loss_range, *params), label = 'T distribution')
axis.____(loss_range, kde.pdf(____), label = 'Gaussian KDE')
plt.legend(); plt.show()