Nothing
## ---- include = F-------------------------------------------------------------
library(dplyr)
library(ggplot2)
library(ciTools)
library(lme4)
set.seed(20170627)
x_gen_mermod <- function(ng = 8, nw = 5){
n <- ng * nw
x1 <- base::sample(letters[1:2], n, replace = T)
x2 <- runif(n)
group <- rep(as.character(1:ng), each = nw)
return(data.frame(x1 = x1,
x2 = x2,
group = group))
}
mm_pipe <- function(df, ...){
model.matrix(data = df, ...)
}
get_validation_set <- function(df, sigma, sigmaG, beta, includeRanef, groupIntercepts){
vm <- sample_n(df, 5, replace = F)[rep(1:5, each = 100), ]
vf <- bind_rows(vm, df) %>%
select(-group) %>%
mm_pipe(~.*.)
vf <- vf[1:500, ]
vGroups <- if(!includeRanef) rnorm(500, 0, sigmaG) else groupIntercepts[as.numeric(vm$group)]
vm[["y"]] <- vf %*% beta + vGroups + rnorm(500, mean = 0, sd = sigma)
vm
}
y_gen_mermod <- function(df, sigma = 1, sigmaG = 1, delta = 1, includeRanef = FALSE, validationPoints = FALSE){
groupIntercepts <- rnorm(length(unique(df$group)), 0, sigmaG)
tf <- df %>%
dplyr::select(-group) %>%
mm_pipe(~.*.)
beta <- rep(delta, ncol(tf))
if(validationPoints) {
vm <- get_validation_set(df, sigma, sigmaG, beta, includeRanef, groupIntercepts)
}
df[["y"]] <- tf %*% beta + groupIntercepts[as.numeric(df$group)] + rnorm(nrow(df), mean = 0, sd = sigma)
df[["truth"]] <- tf %*% beta + groupIntercepts[as.numeric(df$group)] * (includeRanef)
if(validationPoints) return(list(df = df, vm = vm)) else return(df)
}
## -----------------------------------------------------------------------------
set.seed(20170812)
df <- x_gen_mermod(10, 20) %>%
y_gen_mermod()
## -----------------------------------------------------------------------------
fit2 <- lmer(y ~ x1 * x2 + (1|group) , data = df)
fit2
## -----------------------------------------------------------------------------
df %>% add_ci(fit2, type = "parametric", includeRanef = T) %>% head()
## ---- fig.width = 8, fig.heither = 5------------------------------------------
df %>%
filter(group %in% c(1:3)) %>%
add_ci(fit2, type = "parametric", includeRanef = T, names = c("LCB", "UCB")) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = LCB, ymax = UCB), colour = "black", fill = "red1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "red1", size = 2) +
facet_grid(x1 ~ group)
## -----------------------------------------------------------------------------
set.seed(20170628)
df %>%
add_ci(fit2, includeRanef = T, type = "parametric", names = c("Lpar", "Upar")) %>%
add_ci(fit2, includeRanef = T, type = "boot", names = c("Lboot", "Uboot")) %>% head()
## ---- fig.width = 8, fig.heither = 5------------------------------------------
set.seed(20170628)
df %>%
filter(group %in% c(1:3)) %>%
add_ci(fit2, includeRanef = T, type = "parametric", names = c("Lpar", "Upar")) %>%
add_ci(fit2, includeRanef = T, type = "boot", names = c("Lboot", "Uboot")) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = Lpar, ymax = Upar), colour = "black", fill = "blue1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "blue1", size = 2) +
geom_ribbon(aes(ymin = Lboot, ymax = Uboot), colour = "black", fill = "red1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "red1", size = 2) +
facet_grid(x1 ~ group)
## -----------------------------------------------------------------------------
df %>% add_ci(fit2, includeRanef = F, type = "parametric") %>% head()
## ---- fig.width = 8, fig.heither = 5------------------------------------------
set.seed(20170628)
df %>%
filter(group %in% c(1:3)) %>%
add_ci(fit2, includeRanef = F, type = "parametric", names = c("LU", "UU")) %>%
add_ci(fit2, includeRanef = T, type = "parametric", names = c("LC", "UC")) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = LU, ymax = UU), colour = "black", fill = "blue1", alpha = 0.2) +
geom_ribbon(aes(ymin = LC, ymax = UC), colour = "black", fill = "red1", alpha = 0.2) +
facet_grid(x1 ~ group)
## ---- fig.width = 8, fig.heither = 5------------------------------------------
set.seed(20170628)
df %>%
filter(group %in% c(1:3)) %>%
add_ci(fit2, includeRanef = F, type = "parametric", names = c("Lpar", "Upar")) %>%
add_ci(fit2, includeRanef = F, type = "boot", names = c("Lboot", "Uboot")) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = Lpar, ymax = Upar), colour = "black", fill = "blue1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "blue1", size = 2) +
geom_ribbon(aes(ymin = Lboot, ymax = Uboot), colour = "black", fill = "red1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "red1", size = 2) +
facet_grid(x1 ~ group)
## ---- fig.width = 8, fig.heither = 5------------------------------------------
df %>%
add_ci(fit2, type = "parametric", includeRanef = T, names = c("LCB", "UCB")) %>%
filter(group %in% c(1:3)) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = LCB, ymax = UCB), colour = "black", fill = "red1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "red1", size = 2) +
geom_point(aes(y = y), size = 2) +
facet_grid(x1 ~ group)
## ---- fig.width = 8, fig.heither = 5------------------------------------------
df %>%
add_ci(fit2, type = "parametric", includeRanef = F, names = c("LCB", "UCB")) %>%
filter(group %in% c(1:3)) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = LCB, ymax = UCB), colour = "black", fill = "red1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "red1", size = 2) +
geom_point(aes(y = y), size = 2) +
facet_grid(x1 ~ group)
## ---- fig.width = 6, fig.heither = 4------------------------------------------
df %>%
add_ci(fit2, type = "parametric", includeRanef = F, names = c("LCB", "UCB")) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = LCB, ymax = UCB), colour = "black", fill = "red1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "blue", size = 2) +
facet_grid( ~ x1) +
geom_hline(yintercept = 1.5, colour = "red1", size = 2, linetype = 2, alpha = .5)
## -----------------------------------------------------------------------------
df %>% add_pi(fit2, includeRanef = T, type = "parametric") %>% head()
## ---- fig.width = 8, fig.heither = 5------------------------------------------
df %>%
filter(group %in% c(1:3)) %>%
add_ci(fit2, type = "parametric", includeRanef = T, names = c("LCB", "UCB")) %>%
add_pi(fit2, type = "parametric", includeRanef = T, names = c("LPB", "UPB")) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = LCB, ymax = UCB), colour = "black", fill = "red1", alpha = 0.2) +
geom_ribbon(aes(ymin = LPB, ymax = UPB), colour = "black", fill = "blue1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "red1", size = 2) +
facet_grid(x1 ~ group)
## -----------------------------------------------------------------------------
df %>% add_pi(fit2, type = "parametric",includeRanef = F) %>% head()
## ---- fig.width = 6, fig.heither = 4------------------------------------------
df %>%
add_pi(fit2, type = "parametric", includeRanef = F, names = c("LPB", "UPB")) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = LPB, ymax = UPB), colour = "black", fill = "blue1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "red1", size = 2) +
geom_point(aes(y = y), size = 2) +
facet_grid( ~x1 )+
geom_hline(yintercept = 0, colour = "red1", size = 2, linetype = 2)
## ---- fig.width = 8, fig.heither = 5------------------------------------------
df %>%
filter(group %in% c(1:3)) %>%
add_ci(fit2, type = "parametric", includeRanef = T, names = c("LCB", "UCB")) %>%
add_pi(fit2, type = "parametric", includeRanef = F, names = c("LPB", "UPB")) %>%
ggplot(aes(x = x2)) +
geom_ribbon(aes(ymin = LCB, ymax = UCB), colour = "black", fill = "red1", alpha = 0.2) +
geom_ribbon(aes(ymin = LPB, ymax = UPB), colour = "black", fill = "blue1", alpha = 0.2) +
geom_line(aes(y = pred), colour = "red1", size = 2) +
geom_point(aes(y = y), size = 2) +
facet_grid(x1 ~ group)
## ---- include = F-------------------------------------------------------------
pm <- read.csv("lmer_unconditional_coverage.csv")
wm <- read.csv("lmer_unconditional_width.csv")
## ---- echo = F, fig.width = 8, fig.heither = 4--------------------------------
pm %>%
ggplot(aes(x = groupSize, y = CoverageProb, colour = Method)) +
geom_line(size = 2) + facet_grid(~numberOfGroups) +
scale_y_continuous(breaks = seq(0, 1, length.out = 6), limits = c(0, 1)) +
scale_x_log10(breaks = c(5, 10, 20, 50)) +
ggtitle("Coverage probabilities for unconditional confidence intervals") +
geom_hline(yintercept = 0.8)
## ---- echo = F, fig.width = 8, fig.heither = 4--------------------------------
pm %>%
ggplot(aes(x = groupSize, y = CoverageProb, colour = Method)) +
geom_line(size = 2) + facet_grid(~numberOfGroups) +
scale_y_continuous(breaks = seq(0, 1, length.out = 6), limits = c(0, 1)) +
scale_x_log10(breaks = c(5, 10, 20, 50)) +
ggtitle("Coverage probabilities for unconditional confidence intervals") +
geom_hline(yintercept = 0.8)
## ---- include = F-------------------------------------------------------------
pm <- read.csv("lmer_conditional_coverage.csv")
wm <- read.csv("lmer_conditional_width.csv")
## ---- echo = F, fig.width = 8, fig.heither = 4--------------------------------
pm %>%
ggplot(aes(x = groupSize, y = CoverageProb, colour = Method)) +
geom_line(size = 2) + facet_grid(~numberOfGroups) +
scale_y_continuous(breaks = seq(0, 1, length.out = 6), limits = c(0, 1)) +
scale_x_log10(breaks = c(5, 10, 20, 50)) +
ggtitle("Coverage probabilities for unconditional confidence intervals") +
geom_hline(yintercept = 0.8)
## ---- echo = F, fig.width = 8, fig.heither = 4--------------------------------
wm %>%
ggplot(aes(x = groupSize, y = IntWidth, colour = Method)) +
scale_x_log10(breaks = c(5, 10, 20, 50)) +
ggtitle("Interval widths for conditional confidence intervals") +
geom_line(size = 2) + facet_grid(~numberOfGroups)
## ---- echo = F, fig.width = 8, fig.heither = 4--------------------------------
pm %>%
ggplot(aes(x = groupSize, y = CoverageProb, colour = Method)) +
geom_line(size = 2) + facet_grid(~numberOfGroups) +
scale_y_continuous(breaks = seq(0, 1, length.out = 6), limits = c(0, 1)) +
scale_x_log10(breaks = c(5, 10, 20, 50)) +
ggtitle("Coverage probabilities for unconditional prediction intervals") +
geom_hline(yintercept = 0.8)
## ---- echo = F, fig.width = 8, fig.heither = 4--------------------------------
wm %>%
ggplot(aes(x = groupSize, y = IntWidth, colour = Method)) +
scale_x_log10(breaks = c(5, 10, 20, 50)) +
ggtitle("Interval widths for unconditional prediction intervals") +
geom_line(size = 2) + facet_grid(~numberOfGroups)
## ---- include = F-------------------------------------------------------------
pm <- read.csv("lmer_conditional_pi_coverage.csv")
wm <- read.csv("lmer_conditional_pi_width.csv")
## ---- echo = F, fig.width = 8, fig.heither = 4--------------------------------
pm %>%
ggplot(aes(x = groupSize, y = CoverageProb, colour = Method)) +
geom_line(size = 2) + facet_grid(~numberOfGroups) +
scale_y_continuous(breaks = seq(0, 1, length.out = 6), limits = c(0, 1)) +
scale_x_log10(breaks = c(5, 10, 20, 50)) +
ggtitle("Coverage probabilities for conditional prediction intervals") +
geom_hline(yintercept = 0.8)
## ---- echo = F, fig.width = 8, fig.heither = 4--------------------------------
wm %>%
ggplot(aes(x = groupSize, y = IntWidth, colour = Method)) +
scale_x_log10(breaks = c(5, 10, 20, 50)) +
ggtitle("Interval widths for conditional prediction intervals") +
geom_line(size = 2) +
facet_grid(~numberOfGroups)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.