Nothing
## ---- include = FALSE---------------------------------------------------------
suggest_ok <- requireNamespace("phacking") && requireNamespace("PublicationBias")
knitr::opts_chunk$set(
error = FALSE,
warning = FALSE,
message = FALSE,
collapse = TRUE,
comment = "#>",
fig.width = 6,
fig.height = 3,
fig.dpi = 300,
eval = suggest_ok
)
# round printed numbers to 2 digits without changing options()
inline_hook <- function(x) {
if (is.numeric(x)) {
# if integer, print without decimal; otherwise print two places
res <- ifelse(x == round(x), sprintf("%d", x), sprintf("%.2f", x))
paste(res, collapse = ", ")
} else {
x
}
}
knitr::knit_hooks$set(inline = inline_hook)
# refs <- list(
# "SAPB" = "[Mathur & VanderWeele (2020)](https://osf.io/s9dp6/)", # pubbias
# "SAPB-E" = "[Mathur & VanderWeele (2019)](https://osf.io/p3xyd/)", # pubbias e
# "SAPH" = "[Mathur (2022)](https://osf.io/ezjsx/)", # phacking
# "MBMA" = "[Mathur (2022)](https://osf.io/u7vcb/)", # multibias
# "meat" = "[Mathur et al (2021)](https://osf.io/bc2wy/)"
# )
refs <- list(
"SAPB" = c("Mathur & VanderWeele", "2020", "https://osf.io/s9dp6/"), # pubbias
"SAPB-E" = c("Mathur & VanderWeele", "2019", "https://osf.io/p3xyd/"), # pubbias e
"SAPH" = c("Mathur", "2022", "https://osf.io/ezjsx/"), # phacking
"MBMA" = c("Mathur", "2022", "https://osf.io/u7vcb/"), # multibias
"meat" = c("Mathur et al", "2021", "https://osf.io/bc2wy/")
)
# "p" = parenthetical, "t" = textual
ref <- function(key, mode = "p") {
r <- refs[[key]]
if (mode == "t") glue::glue("[{r[1]} ({r[2]})]({r[3]})") # [author, year](link)
else if (mode == "p") glue::glue("[{r[1]}, {r[2]}]({r[3]})") # [author (year)](link)
}
# when PublicationBias or phacking are missing
# we use dummy versions of these model objects
# that are reference in the text, i.e. it is not enought
# to make eval=FALSE for the code chunks
if (!suggest_ok) {
sr <- 4
multi_meat_0 <- pubbias_meat_4 <- list(stats=list(estimate=NA, ci_lower=NA, ci_upper=NA))
qs <- 0.1
svalue_meat_01 <- list(stats=list(sval_ci=NA))
phacking_meat <- list(stats=list(mode=list(NA, NA)))
evalue_meat <- evalue_meat_conf <- list(stats=list(bias_est=NA,bias_ci=NA))
}
## ----setup--------------------------------------------------------------------
# library(PublicationBias)
# library(phacking)
# library(multibiasmeta)
## ----setup2,eval=!suggest_ok,echo=FALSE---------------------------------------
# this message is shown when PublicationBias or phacking are missing
message("NOTE: Suggested packages PublicationBias or phacking are not installed")
message("Please install these packages and run the code from this tutorial")
## ----meta_meat----------------------------------------------------------------
# meta_meat
## ----rma----------------------------------------------------------------------
# metafor::rma(yi, vi, data = meta_meat, method = "FE")
## ----robu---------------------------------------------------------------------
# robumeta::robu(yi ~ 1, data = meta_meat, studynum = cluster, var.eff.size = vi)
## ----pubbias_meat_1-----------------------------------------------------------
# pubbias_meat_1 <- pubbias_meta(meta_meat$yi,
# meta_meat$vi,
# model_type = "fixed",
# selection_ratio = 1)
# pubbias_meat_1$stats
## ----sr, echo=FALSE-----------------------------------------------------------
# sr <- 4
## ----pubbias_meat_4-----------------------------------------------------------
# pubbias_meat_4 <- pubbias_meta(meta_meat$yi,
# meta_meat$vi,
# model_type = "fixed",
# selection_ratio = sr)
# pubbias_meat_4$stats
## ----pubbias_meat_4_robust----------------------------------------------------
# pubbias_meat_4 <- pubbias_meta(meta_meat$yi,
# meta_meat$vi,
# cluster = meta_meat$cluster,
# selection_ratio = 4)
# pubbias_meat_4$stats
## ----pubbias_meat_4_worst-----------------------------------------------------
# pubbias_meat_4 <- pubbias_meta(meta_meat$yi,
# meta_meat$vi,
# cluster = meta_meat$cluster,
# selection_ratio = 4,
# return_worst_meta = TRUE)
#
# pubbias_meat_4$stats
## ----svalue_meat_0------------------------------------------------------------
# svalue_meat_0 <- pubbias_svalue(meta_meat$yi,
# meta_meat$vi,
# cluster = meta_meat$cluster)
# svalue_meat_0$stats
## ----qs, echo=FALSE-----------------------------------------------------------
# qs <- 0.1
## ----svalue_meat_01-----------------------------------------------------------
# svalue_meat_01 <- pubbias_svalue(meta_meat$yi,
# meta_meat$vi,
# cluster = meta_meat$cluster,
# q = 0.1)
# svalue_meat_01$stats
## ----significance_funnel, fig.height = 4--------------------------------------
# significance_funnel(yi = meta_meat$yi, vi = meta_meat$vi)
## ----phacking_meat------------------------------------------------------------
# phacking_meat <- phacking_meta(yi = meta_meat$yi, vi = meta_meat$vi, parallelize = FALSE)
#
# phacking_meat$stats
## ----tcrit, include = FALSE---------------------------------------------------
# # temporary workaround for bug in released version of phacking
# phacking_meat$values$tcrit <- qnorm(0.975)
## ----rtma_qqplot, fig.width = 3-----------------------------------------------
# rtma_qqplot(phacking_meat)
## ----z_density----------------------------------------------------------------
# z_density(yi = meta_meat$yi, vi = meta_meat$vi)
## ----multi_meat_0-------------------------------------------------------------
# multi_meat_0 <- multibias_meta(yi = meta_meat$yi,
# vi = meta_meat$vi,
# selection_ratio = 4,
# bias_affirmative = 0,
# bias_nonaffirmative = 0)
# multi_meat_0$stats
## ----multi_meat_1-------------------------------------------------------------
# multi_meat_1 <- multibias_meta(yi = meta_meat$yi,
# vi = meta_meat$vi,
# biased = !meta_meat$randomized,
# selection_ratio = 4,
# bias_affirmative = log(1.5),
# bias_nonaffirmative = log(1.1))
# multi_meat_1$stats
## ----multi_meat_1_all---------------------------------------------------------
# multi_meat_1 <- multibias_meta(yi = meta_meat$yi,
# vi = meta_meat$vi,
# biased = TRUE,
# selection_ratio = 4,
# bias_affirmative = log(1.5),
# bias_nonaffirmative = log(1.1))
# multi_meat_1$stats
## ----evalue_meat--------------------------------------------------------------
# evalue_meat <- multibias_evalue(yi = meta_meat$yi,
# vi = meta_meat$vi,
# biased = !meta_meat$randomized,
# selection_ratio = 4)
# evalue_meat$stats
## ----evalue_meat_01-----------------------------------------------------------
# evalue_meat_01 <- multibias_evalue(yi = meta_meat$yi,
# vi = meta_meat$vi,
# biased = !meta_meat$randomized,
# selection_ratio = 4,
# q = 0.1)
# evalue_meat_01$stats
## ----evalue_meat_conf---------------------------------------------------------
# evalue_meat_conf <- multibias_evalue(yi = meta_meat$yi,
# vi = meta_meat$vi,
# biased = !meta_meat$randomized,
# selection_ratio = 4,
# assumed_bias_type = list(EValue::confounding()))
# evalue_meat_conf$stats
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.