1 / 11

Random-Number Generators (RNGs)

Random-Number Generators (RNGs). Algorithm to generate independent, identically distributed draws from the continuous UNIF (0, 1) distribution These are called random numbers in simulation Basis for generating observations from all other distributions and random processes

maili
Download Presentation

Random-Number Generators (RNGs)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Random-Number Generators (RNGs) • Algorithm to generate independent, identically distributed draws from the continuous UNIF (0, 1) distribution • These are called random numbers in simulation • Basis for generating observations from all other distributions and random processes • Transform random numbers in a way that depends on the desired distribution or process (later in this chapter) • It’s essential to have a good RNG • There are a lot of bad RNGs — this is very tricky • Methods, coding are both tricky f(x) 1 1 x 0 Simulation with Arena — Further Statistical Issues

  2. Linear Congruential Generators (LCGs) • The most common of several different methods • Generate a sequence of integers Z1, Z2, Z3, … via the recursion Zi = (aZi–1 + c) (mod m) • a, c, and m are carefully chosen constants • Specify a seed, Z0 to start off • “mod m” means take the remainder of dividing by m as the next Zi • All the Zi’s are between 0 and m – 1 • Return the ith “random number” as Ui = Zi/m Simulation with Arena — Further Statistical Issues

  3. Example of a “Toy” LCG • Parameters m = 63, a = 22, c = 4, Z0 = 19: Zi = (22 Zi–1 + 4) (mod 63), seed with Z0 = 19 i 22 Zi–1+4 ZiUi 0 19 1 422 44 0.6984 2 972 27 0.4286 3 598 31 0.4921 4 686 56 0.8889 : : : : 61 158 32 0.5079 62 708 15 0.2381 63 334 19 0.3016 64 422 44 0.6984 65 972 27 0.4286 66 598 31 0.4921 : : : : • Cycling — will repeat forever • Cycle length £m • (could be < m depending • on parameters) • Pick mBIG Simulation with Arena — Further Statistical Issues

  4. Issues with LCGs • Cycle length: £m • Typically, m = 2.1 billion (= 231 – 1) or more • Other parameters chosen so that cycle length = m or m – 1 • Statistical properties • Uniformity, independence • There are many tests of RNGs • Empirical tests • Theoretical tests — “lattice” structure (next slide …) • Speed, storage — both are usually fine • Must be carefully, cleverly coded — BIG integers • Reproducibility — streams (long internal subsequences) with fixed seeds Simulation with Arena — Further Statistical Issues

  5. The Arena RNG • LCG with: m = 231 – 1 = 2,147,483,647 a = 75 = 16,807 c = 0 • Cycle length = m – 1 • Ten different automatic streams with fixed seeds • Default stream number is 10 • Can access other streams after distributional parameters, e.g., EXPO (6.7, 4) for stream 4 • Good idea to use separate streams for separate purposes • SEEDS module (Elements panel) to get > the 10 automatic streams, specify seeds, name streams A well-tested generator in an efficient code. Simulation with Arena — Further Statistical Issues

  6. Generating Random Variates • Have: Desired input distribution for model (fitted or specified in some way), and RNG (UNIF (0, 1)) • Want: Transform UNIF (0, 1) random numbers into “draws” from the desired input distribution • Method: Mathematical transformations of random numbers to “deform” them to the desired distribution • Specific transform depends on desired distribution • Details in online Help about methods for all distributions • Do discrete, continuous distributions separately Simulation with Arena — Further Statistical Issues

  7. Generating from Discrete Distributions • Example: probability mass function • Divide [0, 1] into subintervals of length 0.1, 0.5, 0.4; generate U ~ UNIF (0, 1); see which subinterval it’s in; return X = corresponding value –2 0 3 Simulation with Arena — Further Statistical Issues

  8. Discrete Generation: Another View • Plot cumulative distribution function; generate U and plot on vertical axis; read “across and down” • Inverting the CDF • Equivalent to earlier method Simulation with Arena — Further Statistical Issues

  9. Generating from Continuous Distributions • Example: EXPO (5) distribution Density (PDF) Distribution (CDF) • General algorithm (can be rigorously justified): 1. Generate a random number U ~ UNIF(0, 1) 2. Set U = F(X) and solve for X = F–1(U) • Solving for X may or may not be simple • Sometimes use numerical approximation to “solve” Simulation with Arena — Further Statistical Issues

  10. Generating from Continuous Distributions (cont’d.) • Solution for EXPO (5) case: Set U = F(X) = 1 – e–X/5 e–X/5 = 1 – U –X/5 = ln (1 – U) X = – 5 ln (1 – U) • Picture (inverting the CDF, as in discrete case): Intuition (garden hose): More U’s will hit F(x) where it’s steep This is where the density f(x) is tallest, and we want a denser distribution of X’s Simulation with Arena — Further Statistical Issues

  11. Designing and Executing Simulation Experiments • Think of a simulation model as a convenient “testbed” or laboratory for experimentation • Look at different output responses • Look at effects, interaction of different input factors • Apply classical experimental-design techniques • Factorial experiments — main effects, interactions • Fractional-factorial experiments • Factor-screening designs • Response-surface methods, “metamodels” • CRN is “blocking” in experimental-design terminology Simulation with Arena — Further Statistical Issues

More Related