Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Approximation der Normalverteilung

138 views
Skip to first unread message

Heiko Baumann

unread,
Jul 14, 2002, 10:51:20 AM7/14/02
to
Hallo zusammen,

ich haeb bei einer Programmieraufgabe das Problem, dass ich die y-Achse
(rel. Summenhäufigkeit) eines Diagramms nach der Projektion einer
Gauss-Kurve skalieren muss.
D.h. man nimmt die y-Achse und denkt sich eine Gausskurve an diese Achse als
x-Achse angetragen und projiziert jeden Wert der Gesamtfläche an die
y-Achse.

Bei der Umsetzung dieser Vorgabe habe ich nun leider Schwierigkeiten.
Zur Darstellung des y-Wertes "70%" brauche ich doch eigentlich nur den
Anteil unterhalb der Normalverteilungskurve, der 70% der Gesamtfläche
entspricht - doch wie bekomme ich den?

Mit einer Tabelle geht das ja fein, aber ich brauche das ja für jeden
beliebigen Wert..?
Angenommen meine y-Achse ist 10cm lang. Was ich also suche, ist sowas wie
eine explizite Formel, die mir zu jedem Wahrscheinlichkeitswert aus ]0;1[
angibt, wieviel cm das auf der Gauss-skalierten y-Achse entspricht. Oder
mathematisch: ich habe eine normalverteilte Stichprobe der Länge 100 - gibt
es eine Formel, die mir sagt, welchem Wert aus [0;100] z.B. 85% der Fläche
der Gausskurve entsprechen?

Bin ziemlich planlos, ist alles doch schon etwas länger her...
Danke für jeden Tipp!

Gruß, Heiko.

Kurt Watzka

unread,
Jul 14, 2002, 2:46:24 PM7/14/02
to
"Heiko Baumann" <bauman...@web.de> writes:

>Hallo zusammen,

>ich haeb bei einer Programmieraufgabe das Problem, dass ich die y-Achse

>(rel. Summenhaeufigkeit) eines Diagramms nach der Projektion einer
>Gauss-Kurve skalieren muss.

Das habe ich nicht verstanden, aber moeglicherweise behindert mich
das Wissen darueber, was Du eigentlich wollen solltest.

>D.h. man nimmt die y-Achse und denkt sich eine Gausskurve an diese Achse als

>x-Achse angetragen und projiziert jeden Wert der Gesamtflaeche an die
>y-Achse.

Auch das habe ich nicht verstanden. Nehmen wir einmal an Phi(z) sei
die Verteilungsfunktion der Standardnormalverteiung, d.h wenn Z
standardnormalverteilt ist, dann ist Phi(z) = P(Z \le z).

Nehmen wir weiter an, wird koennten die Umkehrfunktion von Phi(z)
ebenfalls einfach hinschreiben. Fuer welche der beiden Funktionen
willst Du denn eine Approximation haben, fuer die Verteilungsfunktion
oder deren Umkehrfunktion?

Um in deinen Worten zu sprechen: Phi(z) ist das Integral von -\infty
bis z ueber die Dichtefunktion der Standardnormaverteilung (die Du
vermutlich Gausskurve nennst)

>Bei der Umsetzung dieser Vorgabe habe ich nun leider Schwierigkeiten.
>Zur Darstellung des y-Wertes "70%" brauche ich doch eigentlich nur den

>Anteil unterhalb der Normalverteilungskurve, der 70% der Gesamtflaeche


>entspricht - doch wie bekomme ich den?

Die Frage verwirrt mich weiter. Vermutlich suchst du das 0,7-Quantil der
Standardnormalverteilung. Dafuer gibt es mehr oder weniger gute
und aufwendige Polynomapproximationen.



>Angenommen meine y-Achse ist 10cm lang. Was ich also suche, ist sowas wie
>eine explizite Formel, die mir zu jedem Wahrscheinlichkeitswert aus ]0;1[
>angibt, wieviel cm das auf der Gauss-skalierten y-Achse entspricht. Oder

>mathematisch: ich habe eine normalverteilte Stichprobe der Laenge 100 - gibt
>es eine Formel, die mir sagt, welchem Wert aus [0;100] z.B. 85% der Flaeche
>der Gausskurve entsprechen?

Was ist eine Stichprobe der Laenge 100? Dir ist grundsaetzlich klar, dass
die Standardnormalverteilung keinen beschraenkten Traeger hat? Will sagen,
dass das oben erwaehnte Phi die reelen Zahlen auf das Einheitsintervall
abbildet und damit zur Skalierung eher ungeeignet ist? Es gibt keine
Normalverteilung auf dem Intervall [0; 100]. Alle Normalverteilungen
sind Verteilungen auf den "Intervall" ]-\infty; \infty[.

Eine geschlossene From (vulgo explizite Formel) gibt es weder fuer die
Verteilungsfunktion der Standardnormalverteilung noch fuer denern Umkehr-
funktion.

So wie die Aufgabe gestellt ist ist sie aus prinzipiellen Gruenden nicht
loesbar. Gemeint ist vermutlich etwas anderes. Ich koennte mir z.B.
vorstellen, dass die Aufgabe lautet, Quantile der empirischen Verteilung
gegen die Quantile einer Normalverteilung (nicht: Standardnormalverteilung)
mit dem Stichprobenmittelwert als Erwartungswert und der Stichproben-
varianz als Varianz zu plotten. Das ist ein bekanntes und nuetzliches
Verfahren um die Anpassung einer empirischen Verteilung an eine
Normalverteilung "mit dem Auge" zu begutachten.

Dazu brauchst Du aber nur Quantile der Standardnormalverteilung (fuer
die es aber wieder keine geschlossene Form gibt) und Du musst die
Standardisierungstransformation umkehren koennen.

Wenn ich richtig geraten habe, bin ich auch bereit, eine Quelle fuer
einfache Polynomapproximationen zu nennen (fuer einen Plot sollten
die von der Qualitaet her reichen)

Kurt Watzka

--
| Kurt Watzka
| wat...@stat.uni-muenchen.de

Karl-Josef Schad

unread,
Jul 15, 2002, 4:06:51 AM7/15/02
to

"Heiko Baumann" <bauman...@web.de> schrieb im Newsbeitrag
news:ags35b$8u9$07$1...@news.t-online.com...
> Hallo zusammen,
>
> ich hab bei einer Programmieraufgabe das Problem, dass ich die y-Achse

> (rel. Summenhäufigkeit) eines Diagramms nach der Projektion einer
> Gauss-Kurve skalieren muss.
[snip]
Hallo Heiko,

Wenn ich Deine Frage richtig verstanden habe, möchtest Du aus der monoton
steigenden S-Kurve der Verteilungsfunktion p(X<x)= Phi(x) einer
normalverteilten Zufallsgröße X durch andere Skalierung der y-Achse einen
linearen Graphen machen (mit x waagerecht und y=g(p) senkrecht) oder ggf
umgekehrt.

In dieser Aufgabe stecken zwei Probleme:

1. Finden der Verteilungsfunktion Phi(z) einer Standard-Normal-verteilung,
die der üblichen Tabellendarstellung entspricht (z.B. Phi(1.22) = 0.8888 =
88.88%).

2. Aufstellen der Umkehrfunktion z=Phi^-1(p) der gefundenen
Verteilungs-Funktion Phi(z); Du willst die Tabelle ja umgekehrt aufschlagen
Phi^-1(67%)=+0.44 .

Für Aufg. 1 gibt es Näherungen, die auf der Auswertung von Potenzreihen
beruhen.

(z.B. in PASCAL geschrieben, auf 4-5 Stellen genau:

FUNCTION phi(z: real):real;

VAR i,j: INTEGER; s,t: real; b: ARRAY[1..5] OF real;

BEGIN

t :=1/(1+0.231642*abs((z)));

b[1]:=0.319382; b[2]:=-0.356564; b[3]:=1.78148;

b[4]:=-1.82126; b[5]:= 1.33027;

s:=0; FOR i:=5 DOWNTO 1 DO s:=(s+ b[i])*t;

s:=s*exp(-z*z/2)/sqrt(2*pi); IF z>0 THEN s:=1-s;

phi:=s;

END; )

Für Aufg. 2 kann mann die (eindeutige) Nullstelle von Phi(z)- p = 0 unter
Benutzung eines geeigneten Startwertes (z.B z[0]=0) mit dem Newton-Verfahren
durch folgende Iteration gewinnen:

z[n+1] = z[n]-p/Phi'(z[n]) wenn man benutzt, dass

Phi'(z)= phi(z) = exp(z*z/2)/sqrt(2*pi) ist.

Je nach benutzter Programmiersprache gibt es für Phi(z) auch fest gegebene
Implementierungen (ich glaube Erf o.ä. in C??).

Gruß

Karl-Josef

Heiko Baumann

unread,
Jul 15, 2002, 7:29:38 AM7/15/02
to
Hallo!

Ufff, Danke für die ausführliche Info - bin erst mal erschlagen.
Das mit der Stichprobenlänge = 100 war nur ein Beispiel.

Aber vielleicht anstelle vieler verwirrender Worte eine Beispielgrafik, wie
sie aussehen sollte:

rel. Summhäufigkeit [%]

11cm ^
99,99 -| *
10cm |
|
9cm 99,5 -| *
|
8cm |
95 -| *
7cm | *
|
6cm 70 -| *
|
5cm 40 -| *
|
4cm 10 -| *
|
3cm 1 -| *
|
2cm |
0,01-| *
1cm |
1E-4-|
0cm -----------------------------------------------> Messwert

Ich habe also einfach n Messpunkte, denen per Formel ihre rel.
Summenhäufigkeit zugewiesen wird. Diese Wertepaare sollen darsgestellt
werden, dummerweise aber eben nicht mit linear oder logarithmisch skalierter
y-Achse, sondern "Gauss-skaliert".

Konkrete Fragen:
a) 100% sollen 11cm auf der y-Achse entsprechen. Wieviel cm sind dann z.B.
40%? (In meinem gepinselten Diagramm wären es 5cm.)

b) Welcher Messwert würde bei 70% liegen?

Irgendwie denke ich schon, dass ich genau ->

> 2. Aufstellen der Umkehrfunktion z=Phi^-1(p) der gefundenen
> Verteilungs-Funktion Phi(z); Du willst die Tabelle ja umgekehrt
aufschlagen
> Phi^-1(67%)=+0.44 .
>

> Für Aufg. 2 kann mann die (eindeutige) Nullstelle von Phi(z)- p = 0 unter
> Benutzung eines geeigneten Startwertes (z.B z[0]=0) mit dem
Newton-Verfahren
> durch folgende Iteration gewinnen:
>
> z[n+1] = z[n]-p/Phi'(z[n]) wenn man benutzt, dass
>
> Phi'(z)= phi(z) = exp(z*z/2)/sqrt(2*pi) ist.

> Je nach benutzter Programmiersprache gibt es für Phi(z) auch fest gegebene
> Implementierungen (ich glaube Erf o.ä. in C??).
>

.... das brauche, bin mir aber nicht sicher!? Die Phi-Näherung ist super -
woher weisst du, dass ich das in Delhpi programmiere und daher das ideal
passt?? ;-)

Vielen Dank - Heiko!

Heiko Baumann

unread,
Jul 15, 2002, 7:37:04 AM7/15/02
to
>
> Das habe ich nicht verstanden, aber moeglicherweise behindert mich
> das Wissen darueber, was Du eigentlich wollen solltest.

;-)

> Auch das habe ich nicht verstanden. Nehmen wir einmal an Phi(z) sei
> die Verteilungsfunktion der Standardnormalverteiung, d.h wenn Z
> standardnormalverteilt ist, dann ist Phi(z) = P(Z \le z).
>

ok.

> Nehmen wir weiter an, wird koennten die Umkehrfunktion von Phi(z)
> ebenfalls einfach hinschreiben. Fuer welche der beiden Funktionen
> willst Du denn eine Approximation haben, fuer die Verteilungsfunktion
> oder deren Umkehrfunktion?
>

Ich brauche wohl beide Richtungen.

> Um in deinen Worten zu sprechen: Phi(z) ist das Integral von -\infty
> bis z ueber die Dichtefunktion der Standardnormaverteilung (die Du
> vermutlich Gausskurve nennst)

Ist das nicht korrekt? Huiii, sorry wenn ich da mit malapropistisch
verwendeten Begriffen zusätzliche Verwirrung schaffe!

> >Bei der Umsetzung dieser Vorgabe habe ich nun leider Schwierigkeiten.
> >Zur Darstellung des y-Wertes "70%" brauche ich doch eigentlich nur den
> >Anteil unterhalb der Normalverteilungskurve, der 70% der Gesamtflaeche
> >entspricht - doch wie bekomme ich den?
>
> Die Frage verwirrt mich weiter.

... gut, ich werde mich zusammenreißen...

>
> So wie die Aufgabe gestellt ist ist sie aus prinzipiellen Gruenden nicht
> loesbar. Gemeint ist vermutlich etwas anderes. Ich koennte mir z.B.
> vorstellen, dass die Aufgabe lautet, Quantile der empirischen Verteilung
> gegen die Quantile einer Normalverteilung (nicht:
Standardnormalverteilung)
> mit dem Stichprobenmittelwert als Erwartungswert und der Stichproben-
> varianz als Varianz zu plotten. Das ist ein bekanntes und nuetzliches
> Verfahren um die Anpassung einer empirischen Verteilung an eine
> Normalverteilung "mit dem Auge" zu begutachten.
>
> Dazu brauchst Du aber nur Quantile der Standardnormalverteilung (fuer
> die es aber wieder keine geschlossene Form gibt) und Du musst die
> Standardisierungstransformation umkehren koennen.
>
> Wenn ich richtig geraten habe, bin ich auch bereit, eine Quelle fuer
> einfache Polynomapproximationen zu nennen (fuer einen Plot sollten
> die von der Qualitaet her reichen)


Kurt - Danke. Ich glaube, du meinst das, was ich sollen wollte. Wollen
sollte. Auf jeden Fall das Richtige :-)

Für die Quellenangabe der Approximation wäre ich superdankbar. In der
anderen Antwort habe ich einen Beispielgraphen gezeichnet, dann wird
hoffentlich klarer, was ich möchte.

Vielen Dank für die Ausführungen!

Gruß, Heiko!

Karl-Josef Schad

unread,
Jul 15, 2002, 8:49:46 AM7/15/02
to
Hallo Heiko!

"Heiko Baumann" <bauman...@web.de> schrieb im Newsbeitrag

news:agubn1$dl3$03$1...@news.t-online.com...
> Hallo!
[gekürzt]


> Konkrete Fragen:
> a) 100% sollen 11cm auf der y-Achse entsprechen. Wieviel cm sind dann z.B.
> 40%? (In meinem gepinselten Diagramm wären es 5cm.)

Ich würde die 50%- Linie auf halbe Höhe setzen (also h50 = 5,5cm) und für
alle p aus [1%...99%] die Höhe
hp = 5,5cm + 2cm*g(p) wählen, wobei g(p) = Phi^-1(p) sein soll. Daraus
folgt:

h40 = 5,5cm+2cm*g(0,4) = 5,5cm+2cm*(-0.253342) = 4,99 cm

> b) Welcher Messwert würde bei 70% liegen?

h70 = 5,5cm+2cm*g(0,7) = 5,5cm+2cm*(+0.524397) = 6,55 cm
weitere Werte zum Vergleich

h01 = 5,5cm+2cm*g(0,05) = 5,5cm+2cm*(-2.326347) = 0,85cm
h05 = 5,5cm+2cm*g(0,05) = 5,5cm+2cm*(-1.644852) = 2,21cm
h10 = 5,5cm+2cm*g(0,1) = 5,5cm+2cm*(-1.281550) = 2,94cm
h99,5 = 5,5cm+2cm*g(0,995) = 5,5cm+2cm*(+2.575831) = 10,65cm

> > Newton-Verfahren
> > durch folgende Iteration gewinnen:
> >
> > z[n+1] = z[n]-p/Phi'(z[n])

Da habe ich mich vertan, es muss heißen:
z[n+1] = z[n] - (Phi(z[n])-p)/Phi'(z[n]) mit Phi'(z)= phi(z) =
exp(-z*z/2)/sqrt(2*pi)

Bei Nrmalverteiltung müssen die Punkte der Wertepaare (x, g(p)) annähern auf
einer steigenden Geraden liegen. Aus diesem Diagramm kann man dann auf der
(waagerechten) 50%-Linie die Schnittstelle my ablesen und auf der 84%-Linie
(0,84.. = g(1)) die Stelle my+sigma und damit grafisch Erwartungswert my und
Streuung sigma auswerten.

Gruß Karl-Josef

P.S. Wenn Du mit der Newton-Iteration nicht zurechtkommst, melde Dich
nochmal auf kjs...@gmx.de

Heiko Baumann

unread,
Jul 15, 2002, 10:46:48 AM7/15/02
to
Hallo Karl-Josef,

vielen Dank für deine Infos bzgl. meines Skalierungs-Problems! Wie du
richtig erwartet hast *g*, ist mir das von dir genannte Newtonverfahren
nicht geläufig :-(

> Ich würde die 50%- Linie auf halbe Höhe setzen (also h50 = 5,5cm) und für

> alle p aus [1%...99%] die Höhe

> hp = 5,5cm + 2cm*g(p) wählen, wobei g(p) = Phi^-1(p) sein soll.

So, dazu brauche ich also Phi^-1 (p).

Hier kommt das Newton-Verfahren ins Spiel...

> z[n+1] = z[n] - (Phi(z[n])-p)/Phi'(z[n]) mit Phi'(z)= phi(z) =
exp(-z*z/2)/sqrt(2*pi)

Also: ich kann Phi(z) mit dem Algorithmus aus deinem letzten Posting
berechnen, ok. phi(z) ist ebenfalls nach

exp(-z*z/2)/sqrt(2*pi) kein Problem.

Ich beginne meine Iteration mit z[0] = 0, beispielsweise für p=0,7.

Dann ist z[1] = 0 - Phi(0-p)/phi(z(n)), also

z[1] = Phi(-0,7)/phi(0) = 0,6065.

Damit kann ich dann nun z[2] = Wann wird abgebrochen? Ausprobieren zeigt
mir, dass sich in der Regel nach 4 Durchgängen nicht mehr viel (10^-4) tut.
Also mach ich das genau wie bei der Näherung von Phi mit 5 Durchgängen bzw.
sag while z[i] - z[i-1] > 0,000001 do.... und fertig?

Aber sonst ist das genau das, was ich brauchte - Danke.

Jetzt noch die Preisfrage: Ist das das für p=0,7 das "0,7-Quantil der
Standardnormalverteilung", von dem Kurt gesprochen hat??

Viele Grüße, Heiko!

Karl-Josef Schad

unread,
Jul 15, 2002, 12:23:03 PM7/15/02
to

"Heiko Baumann" <bauman...@web.de> schrieb im Newsbeitrag
news:agun8o$ecs$00$1...@news.t-online.com...

> Hallo Karl-Josef,
>
> vielen Dank für deine Infos bzgl. meines Skalierungs-Problems! Wie du
> richtig erwartet hast *g*, ist mir das von dir genannte Newtonverfahren
> nicht geläufig :-(
>
> > Ich würde die 50%- Linie auf halbe Höhe setzen (also h50 = 5,5cm) und
für
>
> > alle p aus [1%...99%] die Höhe
>
> > hp = 5,5cm + 2cm*g(p) wählen, wobei g(p) = Phi^-1(p) sein soll.
>
> So, dazu brauche ich also Phi^-1 (p).
>
> Hier kommt das Newton-Verfahren ins Spiel...

Das Newtonverfahren (=Tangenten-Verf.) bedeutet geometrisch, bei Kenntnis
von Wert f und Steigung f' an der Stelle a lässt sich die Tangentengleichung
t(x) = f(a)+f'(a)*(x-a) aufstellen und (wenn f'(x)<>0) nach der Nullstelle x
auflösen:
t(x) = 0 = f(a)+f'(a)*(x-a)
-f(a) = f'(a)*(x-a)
-f(a)/f'(a)= x-a => x = a - f(a)/f'(a)
woraus für x=z[n+1], a=z[n] und f=Phi die Iterationsformel folgt.

> > z[n+1] = z[n] - (Phi(z[n])-p)/Phi'(z[n]) mit Phi'(z)= phi(z) =
> exp(-z*z/2)/sqrt(2*pi)
>
> Also: ich kann Phi(z) mit dem Algorithmus aus deinem letzten Posting
> berechnen, ok. phi(z) ist ebenfalls nach
>
> exp(-z*z/2)/sqrt(2*pi) kein Problem.
>
> Ich beginne meine Iteration mit z[0] = 0, beispielsweise für p=0,7.
>
> Dann ist z[1] = 0 - Phi(0-p)/phi(z(n)), also

Hier hat sich ein Fehler eingeschlichen, es muss heißen:
z[1] = 0 - (Phi(0)-p)/phi(0) = 0 - (Phi(0)-p)/exp(-0*0/2)*sqrt(2*pi)
z[1] = - (0.5-0,7)/1*sqrt(2*pi)= +0.2* 2.5066
= 0,50131952 Zur Kontrolle gebe ich die weiteren Stellen der
Iteration an:
z[2] = 0.52426190
z[3] = 0.52439700
z[4] = 0.52439700 was sich um weniger als 1e-8 gegenüber z[3] verändert
hat.

Hier eine fertige Iterations-Prozedur in PASCAL/Delphi:

FUNCTION inv_Phi(p,eps:real):real; VAR z,zn:real;
BEGIN zn:=0;
repeat
z:=zn; zn:=z-(Phi(z)-p)/exp(-z*z/2)*sqrt(2*pi);
{writeln(zn:12:8); zur Kontrolle der Iteration}
until abs(zn-z)<eps;
inv_Phi:=zn;
END;

> Jetzt noch die Preisfrage: Ist das das für p=0,7 das "0,7-Quantil der
> Standardnormalverteilung", von dem Kurt gesprochen hat??
>

Ja, z=Phi^-1(0,7) nennt man 7. Dezil oder 70. Perzentil oder 0,7-Quantil der
Standard-Normalverteilung, was bedeutet, dass 7/10 bzw. 70/100 oder ein
Anteil von 0,7 der Glockenkurven-Fläche links von dieser Abszisse
eingeschlossen wird, für die allg. NV müssen die z-Quantile natürlich noch
zu x-Quantilen transformiert werden (x = my + z*sigma).

Gruß Karl-Josef


Markus Diehl

unread,
Jul 15, 2002, 2:25:31 PM7/15/02
to
Grüß dich, Heiko!

Die Umkehrfunktion der Standardnormalverteilung gibt es doch sogar in EXCEL,
und es würde mich wundern, wenn das in anderen Standardprodukten nicht aucht
so ist. Wozu willst du denn unbedingt polynomial interpolieren?

Tschö, Markus
--
Markus Diehl und Gesa Schoeyen
Gruitener Strasse 5c
40822 Mettmann
Germany


"Heiko Baumann" <bauman...@web.de> schrieb im Newsbeitrag

news:aguc4v$2m5$00$1...@news.t-online.com...


> >
> > Das habe ich nicht verstanden, aber moeglicherweise behindert mich
> > das Wissen darueber, was Du eigentlich wollen solltest.
>
> ;-)
>
> > Auch das habe ich nicht verstanden. Nehmen wir einmal an Phi(z) sei
> > die Verteilungsfunktion der Standardnormalverteiung, d.h wenn Z
> > standardnormalverteilt ist, dann ist Phi(z) = P(Z \le z).
> >
> ok.
>
> > Nehmen wir weiter an, wird koennten die Umkehrfunktion von Phi(z)
> > ebenfalls einfach hinschreiben. Fuer welche der beiden Funktionen
> > willst Du denn eine Approximation haben, fuer die Verteilungsfunktion
> > oder deren Umkehrfunktion?
> >
> Ich brauche wohl beide Richtungen.

> (...)

Heiko Baumann

unread,
Jul 15, 2002, 4:11:11 PM7/15/02
to
Hi Markus...

>
> Die Umkehrfunktion der Standardnormalverteilung gibt es doch sogar in
EXCEL,
> und es würde mich wundern, wenn das in anderen Standardprodukten nicht
aucht
> so ist. Wozu willst du denn unbedingt polynomial interpolieren?

Weil ich das in einem Delphi-Programm brauche und daher auf Excel nicht
zugreifen will/kann, in den Standard-Libraries ist das meines Wissens nicht
implementiert.
Du meinst ein Excel die Funktion NORMINV(p;Mittelwert;Standardabw), oder?

Trotzdem Danke! Gruß, Heiko.


Kurt Watzka

unread,
Jul 16, 2002, 3:56:41 AM7/16/02
to
"Heiko Baumann" <bauman...@web.de> writes:

>> Dazu brauchst Du aber nur Quantile der Standardnormalverteilung (fuer
>> die es aber wieder keine geschlossene Form gibt) und Du musst die
>> Standardisierungstransformation umkehren koennen.
>>
>> Wenn ich richtig geraten habe, bin ich auch bereit, eine Quelle fuer
>> einfache Polynomapproximationen zu nennen (fuer einen Plot sollten
>> die von der Qualitaet her reichen)


>Fuer die Quellenangabe der Approximation waere ich superdankbar. In der


>anderen Antwort habe ich einen Beispielgraphen gezeichnet, dann wird

>hoffentlich klarer, was ich moechte.

Einige Polynomapproximationen zur Auswahl bietet Abramowitz und Stegun,
Handbook of Mathematical Functions, 1964, wobei 26.2.23 mit Vorsicht zu
behandeln ist. 26.2.22 oder Nullstellensuche mit Hilfe von einer der
Approximationen von 26.2.16 bis 26.2.19 ist wohl die Methode der
Wahl. Die Nullstellensuche in Phi(z) - p ist besonders dann sinnvoll,
wenn das Ergebnis konsistent umkehrbar sein muss.

Heiko Baumann

unread,
Jul 17, 2002, 1:18:42 PM7/17/02
to
Hallo nochmal,

bin noch am Kämpfen... ein kleines Probleme ist noch übrig:

> > > hp = 5,5cm + 2cm*g(p) wählen, wobei g(p) = Phi^-1(p) sein soll.
>

weshalb die "2cm*"?


>
> >
> > Hier kommt das Newton-Verfahren ins Spiel...

Abgehakt. Funktioniert prima!

> > Jetzt noch die Preisfrage: Ist das das für p=0,7 das "0,7-Quantil der
> > Standardnormalverteilung", von dem Kurt gesprochen hat??
> >
> Ja, z=Phi^-1(0,7) nennt man 7. Dezil oder 70. Perzentil oder 0,7-Quantil
der
> Standard-Normalverteilung, was bedeutet, dass 7/10 bzw. 70/100 oder ein
> Anteil von 0,7 der Glockenkurven-Fläche links von dieser Abszisse
> eingeschlossen wird, für die allg. NV müssen die z-Quantile natürlich noch
> zu x-Quantilen transformiert werden (x = my + z*sigma).

Tja, da waren sie wieder, meine kleinen Problemchen :-))

Hier mal eine Liste von Werte mit p (in %) und die entspr. Werte für
inv_phi(p,0.001):

0.0001 -3,71909014668979
20 -0,841618555339554
40 -0,253342615096554
60 0,253342615096617
80 0,841618555339573
99.9999 8,50212454304239


Excel spuckt mir für die p-Quantile (wieder was gelernt *g*) die Werte

0,00001 -1,095002163
0,2 0,185156188
0,4 0,405109748
0,6 0,594560252
0,8 0,814513812
0,999 1,655264926

aus, was sicher die "richtigen" sind, da hier noch der Mittelwert und die
Stabw. mit eingerechnet sind. Du hast bereits die Transformation
angesprochen:
anstelle von inv_phi(z) berechne ich inv_phi(mittelwert + z*standardabw).
Dann erhalte ich für obige z die Werte

-0,000398084168685241
0,188129039449257
0,383679337525076
0,595278762737671
0,837880143701627
1,14240286212591

.. was der Sache schon recht nahe kommt. Der letzte Wert (z=0.999) ist etwas
stark abweichend - woran kann das liegen?


Das Ziel (hoffentlich!) vor Augen grüßt dich herzlich

Heiko!


Karl-Josef Schad

unread,
Jul 17, 2002, 2:15:03 PM7/17/02
to

"Heiko Baumann" <bauman...@web.de> schrieb im Newsbeitrag
news:ah48tj$iol$05$1...@news.t-online.com...

> Hallo nochmal,
>
> bin noch am Kämpfen... ein kleines Probleme ist noch übrig:
>
> > > > hp = 5,5cm + 2cm*g(p) wählen, wobei g(p) = Phi^-1(p) sein soll.
> >
>
> weshalb die "2cm*"?

Damit der Bereich zwischen 0cm und 11cm, den Du vorgeschlagen hast,
möglichst voll genutzt wird;
er gilt dann für die meisten %-Anteile von p nämlich für p aus [0,3%..99,7].

> > > Jetzt noch die Preisfrage: Ist das das für p=0,7 das "0,7-Quantil der
> > > Standardnormalverteilung", von dem Kurt gesprochen hat??
> > >
> > Ja, z=Phi^-1(0,7) nennt man 7. Dezil oder 70. Perzentil oder 0,7-Quantil
> der
> > Standard-Normalverteilung, was bedeutet, dass 7/10 bzw. 70/100 oder ein
> > Anteil von 0,7 der Glockenkurven-Fläche links von dieser Abszisse
> > eingeschlossen wird, für die allg. NV müssen die z-Quantile natürlich
noch
> > zu x-Quantilen transformiert werden (x = my + z*sigma).
>
> Tja, da waren sie wieder, meine kleinen Problemchen :-))
>
> Hier mal eine Liste von Werte mit p (in %) und die entspr. Werte für
> inv_phi(p,0.001):
>
> 0.0001 -3,71909014668979
> 20 -0,841618555339554
> 40 -0,253342615096554
> 60 0,253342615096617
> 80 0,841618555339573
> 99.9999 8,50212454304239

Die stimmen bis auf den letzten Wert ganz gut.

> Excel spuckt mir für die p-Quantile (wieder was gelernt *g*) die Werte
>
> 0,00001 -1,095002163
> 0,2 0,185156188
> 0,4 0,405109748
> 0,6 0,594560252
> 0,8 0,814513812
> 0,999 1,655264926

Wenn Du eine Excel-Tabelle anlegtst und in Spalte A die Werte links und in
Spalte B
jeweils den notwendigen Formelausdruck
=NORMINV(A..;0;1) (* 0=my; 1=sigma für die Standard-NV *)schreibst, erhältst
Du Werte, die in den ersten 5-6 Nachkommastellen mit den aus den Funktionen
Phi und inv_Phi berechneten übereinstimmen.

Die Excel-Funktion QUANTIL macht etwas anderes:
Zu einer gegebenen empirischen Datenreihe
(z.B. A3..A10) als erstes und einem p als zweites Argument berechnet es
intern Mittelwert m und Standardabweichung s und berechnet daraus nach x = m
+ s*g(p) die Lage des gesuchten p-Quantils (als x-Wert).


> aus, was sicher die "richtigen" sind, da hier noch der Mittelwert und die
> Stabw. mit eingerechnet sind. Du hast bereits die Transformation
> angesprochen:
> anstelle von inv_phi(z) berechne ich inv_phi(mittelwert + z*standardabw).
> Dann erhalte ich für obige z die Werte
>
> -0,000398084168685241
> 0,188129039449257
> 0,383679337525076
> 0,595278762737671
> 0,837880143701627
> 1,14240286212591
>
> .. was der Sache schon recht nahe kommt. Der letzte Wert (z=0.999) ist
etwas
> stark abweichend - woran kann das liegen?

Das liegt am Newton-Verfahren, das ungenau wird, wenn f'(x) der Null zu nahe
kommt:
Wenn z nach - oder + Unendlich strebt, verläuft die Funktion Phi immer
flacher, d.h. die Steigung geht nach 0 und damit wächst die Empfindlichkeit
des Terms (Phi(z)-p)/Phi'(z). Die Tangenten schneiden die x-Achse immer
flacher und das Verfahren konvergiert schlecht und wird ungenau.

Gruß Karl-Josef

Heiko Baumann

unread,
Jul 17, 2002, 3:35:14 PM7/17/02
to
So, jetzt blick ich langsam überhaupt nicht mehr durch:

Ziel war, die lineare Achse normalverteilt zu skalieren. Das geht mit

hp = 5,5cm + 2cm*g(x), wobei g(x) = Phi^-1(x)

und x transformiert wird mit x = my + z*sigma(p), p aus ]0;1[.

Lassen wir die Konstanten mal weg, das ist nur zur Streckung, also

hp = g(x)

Damit bekomme ich für die Daten


p= 1E-5 0,2 0,4 0,6 0,8 0,999
die Werte
hp=-0,000398 0,1881 0,38367 0,595278 0,8378801 1,1424028

mit my = 0,499835 und sigma = 0,373895931176043


Wie geht das jetzt in die andere Richtung???
Eigentlich hätte ich gedacht, dass phi(hp) = p, aber dem ist leider nicht
so. Sind das jetzt alles nur Unzulänglichkeiten, die sich aus den
Näherungsverfahren ergeben oder bin ich inzwischen vor lauter Ringen um
Einsicht und Respekt vor deinen Ausführungen komplett abgedreht??

Ein planloser Gruß - Heiko!

Karl-Josef Schad

unread,
Jul 17, 2002, 6:53:55 PM7/17/02
to

"Heiko Baumann" <bauman...@web.de> schrieb im Newsbeitrag
news:ah4gti$3f3$06$1...@news.t-online.com...

> So, jetzt blick ich langsam überhaupt nicht mehr durch:
>
> Ziel war, die lineare Achse normalverteilt zu skalieren.

Waagerecht sollen die Werte einer NV-verteilten Variablen x aufgetragen
werden.
Senkrecht soll anstelle der linear angetragenen summierten
Wahrscheinlichkeit p(X<x) die normalverteilte Skalierung z=Phi^-1(p) benutzt
werden. Man kann dies unmittelbar machen und erhält dann statt der p-Werte
aus [0,003 .. 0,997] ein z-Intervall von [-2,75..+2,75] oder ein h-Intervall
von [0cm..11cm](nach Streckung von z auf z*2cm und anschließender
Verschiebung nach hp = z*2cm + 5,5cm.

Wenn Du die z-Werte unmittelbar auf der vertikalen Achse anträgst, dann gilt
natürlich genau
Phi(z)= p als Umkehrung von z = Phi^-1(p)
Sonst muß hp erst standardisiert werden ( z = (hp-5,5cm)/2cm) und dann gilt:
Phi(z) = Phi((hp-5.5cm)/2cm) = p


> hp = g(x)

Falsch!! g wird nie auf die x angewendet, sondern immer nur auf die x
zugeordneten p-Werte!

> Wie geht das jetzt in die andere Richtung???

> Eigentlich hätte ich gedacht, dass Phi(hp) = p, aber dem ist leider nicht
> so.

Vergleiche mit oben, es gilt Phi(z) = p = Phi((hp-5.5cm)/2cm).

Hoffentlich ist es jetzt klarer geworden.

Gruß Karl-Josef


Heiko Baumann

unread,
Jul 17, 2002, 7:14:48 PM7/17/02
to
Wahnsinn - zu dieser Uhrzeit noch fachkundige Antwort... bin sprachlos :-))
Werds mir morgen anschauen, heut ist Feierabend...

Merci, H!


0 new messages