パラメータ推定:歪度つき正規分布
前の演習では、2005〜2010年の投資銀行ポートフォリオデータに正規分布を当てはめたところ、Anderson–Darling 検定によれば当てはまりが良くないことが分かりました。
ここでは scipy.stats の skewtest() 関数を使ってデータを検定します。検定結果が統計的に 0 と異なれば、データは歪んだ分布を支持していると判断できます。
次に、scipy.stats の skewnorm(歪度つき Normal)分布を使って当てはめた損失分布から、95% VaR をパラメトリックに推定します。これは通常の正規分布より一般的で、損失が非対称に分布することを許容します。特に危機時には、利益より損失が起こりやすいため、損失が歪むと予想されます。
2007〜2009年のポートフォリオの losses が利用できます。
この演習はコースの一部です
Pythonで学ぶ定量的リスク管理
演習の手順
scipy.statsからskewnormとskewtestをインポートします。skewtestを用いてポートフォリオのlossesに歪みがあるか検定します。結果が統計的に 0 と異なれば、歪みがあると判断します。.fit()メソッドでlossesデータを歪度つき正規分布に当てはめます。- 当てはめた分布から 95% VaR 推定値を生成して表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the skew-normal distribution and skewness test from scipy.stats
from scipy.stats import skewnorm, skewtest
# Test the data for skewness
print("Skewtest result: ", ____(____))
# Fit the portfolio loss data to the skew-normal distribution
params = ____.____(losses)
# Compute the 95% VaR from the fitted distribution, using parameter estimates
VaR_95 = ____.____(0.95, *params)
print("VaR_95 from skew-normal: ", VaR_95)