The Normal Distribution

4.4/5 (5)

The standard normal distribution: the probability densityThe normal (or Gaussian) distribution is a very commonly occurring continuous probability distribution. Normal distributions are extremely important in statistics and are often used in the natural and social sciences for real-valued random variables whose distributions are not known.

The normal distribution is immensely useful because of the central limit theorem, which states that, under mild conditions, the mean of many random variables independently drawn from the same distribution is distributed approximately normally, irrespective of the form of the original distribution. Physical quantities that are expected to be the sum of many independent processes often have a distribution very close to the normal.

The standard normal distribution: areas under the curveFor a given probability the square of the standardized normal deviate corresponds to Chi-square with one degree of freedom. That special relationship is utilized in this program source code, which calculates the precise probability P corresponding to a given value of the standardized normal deviate Z.

The one-sided probability corresponds to the area under the normal curve from plus infinity to Z.

The method applied in the source code is based on series expansion. The results are accurate to 18 decimals.

[code language="vb"]         
#COMPILE EXE
#REGISTER NONE
#DIM ALL
'
FUNCTION ProbFromNormalDeviate(BYVAL Z AS EXT, BYVAL ED AS EXT) AS EXT
    LOCAL flag AS LONG, T, S, P AS EXT ' extended precision
    IF Z < 0 THEN flag = 1 ' negative Z Z = Z * Z P = PCHI2(Z,1) * 0.5 ' One-sided probability. Start with this. 
IF flag = 1 THEN P = 1.0 - P ' negative Z. Get complementary probability. 
P = P * ED ' Get one-sided or two-sided probability according to ED 
IF P > 1.0 THEN P = 1.0 ' never give a probability of more than one
    FUNCTION = P
END FUNCTION
'
FUNCTION PBMAIN
    LOCAL Result AS STRING, i1 AS LONG, P, OT AS EXT
    Result$ = INPUTBOX$("Enter Z , X-Sided (1 or 2)", _
              "1- or 2-sided Probability from Normal Deviate Z")
    i1&=INSTR(Result$,",")
    OT=VAL(MID$(Result$,i1&+1))
    IF OT=1.0 OR OT=2.0 THEN
        P = ProbFromNormalDeviate(VAL(LEFT$(Result$,i1&-1)), OT)
        MSGBOX "P="+FORMAT$(P," ##.##################" ),, _
        "Normal Deviate Z="+LEFT$(Result$,i1&-1)+"  "+STR$(OT)+"-sided"
    END IF
END FUNCTION
'
FUNCTION PCHI2(BYVAL X AS EXT, BYVAL F AS EXT) AS EXT
'
' FUNCTION PCHI2 - CALCULATES THE P-VALUE FROM
' THE CHI-SQUARE VALUE (X) AND THE DEGREES OF FREEDOM (F, must be integer)
' The probability is calculated using series expansions 26.4.4 and 26.4.5.
' In: Handbook of mathematical Functions. Editors: Abramowitz M & Stegun IA,
' Dover, New York, 1972.
' Original code by Erik Christensen
'
    LOCAL D, E, R, G, H, SL, S, T, P, C, SK, Q AS EXT ' extended precision
    Q = 1.0
    IF X > 0 AND F > 0 AND ROUND(F, 0) = F THEN
        D = F
        E = D / 2.0
        R = F - INT(F / 2.0) * 2.0
        G = 1.0
        IF R < 0.3 THEN ' F is even
            DO
                E = E - 1.0
                IF E < 1.8 THEN EXIT LOOP
                G = G * E
            LOOP
        ELSE            ' F is odd
            G = SQR(ATN(1.0) * 4.0) ' = sqrt(PI)
            DO
                E = E - 1.0
                IF E < 0.3 THEN EXIT LOOP
                G = G * E
            LOOP
        END IF
        H = ((X / 2.0) ^ (D / 2.0) * EXP(-X / 2.0)) / (X * G)
        SL = H * 2.0 * X / D
        S = 0.0
        T = 0.0
        P = 1.0
        DO
            D = D + 2.0
            P = P * X / D
            S = S + P
            C = ABS(S - T)
            IF C < 1.0E-18 THEN EXIT LOOP
            T = S
        LOOP
        SK = (S + 1.0) * SL
        Q = 1.0 - SK
        IF Q < 1.0E-18 THEN Q = 1.0E-18
    END IF
    FUNCTION = Q
END FUNCTION
                                             
[/code]

Enter normal deviate and 1 for one-sided or 2 for two-sided probability calculation

Results: one-sided probability of a standard normal deviate Z of -1.96

Please Rate This Page