Zacznij terazZacznij za darmo

Estymacja parametrów: skośny rozkład normalny

W poprzednim ćwiczeniu okazało się, że dopasowanie rozkładu normalnego do danych portfela banku inwestycyjnego z lat 2005–2010 dało słabe wyniki według testu Andersona-Darlinga.

Sprawdzisz teraz dane za pomocą funkcji skewtest() z biblioteki scipy.stats. Jeśli wynik testu różni się istotnie statystycznie od zera, dane wskazują na rozkład skośny.

Następnie parametrycznie wyestymuj 95% VaR, dopasowując rozkład strat przy użyciu rozkładu skośnego normalnego skewnorm z biblioteki scipy.stats. Jest to rozkład ogólniejszy niż normalny – pozwala na niesymetryczny rozkład strat. Można się spodziewać skośności strat w okresie kryzysu, gdy straty portfela były bardziej prawdopodobne niż zyski.

Dostępne są dane losses (straty portfela) dla okresu 2007–2009.

To ćwiczenie jest częścią kursu

Ilościowe zarządzanie ryzykiem w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj skewnorm i skewtest z biblioteki scipy.stats.
  • Sprawdź skośność danych losses za pomocą funkcji skewtest. Test wskazuje na skośność, gdy wynik różni się istotnie statystycznie od zera.
  • Dopasuj dane losses do skośnego rozkładu normalnego, korzystając z metody .fit().
  • Wygeneruj i wyświetl estymację 95% VaR na podstawie dopasowanego rozkładu.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod