RNSTA
Generates pseudorandom numbers from a stable distribution.
Required Arguments
ALPHA — Characteristic exponent of the stable distribution. (Input)
This parameter must be positive and less than or equal to 2.
BPRIME — Skewness parameter of the stable distribution. (Input)
When BPRIME = 0, the distribution is symmetric. Unless ALPHA = 1, BPRIME is not the usual skewness parameter of the stable distribution. BPRIME must be greater than or equal to – 1 and less than or equal to 1.
R — Vector of length NR containing the random stable deviates. (Output)
Optional Arguments
NR — Number of random numbers to generate. (Input)
Default: NR = size (R,1).
FORTRAN 90 Interface
Generic: CALL RNSTA (ALPHA, BPRIME, R [, …])
Specific: The specific interface names are S_RNSTA and D_RNSTA.
FORTRAN 77 Interface
Single: CALL RNSTA (NR, ALPHA, BPRIME, R)
Double: The double precision name is DRNSTA.
Description
Routine RNSTA generates pseudorandom numbers from a stable distribution with parameters ALPHA and BPRIME. ALPHA is the usual characteristic exponent parameter α and BPRIME is related to the usual skewness parameter β of the stable distribution. With the restrictions 0 < α ≤ 2 and ‑1 ≤ β ≤ 1, the characteristic function of the distribution is
ϕ(t) = exp[–|t|α exp(–πiβ(1 ‑ |1 ‑ α|) sign(t)/2)] for α ≠ 1
and
ϕ(t) = exp[–|t|(1 + 2iβln|t|sign(t)/π)] for α = 1
When β = 0, the distribution is symmetric. In this case, if α = 2, the distribution is normal with mean 0 and variance 2; and if α = 1, the distribution is Cauchy.
The parameterization using BPRIME and the algorithm used here are due to Chambers, Mallows, and Stuck (1976). The relationship between BPRIME = βʹ and the standard β is
βʹ = ‑tan(π(1 ‑ α)/2) tan(‑πβ(1 ‑ |1 ‑ α|)/2) for α ≠ 1
and
βʹ = β for α = 1
The algorithm involves formation of the ratio of a uniform and an exponential random variate.
Comments
The routine RNSET can be used to initialize the seed of the random number generator. The routine RNOPT can be used to select the form of the generator.
Example
In this example, RNSTA is used to generate five pseudorandom symmetric stable variates with characteristic exponent 1.5. The tails of this distribution are heavier than those of a normal distribution, but not so heavy as those of a Cauchy distribution. The variance of this distribution does not exist, however. (This is the case for any stable distribution with characteristic exponent less than 2.)
USE RNSTA_INT
USE UMACH_INT
USE RNSET_INT
IMPLICIT NONE
INTEGER NR
PARAMETER (NR=5)
!
INTEGER ISEED, NOUT
REAL ALPHA, BPRIM, R(NR)
!
CALL UMACH (2, NOUT)
ALPHA = 1.5
BPRIM = 0.0
ISEED = 123457
CALL RNSET (ISEED)
CALL RNSTA (ALPHA, BPRIM, R)
WRITE (NOUT,99999) R
99999 FORMAT (' Stable random deviates: ', 5F9.4)
END
Output
Stable random deviates: 4.4091 1.0564 2.5463 5.6724 2.1656