GitHub

@@ -444,7 +444,7 @@ $Y_5$

444444

```{code-cell} python3

445445

beta_dist = beta(2, 2)

446446447-

def gen_x_draws(k):

447+

def gen_x_draws(k, rng):

448448

"""

449449

Returns a flat array containing k independent draws from the

450450

distribution of X, the underlying random variable. This distribution

@@ -456,7 +456,7 @@ def gen_x_draws(k):

456456

bdraws[1, :] += 0.6

457457

bdraws[2, :] -= 1.1

458458

# Set X[i] = bdraws[j, i], where j is a random draw from {0, 1, 2}

459-

js = np.random.randint(0, 2, size=k)

459+

js = rng.integers(0, 2, size=k)

460460

X = bdraws[js, np.arange(k)]

461461

# Rescale, so that the random variable is zero mean

462462

m, sigma = X.mean(), X.std()

@@ -465,11 +465,12 @@ def gen_x_draws(k):

465465

nmax = 5

466466

reps = 100000

467467

ns = list(range(1, nmax + 1))

468+

rng = np.random.default_rng()

468469469470

# Form a matrix Z such that each column is reps independent draws of X

470471

Z = np.empty((reps, nmax))

471472

for i in range(nmax):

472-

Z[:, i] = gen_x_draws(reps)

473+

Z[:, i] = gen_x_draws(reps, rng)

473474

# Take cumulative sum across columns

474475

S = Z.cumsum(axis=1)

475476

# Multiply j-th column by sqrt j

Read the original on github.com ↗