fattails01

probability
simulation
fat-tails
bayes
bayesbox
normal-distribution
Published

November 23, 2022

Exercise

In seinem Buch “Statistical Consequences of Fat Tails” schreibt der Autor, Nassim Taleb (S. 53):

In the summer of 1998, the hedge fund called “Long Term Capital Management” (LTCM) proved to have a very short life; it went bust from some deviations in the markets –those “of an unexpected nature”. The loss was a yuuuge deal because two of the partners received the Swedish Riksbank Prize, marketed as the “Nobel” in economics. (…) At least two of the partners made the statement that it was a “10 sigma” event (10 standard deviations), hence they should be absolved of all accusations of incompetence (I was first hand witness of two such statements).

Wir testen in diesem Zusammenhang zwei Hypothesen: \(H_N\), dass der Finanzmarkt normalverteilt ist und \(H_F\), dass die Variable fat tailed ist, also nicht normalverteilt, sondern einer Verteilung entspringt, in der “Extremereignisse” üblicher sind als in einer Normalverteilung.

Um die Fat-Tails-Verteilung mit \(n=100\) zu simulieren, nutzen wir hier folgende Funktion:

fat_tail_data <- rt(n = 100, df = 2)
fat_tail_data
  [1]  1.07191553  0.72657936 -2.80806303 -0.85734696 -1.04171088 -0.28511071
  [7] -2.75731766  3.40892560 -0.04349465  0.47287150  0.45974792 -1.46049304
 [13] -3.74368779  2.04522523 -0.66975671  4.07853948 -1.17612519  0.38781548
 [19] -0.33177745  1.65383190 -1.26904428  0.27299761  0.73593247  4.61849952
 [25] -1.44744698  0.50048936  0.43025422  0.82865545 -0.29585177  1.45277039
 [31] -0.19685570  2.03453595 -2.80819124 -1.23728166  1.68274260  0.07762617
 [37]  1.93997804  1.42263539  0.29633265 -1.59313972  1.92145539  1.34359698
 [43] -1.06202057  1.06301775 -1.18618803 -0.84320470  0.30827389  0.30204104
 [49]  0.23887092 -0.24805784  0.73815822  0.95554468  0.25865658  0.43817601
 [55] -1.19220151  2.63504876  2.43347344 -0.55008682  0.45452923 -0.68099639
 [61] -1.16186463 -1.07633371 -2.51757583  0.26391561  2.89981158 -0.51761706
 [67]  0.35357062  1.47791202  0.66371887  0.02602585  0.64872915  0.06521705
 [73] -0.82166280 -1.35420194 -0.46883260 -3.74712138 -0.36786794 -1.32467679
 [79]  0.52858969 -4.23238733 -0.36714337  1.91162691  0.65455221 -2.27650824
 [85] -1.62695648 -0.01502936 -1.63442072 -0.39442218  0.02307418 -0.43621203
 [91]  5.01808414  2.40812328  0.94164588  1.61395555  1.23642268  1.41891769
 [97] -1.24735187 -7.22070070  1.36514248 -0.05180149

Dabei bedeutet df = 2, dass die Verteilung sehr randlastig (fat tailed) sein soll (genauer gesagt eine t-Verteilung mit zwei Freiheitsgraden). Details zu dieser R-Funktion sollen uns hier nicht interessieren. Nur für diejenigen, die neugierig sind: r steht für random, also eine Zufallszahl. Diese soll aus der sog. t-Verteilung mit df=2 stammen. Das ist, einfach gesagt, eine “plattgedrückte” Normalverteilung, also eine Verteilung mit mehr Verteilung in den Rändern als die Normalverteilung.

Berechnen wir die Wahrscheinlichkeit, dass die Daten einer Normalverteilung entspringen (und nicht der Fat-Tail-Verteilung).

Die Wahrscheinlichkeit eines 10-Sigma-Events ist übrigens … klein. Taleb berichtet sie mit \(1.31 \cdot 10^{-23}\):

L_norm <- 1.31e-23

Das ist eine Zahl mit 23 Nullen hinter dem Komma und vor der Eins: 0.0000000000000000000000131.

Für die t-Verteilung ist der entsprechende Wert:

L_fat <- 1 - pt(q = 10, df = 2)
L_fat
[1] 0.004926229

Auch hier soll der Befehl pt nicht interessieren. Nur für die Neugierigen: p steht für probability, t für die t-Verteilung. Der Befehl gibt uns also die Wahrscheintlichkeit, \(p\), für ein bestimmten Quartil, \(q\), aus einer t-Verteilung mit 2 Freiheitsgraden.

Wie hoch ist die Post-Wahrscheinlichkeit, dass die Variable normalverteilt ist?

Hinweise:

  • Geben Sie Anteile oder Wahrscheinlichkeiten stets mit zwei Dezimalstellen an (sofern nicht anders verlangt).
  • Apriori sollen uns beide Hypothesen gleich plausibel sein.

Answerlist

  • kleiner als 50%
  • kleiner als 5%
  • kleiner als 0.5%
  • kleiner als 0.05%
  • kleiner als 0.005%











Solution

library(tidyverse)

Erstellen wir erstmal den ersten Teil einer Bayes-Box:

d <-
  tibble(H = c("Normalverteilt", "Randlastig verteilt"),
         Prior = c(1,1))

d
# A tibble: 2 × 2
  H                   Prior
  <chr>               <dbl>
1 Normalverteilt          1
2 Randlastig verteilt     1

Dann fügen wir den Likelihood jeder Hypothese dazu:

d <-
  d %>% 
  mutate(L = c(L_norm, L_fat))

d
# A tibble: 2 × 3
  H                   Prior        L
  <chr>               <dbl>    <dbl>
1 Normalverteilt          1 1.31e-23
2 Randlastig verteilt     1 4.93e- 3

Dann berechnen wir die Post-Wahrscheinlichkeit:

d <-
  d %>% 
  mutate(Post_unstand = Prior * L,
         Post = Post_unstand / sum(Post_unstand))
d
# A tibble: 2 × 5
  H                   Prior        L Post_unstand     Post
  <chr>               <dbl>    <dbl>        <dbl>    <dbl>
1 Normalverteilt          1 1.31e-23     1.31e-23 2.66e-21
2 Randlastig verteilt     1 4.93e- 3     4.93e- 3 1   e+ 0

Die Wahrscheinlichkeit, dass die Variable normalverteilt ist, ist seeeeehr klein, ca. \(10^{-21}\).

Das ist kleiner als kleiner als 0.005%.

Answerlist

  • FALSE
  • FALSE
  • FALSE
  • FALSE
  • TRUE

Categories:

  • probability
  • simulation
  • fat-tails
  • normal-distribution
  • fat-tails