Średnia, wariancja i rozkład normalny

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Momenty rozkładów

Rozkłady prawdopodobieństwa mają następujące momenty:

  • 1) Średnia ($ \mu $)
  • 2) Wariancja ( $ \sigma ^ 2 $ )
  • 3) Skośność
  • 4) Kurtoza
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Istnieje wiele rodzajów rozkładów – normalnych i nienormalnych. Zmienna losowa o rozkładzie Gaussa jest określana jako normalnie rozłożona.

Rozkład normalny ma następujące właściwości:

  • Średnia = $ \mu $
  • Wariancja = $ \sigma ^ 2 $
  • Skośność = 0
  • Kurtoza = 3

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Standardowy rozkład normalny

Standardowy rozkład normalny to szczególny przypadek rozkładu normalnego, gdy:

  • $ \sigma $ = 1
  • $ \mu $ = 0
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Porównanie z rozkładem normalnym

  • Rozkłady normalne mają skośność bliską 0 i kurtozę bliską 3.
  • Zwroty finansowe zwykle nie mają rozkładu normalnego
  • Zwroty finansowe mogą wykazywać wysoką kurtozę
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Porównanie z rozkładem normalnym

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Obliczanie średnich zwrotów w Pythonie

Aby obliczyć średni dzienny zwrot, użyj funkcji np.mean():

import numpy as np
np.mean(StockPrices["Returns"])
0.0003

Aby obliczyć średni roczny zwrot przy założeniu 252 dni handlowych w roku:

import numpy as np
((1+np.mean(StockPrices["Returns"]))**252)-1
0.0785
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Odchylenie standardowe i wariancja

Odchylenie standardowe (zmienność)

  • Wariancja = $ \sigma ^ 2 $
  • Często oznaczane jako $ \sigma $ lub nazywane zmiennością
  • Wyższe $ \sigma $ oznacza wyższe ryzyko inwestycji
  • Mierzy rozproszenie zwrotów

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Odchylenie standardowe i wariancja w Pythonie

Zakładając, że dane o zwrotach są wczytane do obiektu StockData. Aby obliczyć okresowe odchylenie standardowe zwrotów:

import numpy as np
np.std(StockPrices["Returns"])
0.0256

Aby obliczyć wariancję, podnieś odchylenie standardowe do kwadratu:

np.std(StockPrices["Returns"])**2
0.000655
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Skalowanie zmienności

  • Zmienność skaluje się z pierwiastkiem kwadratowym czasu
  • Przyjmuje się 252 dni handlowych w roku i 21 dni handlowych w miesiącu

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Skalowanie zmienności w Pythonie

Zakładając, że dane o zwrotach są wczytane do obiektu StockData. Aby obliczyć roczną zmienność zwrotów:

import numpy as np
np.std(StockPrices["Returns"]) * np.sqrt(252)
0.3071
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Czas na ćwiczenia!

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Preparing Video For Download...