library("dplyr")
library("tidyr")
library("ggplot2")
library("multipleuncertainty")
knitr::opts_chunk$set(cache = TRUE)
Log-normal variance: (e^{\sigma^2-1} e^{2 \mu + \sigma^2}).
Uniform variance: (\frac{1}{12} (b-a)^2), where (b = \mu (1 + s)), (a = \mu (1 - s)), so (b - a = 2 mu * s), so variance is (\sigma^2 = \frac{\mu^2 s^2/3}). Rescaling units we can eliminate (\mu), and we're left with a more apples to apples comparison of comparable magnitudes of variance by taking (s = \sqrt{3} \sigma))
fig3 <- function(noise){
grid <- seq(0, 200, by=0.5)
if(noise == "lognormal"){
lo <- 0.0577 # 0.1 / sqrt(3)
hi <- 0.2887 # 0.5 / sqrt(3)
} else {
lo <- 0.1
hi <- 0.5
}
small <- multiple_uncertainty(f = logistic, x_grid = grid, sigma_g = lo, sigma_m = lo, sigma_i = lo, noise_dist = noise)
growth <- multiple_uncertainty(f = logistic, x_grid = grid, sigma_g = hi, sigma_m = lo, sigma_i = lo, noise_dist = noise)
measure <- multiple_uncertainty(f = logistic, x_grid = grid, sigma_g = lo, sigma_m = hi, sigma_i = lo, noise_dist = noise)
implement <- multiple_uncertainty(f = logistic, x_grid = grid, sigma_g = lo, sigma_m = lo, sigma_i = hi, noise_dist = noise)
df <- data.frame(y_grid = grid, small = small, growth = growth,
measure = measure, implement = implement) %>%
tidyr::gather(scenario, value, -y_grid)
}
df <-
data.frame(noise = c("uniform", "lognormal")) %>%
dplyr::group_by(noise) %>%
dplyr::do(fig3(.$noise))
df %>% ggplot(aes(x = y_grid, y = value, col = scenario)) +
geom_line() +
facet_wrap(~ noise) +
xlab("Stock") +
ylab("Escapement") +
coord_cartesian(xlim = c(0, 150), ylim = c(0,100)) +
theme_bw()
reed <- multiple_uncertainty(noise_dist = "lognormal")
qplot(seq_along(reed), reed) +
coord_cartesian(xlim = c(0, 150), ylim = c(0, 150)) +
xlab("Stock") + ylab("Escapement") +
theme_bw()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.