Homework Six - Banks: Chapter 8 Problem 5 - Discussion

#create reproducability
set.seed(123)

Banks DES, Chapter 8: 5

Banks 5

Given the folling cdf for a continuous variable with range from -3 to 4, develop a generator for the variable, generate 1000 values, and plot a histogram:

\(F(x) = 0, x <= -3\)

\(F(x) = \frac{1}{2} + \frac{x}{6}, -3 < x <= 0\)

\(F(x) = \frac{1}{2} + \frac{x^2}{32}, 0 < x <= 4\)

\(F(x) = 1, x > 4\)

banks5 <- function(size){
  x <- runif(size, min=-3, max=4)
  for(i in 1:size){
    if(x[i] == 0){
      x[i] <- -3
    } else if(x[i] > -3 & (x[i] < 0 | x[i] == 0)){
      x[i] <- (1/2) + (x[i]/6)
    } else if(x[i] > 0 & (x[i] <4 | x[i] == 4)){
      x[i] <- (1/2) + (x[i]^2)/32
    } else{
      x[i] <- 1
    }
  }
  x
}

gen5 <- banks5(1000)
summary(gen5)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## 0.0005429 0.2959000 0.5058000 0.4860000 0.6551000 0.9990000
hist(gen5)

plot(density(gen5), xlim=c(0,1))