library(scales)
library(tidyverse)
x <- seq(from = -3, to = 4, by = .01) %>%
as_tibble() %>%
mutate(adj_value = case_when(value == -3 ~ 0,
value > -3 & value <= 0 ~ ((1/2)+(value/6)),
value > 0 & value < 4 ~ ((1/2)+(value^2/32)),
value == 4 ~ 1))
ggplot(x, aes(x = value, y = adj_value)) +
geom_line() +
scale_y_continuous(labels = percent) +
ylab("") +
ggtitle("cdf")
inv_cdf <- function(){z <- runif(1,0,1)
case_when(z == 0 ~ -3,
z > 0 & z < .5 ~ (6*z-3),
z >= .5 & z < 1 ~ 4*sqrt(2*z-1),
z == 1 ~ 4)
}
L <- NULL
for (i in seq(1:1000)){L[i] <- inv_cdf()}
hist(unlist(L), main = "Histogram", xlab = "Value")