Random Variate Generation: 3.1 Inverse Transform Method
Random Variate Generation: 3.1 Inverse Transform Method
3-1
3-2 RANDOM VARIATE GENERATION
If a column of random numbers is generated, then the vertical look-up function can be used
to generate the values of a random variate having the standard normal distribution. This
technique was used to generate 100 values of this random variate. A histogram of the results is
given in Figure 3.1.
Values of a normally distributed random variate, 𝑋, having mean 𝜇 and standard deviation 𝜎
may be found by using the usual transformation
𝑋−𝜇
𝑍= , i.e. 𝑋 = 𝜇 + 𝜎𝑍 ,
𝜎
SIMULATION NOTES 3-3
where 𝑍 has a standard normal distribution or, in the case of a spreadsheet, by using the
cumulative normal distribution function (as above) with mean 𝜇 and standard deviation 𝜎.
Placing the column for 𝑋 to the right of the column for 𝑍 in the above procedure effectively
produces the inverse of the cumulative distribution function. Whenever the inverse of the
cumulative distribution function for the random variate to be generated can be found in closed
form, is available in the software used, or can be given in a table, the inverse function
technique may be used. This technique is based on the observation that if the cumulative
distribution function for 𝑋 is 𝐹, if 𝐹 is continuous and one-to-one, and if 𝑅 is a random variable
that has a uniform[0, 1] distribution, then 𝐹 !! (𝑅) has the same distribution as 𝑋. Figure 3.2
below illustrates the technique, which is also called the inverse transform method.
Suppose we want to generate random variates having a uniform[𝑎, 𝑏] distribution. The linear
function ℎ given by ℎ(𝑟) = 𝑎 + (𝑏 − 𝑎)𝑟 would map the interval [0, 1] onto the interval [𝑎, 𝑏].
A possible way to generate a value for 𝑋 would be to generate a random number 𝑅 then to use
ℎ(𝑅) = 𝑎 + (𝑏 − 𝑎)𝑅 as the value. The inverse transform technique, illustrated below, should
give the same generator.
Figure 3.2: Inverse Transform Method
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
-6 -4 -2 0 2 4 6
The probability density function (pdf), 𝑓, and the cumulative distribution function (cdf), 𝐹,
for the uniform[𝑎, 𝑏] random variable, 𝑋, are given by
0 if 𝑥 < 𝑎,
1
if 𝑎 ≤ 𝑥 ≤ 𝑏, 𝑥−𝑎
𝑓 𝑥 = 𝑏−𝑎 and 𝐹 𝑥 = if 𝑎 ≤ 𝑥 ≤ 𝑏,
𝑏−𝑎
0 otherwise,
1 if 𝑥 > 𝑏.
Solving 𝑦 = (𝑥 − 𝑎)/(𝑏 − 𝑎) for 𝑥 in terms of 𝑦 yields
𝑥 = 𝑎 + 𝑏 − 𝑎 𝑦.
3-4 RANDOM VARIATE GENERATION
𝑋 = 𝑎 + 𝑏 − 𝑎 𝑅,
where 𝑅 is a random number, and is the same as was obtained above using a linear mapping of
the interval [0, 1] onto the interval [𝑎, 𝑏].
Another useful random variable generator that can be obtained using the inverse transform
method is the one for exponentially distributed random variables. One is needed whenever a
simulation of a Poisson process is to be done, since the time between occurrences of a Poisson
process has an exponential distribution. Let 𝑋 be a random variable that has an exponential
distribution with mean 𝛼 = 1/𝜆 (𝜆 is called the rate parameter). Then the cdf of 𝑋 is given by
!! !
𝐹 𝑥 = 1−𝑒 if 𝑥 ≥ 0, = 1 − 𝑒 !!" if 𝑥 ≥ 0,
0 otherwise 0 otherwise.
0 otherwise.
! ! !
This is a pdf since 𝑓 𝑥 ≥ 0 for all 𝑥 and !! 𝑓(𝑥) 𝑑𝑥 = ! 𝑥/2 𝑑𝑥 + !
3/4 𝑑𝑥 = 1. First we
must determine the cdf 𝐹. If 𝑥 < 0, then 𝐹(𝑥) = 0. If 0 ≤ 𝑥 ≤ 1, then
! ! ! !
𝑡 𝑡! 𝑥!
𝐹 𝑥 = 𝑓 𝑡 𝑑𝑡 = 0 𝑑𝑡 + 𝑑𝑡 = 0 + = .
!! !! ! 2 4 !
4
SIMULATION NOTES 3-5
If 1 ≤ 𝑥 ≤ 2, then
! ! !!
𝑡 3
𝐹 𝑥 = 𝑓 𝑡 𝑑𝑡 = 0 𝑑𝑡 + 𝑑𝑡 + 𝑑𝑡
!! !! ! 2 ! 4
1 3 ! 1 3 3𝑥 − 2
=0+ + 𝑡 = + 𝑥−1 =
4 4 ! 4 4 4
Check that 𝐹 1 = (3 1 − 2)/4 = 1/4 and 𝐹 2 = (3 2 − 2)/4 = 1, and so the values at the
endpoints match. In summary,
0 if 𝑥 < 0,
𝑥!
if 0 ≤ 𝑥 ≤ 1,
4
𝐹 𝑥 =
3𝑥 − 2
if 1 < 𝑥 ≤ 2,
4
1 if 𝑥 > 2.
We restrict the domain of 𝐹 to [0, 2] to obtain a one-to-one, and therefore, invertible, function.
Let 𝑅 = 𝐹(𝑥). If 0 ≤ 𝑅 ≤ 1/4, then it must be the image of some 𝑥 between 0 and 1. If
1/4 < 𝑅 ≤ 1, then it must be the image of some x between 1 and 2. Hence, if 0 ≤ 𝑅 ≤ 1/4, then
𝑅 = 𝑥 ! /4. Solving for 𝑥 gives 𝑥 = ± 4𝑅 = ±2 𝑅 and we take the + since we know 𝑥 lies
between 0 and 1. If 1/4 < 𝑅 ≤ 1, then 𝑅 = (3𝑥 − 2)/4. Solving for 𝑥 gives 𝑥 = (4𝑅 + 2)/3.
Thus our random variate generator is
2 𝑅 if 0 ≤ 𝑅 ≤ 1/4,
𝑋 = 4𝑅 + 2
if 1/4 < 𝑅 ≤ 1.
3
3.2 Using Excel’s Functions
There are several probability functions whose inverses are built into Excel. Thus they can be
used with the inverse transform method to generate random variates. Two of the most used are
the inverse of the Normal distribution and the inverse of the Gamma distribution. Care must be
taken when using an inverse function in Excel because the function is not always the
(mathematical) inverse of the cumulative distribution function.
The Normal distribution takes two parameters, the mean and the standard deviation of the
random variable. The Excel Help display for the function is shown in Figure 3.3. The format for
the function call is NORMINV(random_number, mean, standard_deviation). Thus to
generate a random variate having mean 2 and standard deviation 0.5, we would enter
=NORMINV(RAND(),2,0.5)
3-6 RANDOM VARIATE GENERATION
in the Excel cell where we wish the value to appear. It is good spreadsheet practice to never use
specific parameters in formulas, but to give each parameter its own cell and use cell references.
Thus we should enter the formula as shown in Figure 3.4. Notice that the $ in the formulas that
fixes the references to the parameter cells.
The Gamma distribution also requires two parameters. These two parameters are not as well
known as the ones for the Normal distribution. The two parameters are usually denoted by 𝛼 and
𝛽. They are related to the mean 𝜇 and the standard deviation 𝜎 of the distribution by the
following formulas:
𝜇 = 𝛼𝛽 and 𝜎 ! = 𝛼𝛽 ! .
We need to determine the probability of a value lying in each of the intervals. To do this, we
make use of Excel’s NORMDIST function, as shown in Figure 3.8, to find the cumulative
probability of the random variable being less than the bin value. These values are in Column G in
Figure 3.8. The probability of the random variable being in the subinterval is then found by
subtracting the cumulative value of the left end point from the cumulative value of the right end
point. These values are in column H in Figure 3.8. The expected number of values in a
subinterval may then be calculated by multiplying the probability by the total number of
observations (column I).
SIMULATION NOTES 3-9
Since the expected numbers of values in the first three cells are less than 5, pooling is
required. In order to get the required minimum of 5, we pool the first three cells with the fourth.
For the same reasons, we pool the last four cells. The same cells are pooled in the observed
(frequency) data. The results are shown in Figure 3.9. Observe that all the expected values are
now greater than 5.
The calculation of the Chi-square statistic proceeds as in Chapter 2. The degrees of freedom
parameter is calculated as the number of cells minus one minus the number of parameters
estimated. In this case, we estimated no parameters, since we knew the mean and standard
deviation of the population at the outset. Since we ended with 6 cells, the degree of freedom is 5.
The results are shown in Figure 3.10. We accept the null hypothesis that the data was drawn
from a Normal distribution with a p-value of 0.896.
In a more general setting, when the mean and standard deviation are estimated from the data,
the degrees of freedom would be 6 – 1 – 2 = 3. This would make our critical value at 90%
confidence (𝛼 = 0.10) equal to 6.25 and our p-value equal to 0.65. Thus we would still have
accepted the null hypothesis that the data came from the Normal distribution with mean 2 and
standard deviation 1/2.
3-10 RANDOM VARIATE GENERATION
With only 30 data points, the estimate of ln 2 may not be accurate enough. Even with 1000
pairs, the accuracy may be only one decimal (see Table 3.1).
3-12 RANDOM VARIATE GENERATION
Problems
1. Use a spreadsheet or a computer program to generate 100 values of an exponentially
distributed random variate having mean 0.5. Count the number of values of the random
variate in each subinterval of length 0.25 and obtain a histogram of the results.
2. Develop a random variate generator for a random variable 𝑋 with the pdf
𝑒 !! if 𝑥 < 0,
𝑓 𝑥 =
𝑒 !!! if 𝑥 ≥ 0.
3. Consider a random variable 𝑋 which has pdf
𝑥 if 0 ≤ 𝑥 ≤ 1,
𝑓 𝑥 = 2−𝑥 if 1 ≤ 𝑥 ≤ 2,
0 otherwise.
This distribution is called a triangular distribution with endpoints 0 and 2 and mode at 1.
Develop a random variate generator for this random variable.
5. Generate 100 random variates having a Normal distribution with mean 5 and standard
deviation 2. Obtain a histogram of the values generated and compare its shape to that
expected of a Normal distribution. Be sure to include the symmetry of the histogram in your
discussion.
6. Generate 100 random variates having a Gamma distribution with mean 5 and standard
SIMULATION NOTES 3-13
deviation 2. Obtain a histogram of the values generated and compare its shape to that
expected of a Gamma distribution. Be sure to include the symmetry of the histogram in your
discussion.
7. Use a Chi-square test to test the goodness-of-fit of the values generated in Problem 1 to an
exponential distribution.
8. Use a Chi-square test to test the goodness-of-fit of the values generated in Problem 5 to a
Normal distribution.
9. Use a Chi-square test to test the goodness-of-fit of the values generated in Problem 6 to a
Gamma distribution.
!
10. Use simulation to approximate ln 3 = !
1/𝑥 𝑑𝑥 . Use 1,000 points in your simulation.
11. Use simulation to approximate the area in the first quadrant that lies inside the circle with
radius 1 and center at the origin. Use your estimate to find an estimate of 𝜋. Use 1,000 points
in your simulation.
12. A large catalog merchandiser is planning to have a special furniture promotion a year from
now. To do this, the company must place its order for the furniture now. It plans to sign a
contract with the manufacturer for 3,000 chairs at a cost of $175 per unit, which the company
plans to offer initially for $250 per unit. The promotion will last for eight weeks, after which
all remaining units will be offered for sale at half the initial price, or $125 per unit. The
company believes that 2,000 units will be sold during the first eight weeks.
a. Based on these assumptions, setup an Excel spreadsheet model and determine the profit
that the company expects from the promotion.
Research suggests that the demand for the chair during the first eight weeks has a normal
(Gaussian) distribution with a mean of 2,000 chairs and standard deviation of 500 chairs. The
number of chairs ordered and the price per unit are known, but the actual selling price of the
chairs can be easily changed. The initial selling price will definitely be between $200 and
$300, but we have no reason to believe that any one value is more likely than another in this
range. Thus we assume the initial selling price of the chairs has a uniform distribution
between $200 and $300.
b. Simulate the special furniture promotion and obtain an estimate of the net profit the
company might receive.
c. Obtain both point and confidence interval estimates of the average profit that the
company might expect from the promotion. Discuss any differences between the
estimates using the continuous random variables (this exercise) and the estimates
obtained earlier using discrete random variables.
3-14 RANDOM VARIATE GENERATION
e. Finally we want to estimate the probability 𝑝, that the company will lose money on the
promotion. To obtain the point estimate, we simply divide the number of simulated
values that are negative by the total number. This gives us one estimate of the probability.
Now use Excel’s Table to generate at least 30 estimates of 𝑝. The average of these values
is 𝑝̂, the point estimate of 𝑝. The formula for a confidence interval estimate of a
proportion can be found in any introductory statistics text or on line at Wikipedia under
“Binominal proportion confidence interval” as
𝑝 1−𝑝
𝑝 ± 𝑧!!! !
𝑛
where 𝑝 is the proportion of successes in a Bernoulli trial process estimated from the
!
statistical sample, 𝑧!!! ! is the (1 − ! ) percentile of a standard normal distribution, and
𝑛 is the sample size.
Partial Solutions
ln(2𝑅) /2 if 0 ≤ 𝑅 ≤ 1/2,
2. 𝑋 =
−ln (2 1 − 𝑅 )/2 if 1/2 < 𝑅 ≤ 1.
2𝑅 if 0 ≤ 𝑅 ≤ 1,
3. 𝑋 =
2− 2 1−𝑅 if 1 < 𝑅 ≤ 2.