diff --git a/ch04.r b/ch04.r index 6340d7a..22a4fc6 100644 --- a/ch04.r +++ b/ch04.r @@ -120,3 +120,29 @@ X3 = runif(N, 1, 6) Z = X1 + X2 + X3 hist(Z, breaks=seq(2.5,18.5)) +# Chapter 4.8 + +## Generating Gaussians from uniform + +# R code to generate Gaussian from uniform +library(HDInterval) +mu = 3 +sigma = 2 +U = runif(10000, 0, 1) +gU = sigma * inverseCDF(U, pnorm) + mu; +hist(U) +hist(gU) + +# R code to generate exponential random variables +lambda = 1 +U = runif(10000, 0, 1) +gU = -(1/lambda)*log(1-U) + +# R code to generate the desired random variables +U = runif(10000, 0, 1) +gU = rep(0, 10000) +gU[U >= 0.0 & U <= 0.1] = 1 +gU[U > 0.1 & U <= 0.6] = 2 +gU[U > 0.6 & U <= 0.9] = 3 +gU[U > 0.9 & U <= 1] = 4 +hist(gU)