Nothing
params <-
list(EVAL = TRUE)
## ----setup, message=FALSE, warning=FALSE--------------------------------------
library(knitr)
library(dplyr)
library(tidyr)
library(purrr)
library(ggplot2)
library(multiverse)
## ----include=FALSE------------------------------------------------------------
M = multiverse()
## ----chunk-setup, include=FALSE-----------------------------------------------
opts_chunk$set(
echo = TRUE,
fig.width = 6,
fig.height = 4,
eval = if (isTRUE(exists("params"))) params$EVAL else FALSE
)
## -----------------------------------------------------------------------------
M = multiverse()
## -----------------------------------------------------------------------------
x = rnorm(100, 30, 10)
## ----h-0, inside = M, echo = FALSE, engine="multiverse"-----------------------
# y = ifelse(x < 30, "low", "high")
## ----h-0, inside = M, echo = FALSE, engine="multiverse"-----------------------
# y = ifelse(x < 20, "low", ifelse(x > 40, "high", "medium"))
## -----------------------------------------------------------------------------
expand(M)
## -----------------------------------------------------------------------------
data("userlogs")
data.userlogs.raw = userlogs |>
mutate( modality = factor(modality) ) |>
arrange( modality )
## -----------------------------------------------------------------------------
M = multiverse()
## ----h-1, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df <- mutate(select(data.userlogs.raw, modality, duration), duration = duration)
## ----h-1, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df <- mutate(select(data.userlogs.raw, modality, duration), duration = log(duration))
## -----------------------------------------------------------------------------
expand(M)
## -----------------------------------------------------------------------------
expand(M)$.code
## -----------------------------------------------------------------------------
M = multiverse()
## ----h-2, inside = M, echo = FALSE, engine="multiverse"-----------------------
# data("hurricane")
# hurricane_data = rename(hurricane, year = Year, name = Name, dam = NDAM, death = alldeaths,
# female = Gender_MF, masfem = MasFem, category = Category, pressure = Minpressure_Updated_2014,
# wind = HighestWindSpeed)
# df.filtered = filter(hurricane_data, TRUE)
## ----h-2, inside = M, echo = FALSE, engine="multiverse"-----------------------
# data("hurricane")
# hurricane_data = rename(hurricane, year = Year, name = Name, dam = NDAM, death = alldeaths,
# female = Gender_MF, masfem = MasFem, category = Category, pressure = Minpressure_Updated_2014,
# wind = HighestWindSpeed)
# df.filtered = filter(hurricane_data, name != "Katrina")
## ----h-2, inside = M, echo = FALSE, engine="multiverse"-----------------------
# data("hurricane")
# hurricane_data = rename(hurricane, year = Year, name = Name, dam = NDAM, death = alldeaths,
# female = Gender_MF, masfem = MasFem, category = Category, pressure = Minpressure_Updated_2014,
# wind = HighestWindSpeed)
# df.filtered = filter(hurricane_data, !(name %in% c("Katrina", "Audrey")))
## -----------------------------------------------------------------------------
expand(M)
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = death_outliers
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(TRUE)
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(name != "Katrina")
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(!(name %in% c("Katrina", "Audrey")))
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = death_outliers
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(TRUE)
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(name != "Katrina")
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(!(name %in% c("Katrina", "Audrey")))
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = death_outliers
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(TRUE)
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(name != "Katrina")
## ----h-3, inside = M, echo = FALSE, engine="multiverse"-----------------------
# df.filtered = filter(!(name %in% c("Katrina", "Audrey")))
## -----------------------------------------------------------------------------
M = multiverse()
## ----default-h-6, inside = M, engine="multiverse"-----------------------------
# {
# x = 1
# }
## ----default-h-6, inside = M, engine="multiverse"-----------------------------
# {
# x = 2
# }
## -----------------------------------------------------------------------------
M = multiverse()
## ----h-7, inside = M, echo = FALSE, engine="multiverse"-----------------------
# duration = log(data.userlogs.raw$duration)
## ----h-7, inside = M, echo = FALSE, engine="multiverse"-----------------------
# duration = identity(data.userlogs.raw$duration)
## -----------------------------------------------------------------------------
execute_multiverse(M)
expand(M) |>
mutate(transformed_duration = map(.results, "duration"))
## -----------------------------------------------------------------------------
M = multiverse()
## ----h-8, inside = M, echo = FALSE, engine="multiverse"-----------------------
# duration_transform = log
# duration = duration_transform(data.userlogs.raw$duration)
## ----h-8, inside = M, echo = FALSE, engine="multiverse"-----------------------
# duration_transform = identity
# duration = duration_transform(data.userlogs.raw$duration)
## -----------------------------------------------------------------------------
execute_multiverse(M)
expand(M) |>
mutate( transformed_duration = map(.results, "duration" ) ) |>
unnest(c(transformed_duration)) |>
head()
## -----------------------------------------------------------------------------
library(boot)
library(broom)
samplemean <- function(x, d) {return(mean(x[d]))}
M = multiverse()
t_test_ci <- function(x, y) {
broom::tidy(t.test(x, conf.level = y))
}
bootstrapped_ci <- function(x, y) {
boot(data = x, statistic = samplemean, R = 5000) |>
broom::tidy( conf.int = TRUE, conf.method = "bca", conf.level = y) |>
rename(estimate = statistic)
}
## ----h-9, inside = M, echo = FALSE, engine="multiverse"-----------------------
# data_trans <- log
# fit <- t_test_ci
# ci <- 0.95
# df <- summarise(rename(group_by(summarise(group_by(mutate(mutate(data.userlogs.raw,
# duration = data_trans(duration)), modality.f = factor(modality)), subject, modality.f,
# modalityname), duration = mean(duration), .groups = "drop"), modality.f), value = duration),
# data = list(value), .groups = "keep")
# df <- unnest(select(mutate(df, fit = map(data, ~fit(.x, ci))), -data), cols = c(fit))
## ----h-9, inside = M, echo = FALSE, engine="multiverse"-----------------------
# data_trans <- log
# fit <- bootstrapped_ci
# ci <- 0.95
# df <- summarise(rename(group_by(summarise(group_by(mutate(mutate(data.userlogs.raw,
# duration = data_trans(duration)), modality.f = factor(modality)), subject, modality.f,
# modalityname), duration = mean(duration), .groups = "drop"), modality.f), value = duration),
# data = list(value), .groups = "keep")
# df <- unnest(select(mutate(df, fit = map(data, ~fit(.x, ci))), -data), cols = c(fit))
## ----h-9, inside = M, echo = FALSE, engine="multiverse"-----------------------
# data_trans <- identity
# fit <- t_test_ci
# ci <- 0.95
# df <- summarise(rename(group_by(summarise(group_by(mutate(mutate(data.userlogs.raw,
# duration = data_trans(duration)), modality.f = factor(modality)), subject, modality.f,
# modalityname), duration = mean(duration), .groups = "drop"), modality.f), value = duration),
# data = list(value), .groups = "keep")
# df <- unnest(select(mutate(df, fit = map(data, ~fit(.x, ci))), -data), cols = c(fit))
## ----h-9, inside = M, echo = FALSE, engine="multiverse"-----------------------
# data_trans <- identity
# fit <- bootstrapped_ci
# ci <- 0.95
# df <- summarise(rename(group_by(summarise(group_by(mutate(mutate(data.userlogs.raw,
# duration = data_trans(duration)), modality.f = factor(modality)), subject, modality.f,
# modalityname), duration = mean(duration), .groups = "drop"), modality.f), value = duration),
# data = list(value), .groups = "keep")
# df <- unnest(select(mutate(df, fit = map(data, ~fit(.x, ci))), -data), cols = c(fit))
## -----------------------------------------------------------------------------
execute_multiverse(M)
## ----fig.width = 8, fig.height = 4--------------------------------------------
expand(M) |>
mutate(df = map(.results, "df" ) ) |>
unnest( cols = c(df) ) |>
mutate( modality.f = recode( modality.f,
"1" = "physical-touch",
"2" = "no-touch",
"3" = "virtual-prop",
"4" = "virtual-mouse"
) ) |>
mutate(
estimate = ifelse(data_trans == "log", exp(estimate), estimate),
conf.low = ifelse(data_trans == "log", exp(conf.low), conf.low),
conf.high = ifelse(data_trans == "log", exp(conf.high), conf.high)
) |>
arrange(desc(data_trans), desc(bootstrap)) |>
filter( bootstrap == "bca" ) |>
ggplot() +
geom_point( aes(x = estimate, y = modality.f)) +
geom_errorbarh( aes(xmin = conf.low, xmax = conf.high, y = modality.f), height = 0) +
facet_grid(. ~ data_trans, scales = "free") +
theme_minimal()
## -----------------------------------------------------------------------------
M.1 = multiverse()
## -----------------------------------------------------------------------------
M.2 = multiverse()
## -----------------------------------------------------------------------------
M = multiverse()
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(1L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(2L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(3L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(4L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(5L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(6L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(7L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(8L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(9L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(10L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(11L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(12L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(13L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(14L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(15L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(16L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(17L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(18L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(19L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(20L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(21L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(22L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(23L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(24L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## ----h-10, inside = M, echo = FALSE, engine="multiverse"----------------------
# set.seed(25L)
# x1 <- rnorm(25)
# x2 <- rnorm(25)
# y <- x1 + x2 + runif(25)
# m <- lm(y ~ x1 + x2)
# intervals <- broom::tidy(m, conf.int = TRUE)
## -----------------------------------------------------------------------------
execute_multiverse(M)
## ----fig.width = 8, fig.height = 5--------------------------------------------
expand(M) |>
mutate(df = map(.results, "intervals" ) ) |>
unnest( cols = c(df) ) |>
unnest(seed) |> # won't be necessary once issue #34 is fixed
ggplot(aes(x = .universe, y = estimate, ymin = conf.low, ymax = conf.high), alpha = 0.5) +
geom_pointrange() +
facet_grid( . ~ term ) +
scale_x_continuous( breaks = seq(0, 25, by = 5) ) +
labs(x = "Universe (i.e. the seed parameter)", y = "Model Parameter Values", title = "Estimates with 95% confidence intervals") +
theme_minimal()
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.