Quantile einer Normalverteilung berechnen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Aries
User
Beiträge: 51
Registriert: Mittwoch 21. August 2013, 01:19

Hallo, wenn ich für x-Werte wie folgt y-Werte berechne ...

y = 2,718...^-(x^2)

... mit welcher Formel berechne ich dann den x-Wert eines beliebigen Quantils dieser Normalverteilung?

Für das 0-Quantil kommt -∞ raus.
Für das 0,5-Quantil kommt 0 raus.
Für das 1-Quantil kommt ∞ raus.
Soviel ist schon mal klar.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo Aries,

Du hast eine Funktion f(x), integrierst sie -> F(x) und bildest die Umkehrfunktion F^-1(y). Dann kannst Du für y 0, 0.5 usw. einsetzen.
Aries
User
Beiträge: 51
Registriert: Mittwoch 21. August 2013, 01:19

Sirius3 hat geschrieben:Hallo Aries,

Du hast eine Funktion f(x), integrierst sie -> F(x) und bildest die Umkehrfunktion F^-1(y). Dann kannst Du für y 0, 0.5 usw. einsetzen.
Wenn ich die Funktion in einen Integralrechner eingebe, kommt irgendein Unsinn mit Errorfunktion raus:

http://www.integralrechner.de/#expr=2.7 ... x%C2%B2%29
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Deine Funktion ist nicht einmal eine Normalverteilung. Ich nehme mal an, dass du da einfach irgendwo ein e vergessen hast.

Zum Thema "error function" solltest du dir das hier durchlesen und dir mal die Funktionen erf und erfc im math-Modul anschauen.
Das Leben ist wie ein Tennisball.
Aries
User
Beiträge: 51
Registriert: Mittwoch 21. August 2013, 01:19

EyDu hat geschrieben:Deine Funktion ist nicht einmal eine Normalverteilung. Ich nehme mal an, dass du da einfach irgendwo ein e vergessen hast.
e ist 2,718...

Mir fällt allerdings auf, dass e garnicht nötig ist. Es funktioniert genauso gut auch mit irgendeiner anderen Zahl größer 1:
Z. B.:
2^-(x^2)
10^-(x^2)

Da kommt überall die Glockenkurve raus. Kann man hier ausprobieren: http://www.walterzorn.de/grapher/grapher.htm

Wenn ich jetzt 2^-(x^2) in den Integralrechner eingebe, wird das Ergebnis schon übersichtlicher:

√(π) * erf(√(ln(2)) * x) / (2 * √(ln(2)))

Allerdings habe ich keine Ahnung wie ich davon die Umkehrfunktion bilde und was ich mit dem erf mache.

Vor Jahren habe ich in Pascal mal einen ziemlich aufwendigen Weg gefunden die relativen Quantilpositionen einer Normalverteilung ohne Formel näherungsweise zu berechnen. (Für tausende x-Werte y-Werte berechnen; Anhand der y-Werte die Prozentränge berechnen; Nach dem entsprechenden Rang suchen.) Ich ahne wieder, warum ich das so machen musste.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Aries hat geschrieben:e ist 2,718...
Das siehst du mal, ich schaue mir keine Zahlen an wenn ich Konstaten erwarte ;-) Außerdem fehlt noch der Faktor vor dem Exponenten
Aries hat geschrieben:Mir fällt allerdings auf, dass e garnicht nötig ist. Es funktioniert genauso gut auch mit irgendeiner anderen Zahl größer 1:
Dann hast du keine Normalverteilung mehr. Du wirst eh nicht um die erf-Funktion rumkommen, denn Funktionen mit -x^2 im Exponenten sind nie integrierbar.
Aries hat geschrieben:Allerdings habe ich keine Ahnung wie ich davon die Umkehrfunktion bilde und was ich mit dem erf mache.
Ich hab dir doch einen Link zu Wikipedia gegeben und dich auf die erf- und erfc-Funktionen im math-Modul hingewiesen. Du musst einfach nur noch lesen und ein oder zwei Formeln umstellen.
Das Leben ist wie ein Tennisball.
Aries
User
Beiträge: 51
Registriert: Mittwoch 21. August 2013, 01:19

EyDu hat geschrieben:Dann hast du keine Normalverteilung mehr.
Doch, vielleicht meinst Du die Standardnormalverteilung.

Es sieht so aus als müsste man im Wesentlichen nur die Fehlerfunktion umkehren. Im englischen Wikipedia gibt es einen Artikel über die Probit-Funktion. Anscheinend handelt es sich dabei um genau das, was ich suche. http://en.wikipedia.org/wiki/Probit

Jetzt müsste ich nur noch wissen, wie man die Probit-Funktion in Python anwendet.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Aries hat geschrieben:
EyDu hat geschrieben:Dann hast du keine Normalverteilung mehr.
Doch, vielleicht meinst Du die Standardnormalverteilung.
Nein, ich meine die Normalverteilung. Im Exponenten fehlt mindestens noch ein 1/2 und vor dem e als Faktor noch die Normierung. Damit es eine Normalverteilung ist sollte das Integral unter der Kurve schon genau 1 betragen.

Ansonsten hilft dir ``scipy.special.erfinv`` sicher weiter. Keine Ahnung, warum ich erfc in den Raum geworfen habe, das ist hier ja überhaupt nicht brauchbar.
Das Leben ist wie ein Tennisball.
Aries
User
Beiträge: 51
Registriert: Mittwoch 21. August 2013, 01:19

EyDu hat geschrieben: Nein, ich meine die Normalverteilung. Im Exponenten fehlt mindestens noch ein 1/2 und vor dem e als Faktor noch die Normierung. Damit es eine Normalverteilung ist sollte das Integral unter der Kurve schon genau 1 betragen.
Ich sehe nicht, dass sich dadurch irgendetwas an der (relativen) Form der Glockenkurve ändert, und soweit ich weiß, ist die Bezeichnung Normalverteilung geknüpft.
BlackJack

Wikipedia sagt: „Wichtig ist, dass die gesamte Fläche unter der Kurve gleich 1, also gleich der Wahrscheinlichkeit des sicheren Ereignisses, ist.” Beziehungsweise die Englische: „Any normal distribution is a version of the standard normal distribution whose domain has been stretched by a factor σ (the standard deviation) and then translated by μ (the mean value). The probability density must be scaled by 1/σ so that the integral is still 1.”
Antworten