Parameterskattning: Skev normalfördelning
I den föregående övningen fann du att en anpassning av en normalfördelning till portföljdata från en investmentbank för perioden 2005–2010 resulterade i en dålig anpassning enligt Anderson-Darling-testet.
Du testar nu datan med funktionen skewtest() från scipy.stats. Om testresultatet är statistiskt skilt från noll stödjer datan en skev fördelning.
Du skattar nu parametriskt 95%-VaR för en förlustfördelning anpassad med scipy.stats's skewnorm – en skev normalfördelning. Det är en mer generell fördelning än normalfördelningen och tillåter att förluster är osymmetriskt fördelade. Under krisen, då portföljförluster var mer sannolika än vinster, kan vi förvänta oss en skev fördelning.
Portföljens losses för perioden 2007–2009 finns tillgängliga.
Den här övningen är en del av kursen
Kvantitativ riskhantering i Python
Övningsinstruktioner
- Importera
skewnormochskewtestfrånscipy.stats. - Testa för skevhet i portföljens
lossesmed hjälp avskewtest. Testet indikerar skevhet om resultatet är statistiskt skilt från noll. - Anpassa
losses-datan till den skeva normalfördelningen med hjälp av metoden.fit(). - Generera och visa 95%-VaR-skattningen från den anpassade fördelningen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)