始める無料で始める

損失分布のKDE

カーネル密度推定(KDE)は「ファットテール」を持つ分布、つまり平均から大きく外れる値が時折出る分布(ポートフォリオ損失の分布など)にフィットできます。

第2章ではスチューデントの T 分布を学びました。自由度が低い場合、こちらもポートフォリオ損失のこの特徴を表現できます。

ここでは 2008〜2009 年のポートフォリオ losses に対して、Gaussian KDE と T 分布をそれぞれフィットし、ヒストグラムを使って両者の当てはまりを可視化して比較します。(T 分布はフィットしたパラメータ params を用いる一方、gaussian_kdeノンパラメトリックで関数を返すことを思い出してください。)

scipy.stats から gaussian_kde()t 分布が利用可能です。プロットは用意された axis オブジェクトに追加できます。

この演習はコースの一部です

Pythonで学ぶ定量的リスク管理

コースを見る

演習の手順

  • ポートフォリオの lossest 分布をフィットします。
  • 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()
コードを編集して実行