1. Home
  2. GRANDOM procedure

GRANDOM procedure

Generates pseudo-random numbers from probability distributions (D.M. Roberts & P.W. Lane).

Options

DISTRIBUTION = string token Type of distribution required (beta, chisquare, exponential, F, gamma, logNormal, Normal, t, uniform, Weibull, binomial, hypergeometric, Poisson); default Norm
NVALUES = scalar Number of values to generate; default 1
SEED = scalar Seed to start random number generation; default set by CALCULATE or continued from previous generation
MEAN = scalar Mean for distribution, except for Weibull or hypergeometric); default 0 for Normal distribution and 1 for Poisson and exponential, otherwise *
VARIANCE = scalar Variance for distribution, except for the Weibull or hypergeometric; must be positive; default *, except for Normal when default is 1
LOWER = scalar Lower bound for the uniform or beta distribution; default 0
UPPER = scalar Upper bound for the uniform or beta distribution; default 1
LOCATION = scalar Location parameter for the log-Normal, gamma or Weibull distribution; default 0
SCALE = scalar Scale parameter for the Weibull distribution; must be positive; default 1
SHAPE = scalar Shape parameter for the Weibull distribution; must be positive; default 1
ABETA = scalar First shape parameter for the beta distribution; must be positive; default 1
BBETA = scalar Second shape parameter for the beta distribution; must be positive; default 1
AGAMMA = scalar Location-scale parameter for the gamma distribution, must be positive, usually denoted by alpha or theta; default 1
BGAMMA = scalar Shape parameter for the gamma distribution, must be positive, usually denoted by beta or kappa; default 1
DF = scalar Number of degrees of freedom for the t or chi distribution, must be 1 or greater; default 1
DFNUMERATOR = scalar Number of degrees of freedom of the numerator for the F distribution, must be 1.0 or greater; default 1
DFDENOMINATOR = scalar Number of degrees of freedom of the denominator for the F distribution, must be 1.0 or greater; default 1
NBINOMIAL = scalar Number of binomial trials for the binomial distribution, must be positive; default 1
PROBABILITY = scalar probability of success for the binomial or hypergeometric distribution, must be positive and not greater than 1; default 0.5
NHYPERGEOMETRIC = scalar Number of elements for the hypergeometric distribution, must be positive; default 1
SSHYPERGEOMETRIC = scalar Sample size for the hypergeometric distribution, must be positive and less than NHYPERGEOMETRIC; default 1

Parameter

NUMBERS = scalar or variate The generated numbers are returned here; if the length of the supplied structure is defined, it must equal the setting of the NVALUES option

Description

GRANDOM generates pseudo-random numbers from the beta, chi-square, exponential, F, gamma, log-Normal, Normal, Student’s t, uniform, Weibull, binomial, hypergeometric and poisson distributions.

The NUMBERS parameter of GRANDOM must be set to a scalar or variate to store the generated numbers. The NVALUES option can be set to specify how many values are required; if this is unset, a single value is generated. The SEED option can be set to initialize the random-number generator, hence giving identical results if the procedure is called again with the same options. If SEED is unset, generation will continue from the previous sequence in the program, or, if this is the first generation, the generator will be initialized by CALCULATE.

Most distributions can be specified by their mean and variance. In GRANDOM these are defined by the MEAN and VARIANCE options. For some distributions there are other defining parameters, which are often more convenient. These can be set by other options relevant to the distribution concerned.

Normal distributions can be defined only by mean and variance; by default these are zero and one respectively. For the exponential and Poisson distributions, either one of these is sufficient to define the distribution and if neither is given the mean is set to one. For the Poisson if both are specified they must be equal, while for the exponential the variance is the square of the mean. The chi-square distribution can be defined by any one of the DF, MEAN or VARIANCE options (the mean is equal to the degrees of freedom, and the variance to twice the degrees of freedom). Similarly, the Student’s t distribution can be defined by either the DF or the VARIANCE option; if MEAN is set, it must be zero. The F distribution can be generated by setting either the MEAN and VARIANCE options or the DFDENOMINATOR and DFNUMERATOR options.

The binomial distribution can be specified either by the MEAN and VARIANCE options (with MEAN greater than VARIANCE), or by the NBINOMIAL and PROBABILITY options. However, the hypergeometric distribution cannot be specified by MEAN and VARIANCE: instead the three options PROBABILITY, NHYPERGEOMETRIC and SSHYPERGEOMETRIC must be used.

The uniform distribution in the range (0,1) can be generated by setting the single option DIST=uniform. However, you can set the MEAN and VARIANCE options, or the LOWER and UPPER options, to get a uniform distribution in any other range. Similarly, the beta distribution is generated by default in the range (0,1), by setting the MEAN and VARIANCE options, or the ABETA and BBETA options: the mean is A/(A+B) and the variance is AB/((A+B+1)×(A+B)2). By setting the LOWER and UPPER options, the four-parameter beta distribution is generated, within the specified range.

The two-parameter gamma distribution can be generated by setting either the MEAN and VARIANCE options, or the AGAMMA and BGAMMA options. (The mean is AB and the variance is AB2: A is sometimes denoted by α or θ, and B by β or κ.) The three-parameter gamma can be generated by setting the LOCATION option, which simply has the effect of shifting a two-parameter gamma distribution. Similarly, the two- and three-parameter log-Normal distributions can be generated, though using the SCALE and SHAPE options rather than AGAMMA and BGAMMA. (If LOCATION is zero, the mean is sc × exp(sh2/2) and the variance is sc2 × exp(sh2) × (exp(sh2)-1; the square of the shape parameter is the variance of the associated Normal distribution, and the log(SCALE) is the mean.) The three-parameter Weibull is defined also by the LOCATION, SCALE and SHAPE options: it cannot be specified in terms of MEAN and VARIANCE. (The mean of the distribution is LOCATION+SCALE×G(1+1/SHAPE) and the variance is SCALE2×G(1+2/SHAPE)-(G(1+1/SHAPE))2), where G() is the gamma function.)

Options: DISTRIBUTION, NVALUES, SEED, MEAN, VARIANCE, LOWER, UPPER, LOCATION, SCALE, SHAPE, ABETA, BBETA, AGAMMA, BGAMMA, DF, DFNUMERATOR, DFDENOMINATOR, NBINOMIAL, PROBABILITY, NHYPERGEOMETRIC, SSHYPERGEOMETRIC.

Parameter: NUMBERS.

Method

GRANDOM uses the “table look-up” method for the majority of the distributions, using the ED** functions in the CALCULATE directive. It uses the transformation method for the Weibull distribution, and the rejection method for the binomial, hypergeometric and Poisson distributions.

Action with RESTRICT

A variate that has been restricted will receive output from GRANDOM only in those units that are not excluded by the restriction. Values in the excluded units remain unchanged. Note that the NVALUES option must equal the full size of the variate.

See also

Directive: CALCULATE.

Procedures: GRCSR, GREJECTIONSAMPLE, GRLABEL, GRMULTINORMAL, GRTHIN, GRTORSHIFT, SAMPLE, SVSAMPLE.

Functions: GRBETA, GRBINOMIAL, GRCHISQUARE, GRF, GRGAMMA, GRHYPERGEOMETRIC, GRLOGNORMAL, GRNORMAL, GRPOISSON, GRSAMPLE, GRSELECT, GRT, GRUNIFORM.

Commands for: Calculations and manipulation.

Example

CAPTION   'GRANDOM example',\
          'Generate 250 values from the standard Normal distribution.';\
          STYLE=meta,plain
GRANDOM   [NVALUES=250; SEED=26354] Normal
" generate 250 gamma values, defining mean and variance "
GRANDOM   [DISTRIBUTION=gamma; MEAN=2.5; VARIANCE=5;\ 
          SEED=553616; NVALUES=250] Gamma1
" generate the same values, defining distribution parameters "
GRANDOM   [DISTRIBUTION=gamma; AGAMMA=1.25; BGAMMA=2;\ 
          SEED=553616; NVALUES=250] Gamma2
HISTOGRAM Normal,Gamma1,Gamma2
Updated on March 7, 2019

Was this article helpful?