ierg 3050 week 6 generating random variates

70
IERG 3050 Week 6 Generating Random Variates Bolei Zhou Department of Information Engineering The Chinese University of Hong Kong

Upload: others

Post on 15-Oct-2021

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IERG 3050 Week 6 Generating Random Variates

IERG 3050 Week 6Generating Random Variates

Bolei ZhouDepartment of Information Engineering

The Chinese University of Hong Kong

Page 2: IERG 3050 Week 6 Generating Random Variates

Announcement

• Pick up your graded homework 1• After class today• Go to TA’s tutorials or office hour or by appointment at SHB 702

• This week’s tutorial will go through homework 1 and homework 2 briefly• Work on your homework 2 (no need to hand in)• Prepare for Quiz 1 next Wed (Oct.16)

Page 3: IERG 3050 Week 6 Generating Random Variates

Outline• Generating random variates from U(0, 1) (a.k.a. generating

random numbers)• Linear congruential generators (LCGs)• Testing pseudo-random number generators (PRNGs)

• Generating random variates from arbitrary distributions • Inverse transform method• Acceptance/Rejection method• Composition method• Convolution method

• Reading: Chapters 7 and 8

□ Acknowledgement: Prof. Minghua Chen, Prof. Rosana Chan, Prof. Angela Zhang, Prof. Jianwei Huang, and Prof. Pascal Vontobel for contributing to the slides

3

Page 4: IERG 3050 Week 6 Generating Random Variates

Be careful about the saying

4

Page 5: IERG 3050 Week 6 Generating Random Variates

Random-Number Generation

5

Page 6: IERG 3050 Week 6 Generating Random Variates

Criteria for PRNGs

6

Page 7: IERG 3050 Week 6 Generating Random Variates

Example code

import randomrandom.seed(3)random.random()random.random()

Page 8: IERG 3050 Week 6 Generating Random Variates

Arithmetic way to generate ‘Random’ numbers

• First arithmetic generator by Von Neumann and Metropolis in 1940s• Midsquare method:

1. Let Z0 be a four-digit positive integer such as 71822. Square Z0 to make it eight digit number3. take the middle four digits as next four digit Z1, U1 be the 0.Z1

4. Repeat

Page 9: IERG 3050 Week 6 Generating Random Variates

Problem with the Midsquare method

• It has a strong tendency to degenerate rapidly to zero and stay there forever• Better solution for sequential arithmetic random number generator

given Z0

Zi = f(Zi-1)Ui = g(Zi)

Page 10: IERG 3050 Week 6 Generating Random Variates

Linear Congruential Generators (LCGs)

10

Page 11: IERG 3050 Week 6 Generating Random Variates

Example 1

11

Page 12: IERG 3050 Week 6 Generating Random Variates

Example 2

12

Page 13: IERG 3050 Week 6 Generating Random Variates

LCGs

13

Page 14: IERG 3050 Week 6 Generating Random Variates

Period is determined by the parameters

Page 15: IERG 3050 Week 6 Generating Random Variates

Period of LCGs

15

m is usually very large, say 109 or more (a billion possible values)

Page 16: IERG 3050 Week 6 Generating Random Variates

Full-Period Theorem

16

Page 17: IERG 3050 Week 6 Generating Random Variates

Desired Properties of LCG

17

Page 18: IERG 3050 Week 6 Generating Random Variates

LCG with c = 0: Multiplicative LCG

18

Page 19: IERG 3050 Week 6 Generating Random Variates

Integer Overflow

19

b = 4

Page 20: IERG 3050 Week 6 Generating Random Variates

Some “Good” LCGs (with One Exception)

20

Page 21: IERG 3050 Week 6 Generating Random Variates

Parameters in common use

Page 22: IERG 3050 Week 6 Generating Random Variates

Testing Random Number Generators

22

Page 23: IERG 3050 Week 6 Generating Random Variates

Uniformity Test

23

Page 24: IERG 3050 Week 6 Generating Random Variates

Uniformity Test: Example

24

Page 25: IERG 3050 Week 6 Generating Random Variates

Higher-Dimensional Uniformity Test (Serial Test)

25

Page 26: IERG 3050 Week 6 Generating Random Variates

Runs-Up Test

26

It is a test of independence only, not for uniformity

Page 27: IERG 3050 Week 6 Generating Random Variates

Runs-Up Test

27

Page 28: IERG 3050 Week 6 Generating Random Variates

Runs-Up Test

28

Page 29: IERG 3050 Week 6 Generating Random Variates

Runs-Up Test

Page 30: IERG 3050 Week 6 Generating Random Variates

Correlation Test

Page 31: IERG 3050 Week 6 Generating Random Variates

Outline• Generating random variates from U(0, 1) (a.k.a.

generating random numbers)• Linear congruential generators (LCGs)• Testing pseudo-random number generators (PRNGs)

• Generating random variates from arbitrary distributions

31

Page 32: IERG 3050 Week 6 Generating Random Variates

Generating random variates from arbitrary distributions

32

Page 33: IERG 3050 Week 6 Generating Random Variates

Inverse-Transform Method

33

Page 34: IERG 3050 Week 6 Generating Random Variates

Proof of Inverse-Transform Method

34

Page 35: IERG 3050 Week 6 Generating Random Variates

Intuition of Inverse-Transform Method

View f(x) as the slope function of F(x)

Page 36: IERG 3050 Week 6 Generating Random Variates

Intuition of Inverse-Transform Method

View f(x) as the slope function of F(x)

Page 37: IERG 3050 Week 6 Generating Random Variates

Example

37

Page 38: IERG 3050 Week 6 Generating Random Variates

Exercise

38

Page 39: IERG 3050 Week 6 Generating Random Variates

Another Example

39

Page 40: IERG 3050 Week 6 Generating Random Variates

Inverse Transform Method for Discrete Random Variates

40

Page 41: IERG 3050 Week 6 Generating Random Variates

Acceptance/Rejection Method

41

Page 42: IERG 3050 Week 6 Generating Random Variates

Motivating Example 1

42

Page 43: IERG 3050 Week 6 Generating Random Variates

Motivating Example 1

43

Page 44: IERG 3050 Week 6 Generating Random Variates

Motivating Example 2

44

Page 45: IERG 3050 Week 6 Generating Random Variates

Motivating Example 2

45

Page 46: IERG 3050 Week 6 Generating Random Variates

Motivating Example 2

46

Page 47: IERG 3050 Week 6 Generating Random Variates

Motivating Example 2

47

(a)

Page 48: IERG 3050 Week 6 Generating Random Variates

Motivating Example 2

48

Page 49: IERG 3050 Week 6 Generating Random Variates

Acceptance/Rejection Method

49

Page 50: IERG 3050 Week 6 Generating Random Variates

Acceptance/Rejection Method

50

Page 51: IERG 3050 Week 6 Generating Random Variates

Acceptance/Rejection Method

51

Page 52: IERG 3050 Week 6 Generating Random Variates

Composition Method

52

Page 53: IERG 3050 Week 6 Generating Random Variates

Composition Method

53

Page 54: IERG 3050 Week 6 Generating Random Variates

Example 1

54

Page 55: IERG 3050 Week 6 Generating Random Variates

Example of combining three generation techniques

55

Textbook. Example 8.7

Page 56: IERG 3050 Week 6 Generating Random Variates

Convolution Method

56

Page 57: IERG 3050 Week 6 Generating Random Variates

Convolution Method

57

Page 58: IERG 3050 Week 6 Generating Random Variates

Example

58

Page 59: IERG 3050 Week 6 Generating Random Variates

Typical Continuous Distributions: Uniform

Page 60: IERG 3050 Week 6 Generating Random Variates

Typical Continuous Distributions: Exponential

Page 61: IERG 3050 Week 6 Generating Random Variates

Typical Continuous Distributions: m-Erlang

Page 62: IERG 3050 Week 6 Generating Random Variates

Typical Continuous Distributions: Gamma

Page 63: IERG 3050 Week 6 Generating Random Variates

Typical Continuous Distributions: Normal distribution

Page 64: IERG 3050 Week 6 Generating Random Variates

Typical Continuous Distributions: Lognormal

Page 65: IERG 3050 Week 6 Generating Random Variates

Typical Continuous Distributions: Beta

Page 66: IERG 3050 Week 6 Generating Random Variates

Typical Discrete Distribution: Bernoulli

Page 67: IERG 3050 Week 6 Generating Random Variates

Typical Discrete Distribution: Binomial

Page 68: IERG 3050 Week 6 Generating Random Variates

Typical Discrete Distribution: Geometric

Page 69: IERG 3050 Week 6 Generating Random Variates

Other Methods

• See Chapter 8 of the book by Averill M. Law on additional, more sophisticated and/or more specialized ways to generate random variates for commonly used distributions (gamma, lognormal,etc)• Code example: The standard random function in pythonhttps://github.com/python/cpython/blob/3.7/Lib/random.py

69

Page 70: IERG 3050 Week 6 Generating Random Variates

Next Week

• Confidence intervals and hypothesis testing• Required reading: Chapter 4