NORMAL Function

NORMAL (seed) ;

The NORMAL function generates pseudorandom numbers from the standard normal distribution (a mean of 0 and a standard deviation of 1). The seed argument is a numeric matrix or literal. The elements of the seed argument can be any integer value up to $2^{31}-1$.

You can also generate random values from the normal distribution by using the RANDGEN subroutine. The RANDGEN subroutine has excellent statistical properties and is preferred when you need to generate millions of random numbers.

The NORMAL function returns a matrix with the same dimensions as the argument. The first argument on the first call is used for the seed; if that value is 0, the system time is used for the seed. This function is equivalent to the DATA step function RANNOR.

The Box-Muller transformation of the UNIFORM function deviates is used to generate the numbers. The following statements produce the output shown in Figure 23.213:

seed = 123456;
c = j(5, 1, seed);        /* generate 5 numbers from the same seed */
b = normal(c);
print b;

Figure 23.213: Random Values Generated from a Normal Distribution

b
-0.109483
-0.348785
1.1202546
-2.513766
1.3630022


For generating millions of pseudorandom numbers, use the RANDGEN subroutine.