New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Falsche Berechnung von semi Volatility #234

Closed
simpsus opened this Issue Feb 8, 2015 · 5 comments

Comments

Projects
None yet
3 participants
@simpsus
Contributor

simpsus commented Feb 8, 2015

mir ist aufgefallen, dass die Werte von Vola und Semi Vola viel zu nah beieinander liegen.
Den Grund glaube ich auch gefunden zu haben:

stdDeviation = Math.sqrt(tempStandard / countStandard); semiDeviation = Math.sqrt(tempSemi / countSemi);

Du hast einen eigenen Counter für die Semi Vola eingeführt. Das ist falsch. tempSemi wird auch durch countStandard dividiert.

Lustig dass bei meinem ersten google Treffer auch genau darauf hingewiesen wird:
http://www.karteikarte.com/card/868498/p-semivolatilitaet-unterschied-zur-volatiltaet-interpretation

@buchen buchen added the bug label Feb 8, 2015

@buchen buchen added this to the 2015 Q1 Release milestone Feb 8, 2015

@buchen

This comment has been minimized.

Owner

buchen commented Feb 8, 2015

Mmmh... aus den statistischen Seiten werden ich nicht schlauer.

Z.B. http://www.cpslease.com/wie-mittlere-semi-varianz-berechnen/

Erstellen Sie eine Liste der Datenpunkte, die kleiner als der Mittelwert sind und bestimmen Sie die Anzahl der Datenpunkte, n, in dieser Ansicht. Dies ist unsere reduzierten Datensatzes. [...]
Summe der quadrierten Zahlen und teilen diese Summe durch n-1, wenn die Daten die Sie verwenden eine endliche Anzahl von Punkten festgelegt. Dies gibt die mittlere Halb Varianz für Ihren Datenbestand.

Oder hier http://www.investopedia.com/terms/s/semivariance.asp

1/n * ....
n = the total number of observations below the mean

Andrerseits https://www.bionicturtle.com/forum/threads/shortcut-to-calculating-semi-variance-mean-squared-deviation.6418/

So directly look for returns less than MAR -> and take their square deviations from MAR ->and sum up squares to get variance and divide by total portfolio retunrs(obs.) =>and finally sqrt to get result.

@simpsus

This comment has been minimized.

Contributor

simpsus commented Feb 8, 2015

Die erste Seite ist ganz übles deutsch. Wohl automatisch übersetzt. Auch wird dort gesagt, dass 1/n nur gilt, wenn n=unendlich ist. Das erscheint mir nicht sonderlich logisch. Der Grenzwert von 1/unendlich ist 0. und was soll es bringen n-1 zu nehmen wenn n nicht unendlich ist?

Bei der zweiten Seite steht es so da als würde man nur die negativen zählen. Da dieses n aber auch im Summenzeichen verwendet wird (um die negativen) aufzuaddieren würde ich auf den Fehler hier tippen, dass die erklärung des n mit dem Summenzeichen im Hinterkopf geschrieben wurde. Nur meine Vermutung.

Ich versuche mit dem ganzen logisch zu nähern. Die semi vola kann (wenn so berechnet wie ich denke) mit der vola eine deutliche aussage treffen:
Vola 5%, semi Vola 1%: Der Chart hat große Ausschläge nach oben, aber die Ausschläge nach unten sind viel geringer.
Vola 5%, semi Vola 2,5%: Genau die Hälfte der Vola ist in der semi. Also die Ausschläge nach oben und unten sind gleich groß.
Vola 5%, semi Vola 4%: Die Ausschläge nach oben haben praktisch keine vola, sind also gleich dem erwarteten return, wir haben einen Chart der fast linear nach oben verläuft mit gelegentlichen sehr steilen tälern.

@buchen

This comment has been minimized.

Owner

buchen commented Feb 8, 2015

Wegen der Links - ja, dass war auf die Schnelle ein paar Suchergebnisse... Lieber keinen als einen falschen Wert.

Für mich persönlich wäre es unlogisch durch die Gesamtanzahl zu teilen. Nehmen wir mal an die Ausschläge nach oben und unten wären gleich verteilt, d.h. das Chart hat ähnliche Ausschläge nach oben wie nach unten. Dann würde ich erwarten dass Volatilität und Semi-Volatilität gleich sind - die Ausschläge unterscheiden sich ja nicht. Aber wenn ich durch die Gesamtanzahl teile, dann ist die Semi-Volatilität nur halb so groß.

Das ist natürlich Definitionssache. Du verstehst "Vola 5%, semi Vola 2,5%" als die Ausschläge nach oben und unten sind gleich.

Ich habe jetzt auch noch mal in das PDF geschaut, dass Du in dem Pull Request verlinkt hast:
https://www.wiso.uni-hamburg.de/fileadmin/bwl/statistikundoekonometrie/Kindermann/QUIAM_SoSe_2009/quiam_sitzung02_sose09n.pdf
nach der Formel wird auch durch N geteilt, aber nur nach N' summiert. (Andrerseits kann ich die Rechnung nicht in "number" nachvollziehen)

@Beluk

This comment has been minimized.

Contributor

Beluk commented Feb 8, 2015

Handelt es sich bei der zu untersuchenden Daten um die Population (Grundgesamtheit), dann wird mit 1/n gewichtet:

Wird hingegen eine Stichprobe (Teil einer Population) untersucht,
so wird mit 1/(n-1) gewichtet.

1/(n-1) wird auch die korrigerte Stichprobenvarianz genannt, da sie die Freiheitsgrade korrigiert.

Siehe:
http://www.brinkmann-du.de/mathe/gost/bstat_01_07.htm

https://vowi.fsinf.at/wiki/TU_Wien:Statistik_und_Wahrscheinlichkeitstheorie_VO_%28Dutter%29/Ausarbeitung_m%C3%BCndlicher_Pr%C3%BCfungsfragen#Was_ist_die_Varianz.3F_Warum_n-1_Freiheitsgrade.3F

buchen added a commit that referenced this issue Feb 8, 2015

@buchen

This comment has been minimized.

Owner

buchen commented Feb 8, 2015

Fixed. Vielen Dank. Gut das noch heute gefunden zu haben.

Vola 5%, semi Vola 2,5%: Genau die Hälfte der Vola ist in der semi. Also die Ausschläge nach oben und unten sind gleich groß.

"Dieses Risikomaß eignet sich insbesondere für die Renditenverteilungen, die nicht symmetrisch sind, denn in den anderen Fällen entspricht die Semivolatilität multipliziert mit dem Faktor 'Wurzel aus 2' dem Wert der Volatilität"

Siehe auch https://books.google.de/books?id=xUh5AQAAQBAJ&pg=PA10&lpg=PA10&dq=berechnung+semivolatilität&source=bl&ots=ANzQ1pd3ll&sig=mPgqauMAsLwTwjMlCeX0l5r_dgI&hl=en&sa=X&ei=1LXXVOa5MurMygOA84CgBg&ved=0CC4Q6AEwAg#v=onepage&q=berechnung%20semivolatilität&f=false

@buchen buchen closed this Feb 8, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment