| |
|
|
p.specht
| Die Gauss-Verteilung ist durch die bekannte Glockenkurve gegeben. Fragt man, wie wahrscheinlich ein Ereignis über einem bestimmten Grenzwert zu liegen kommt, dann kommt es auf die Fläche unter der Glocke ab diesem Grenzwert an.
Flächen unter Kurven werden mathematisch als Integralfunktion dargestellt. Integrale ergeben sich oft als weitere, relativ leicht zu ermittelnde Formeln - dummerweise gerade im Falle der Gaußglocke aber nicht! Normalerweise müssen dann numerische Lösungsverfahren her (z.B. durch abschnittsweises Aufaddieren von Trapezflächen, in die man die Kurve zerhackt hat), um einen ungefähren Wert dieses Gauß-Integrals zu ermittelt. Das erscheint in der Praxis oft zu aufwendig, und man begnügt sich mit relativ einfach zu berechenden Näherungsformeln, die aber nur in einem eingeschränkten Wertebereich gelten.
Die umgekehrte Frage, nähmlich für eine vorgegebene Wahrscheinlichkeit (=Fläche) jenen vorgenannten Grenzwert zu ermitteln, kann dann duch Umstellung so einer Näherungsformel auf die andere Variable ermittelt werden. Das nachstehende Programm tut genau das. Man spricht dann von der "Inversen Gaussfunktion". Vorgegeben wird die Fläche (= Wahrscheinlichkeit), heraus kommt der gesuchte Grenzwert, von dem aus bis zum Wert "+Unendlich" diese Fläche der Gaussglocke abgeschnitten wird.
WindowTitle "Formel für die Inverse des Normalverteilungsintegrals"
' Quelle: https://jean-pierre.moreau.pagesperso-orange.fr/Basic/invnorm_bas.txt
' Transponiert nach XProfan 11.2a (D) Demo by P.Specht, Vienna/Austria
' No warranty whatsoever! Keine Gewähr, für garnix!
'****************************************************
'* Program to demonstrate inverse normal subroutine *
'* ------------------------------------------------ *
'* Reference: BASIC Scientific Subroutines, Vol. II *
'* By F.R. Ruckdeschel, BYTE/McGRAWW-HILL, 1981 [1].*
'* ------------------------------------------------ *
'* SAMPLE RUN: *
'* *
'* P(Z>X) X *
'* ---------------- *
'* 0.50 0.0000 *
'* 0.48 0.0500 *
'* 0.46 0.1002 *
'* 0.44 0.1507 *
'* 0.42 0.2015 *
'* 0.40 0.2529 *
'* 0.38 0.3050 *
'* 0.36 0.3580 *
'* 0.34 0.4120 *
'* 0.32 0.4673 *
'* 0.30 0.5240 *
'* 0.28 0.5825 *
'* 0.26 0.6430 *
'* 0.24 0.7060 *
'* 0.22 0.7719 *
'* 0.20 0.8414 *
'* 0.18 0.9152 *
'* 0.16 0.9944 *
'* 0.14 1.0804 *
'* 0.12 1.1751 *
'* 0.10 1.2817 *
'* 0.08 1.4053 *
'* 0.06 1.5551 *
'* 0.04 1.7511 *
'* 0.02 2.0542 *
'* *
'****************************************************
'DEFINT I-N
'DEFDBL A-H, O-Z
Declare i&,x!,y!,from!,to!,step!
CLS
PRINT
Print " Das Programm berechnet eine Näherung an das Integral der Gaussverteilung,"
Print " und zwar die Fläche zwischen x und +Inf (rechte Seite!). Dazu wird nach "
Print " Abramowitz/Stegun ein Rationales Polynom benutzt. Vorgegeben wird y, das "
Print " zugehörige X dazu wird berechnet. "
Print " Für y innerhalb [0 ... 0,5] ist die Genauigkeit besser als 0.0005"
Print
PRINT " P(Z>X) X "
PRINT "----------------"
from!=0.5:to!=0:step! = -0.02
y!=from!
i&=1
Repeat
S1000' Proc-Aufruf
Case x!<0.000001:x!=0
PRINT Format$(" 0.## ",y!),Tab(12),Format$("0.####",x!)
CaseNot i& Mod 15: WaitInput
inc i&
y!=y!+step!
Until y!<to!
PRINT
WaitInput
END
Proc S1000
'***********************************************
'* Inverse normal distribution subroutine *
'* ------------------------------------------- *
'* This program calculates an approximation to *
'* the integral of the normal distribution *
'* function from x to infinity (the tail). *
'* A rational polynomial is used. The input is *
'* in y, with the result returned in x. The *
'* accuracy is better then 0.0005 in the range *
'* 0 < y < 0.5. *
'* ------------------------------------------- *
'* Reference: Abramowitz and Stegun. *
'***********************************************
'Define coefficients
Declare c0!,c1!,c2!,d1!,d2!,d3!,z!
c0! = 2.515517
c1! = 0.802853
c2! = 0.010328
d1! = 1.432788
d2! = 0.189269
d3! = 0.001308
Case y!=0:x!=1E13
Case y!=0:Return
z!=Sqrt(-1*Ln(Sqr(y!)))
x! = 1+d1!*z!+d2!*Sqr(z!)+ d3!*z!*Sqr(z!)
x! = (c0!+c1!*z!+c2!*Sqr(z!))/x!
x! = z!-x!
EndProc
'End of file invnorm.prf
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 22.05.2021 ▲ |
|
|
|