## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 7,
  fig.height = 5
)
library(p3d)

## ----eval = FALSE-------------------------------------------------------------
# install.packages("pvaluefunctions")

## ----eval = FALSE-------------------------------------------------------------
# library(pvaluefunctions)
# 
# conf_dist(
#   estimate = 0.5,
#   stderr = 1 / sqrt(30),
#   df = 29,
#   tstat = 0.5 * sqrt(30),
#   type = "ttest",
#   plot_type = "p_val"
# )

## ----fig.alt = "3D p-value surface"-------------------------------------------
surface <- p_surface(
  d = seq(-2, 2, 0.1),
  n = seq(5, 200, 5)
)

plot_p_static(surface)

## ----fig.alt = "2D curve vs 3D slice"-----------------------------------------
# 2D curve at n = 30
curve_30 <- p_curve_2d(d = seq(-2, 2, 0.1), n = 30)

# Plot the 2D curve
plot(curve_30$d, curve_30$p, type = "l", lwd = 2, col = "darkred",
     xlab = "Effect size (d)", ylab = "p-value",
     main = "2D p-value curve (n = 30)")
abline(h = 0.05, col = "blue", lty = 2)
grid()

## -----------------------------------------------------------------------------
curve_30$p[curve_30$d == 0.5]
surface$p[surface$d == 0.5, surface$n == 30]

## -----------------------------------------------------------------------------
surface$p[surface$d == 0.5, surface$n == 10]
surface$p[surface$d == 0.5, surface$n == 30]
surface$p[surface$d == 0.5, surface$n == 100]

## -----------------------------------------------------------------------------
p_surface(d = 0.5, n = 30)$p[1, 1]

## -----------------------------------------------------------------------------
set.seed(42)
n_sim <- 10000
n <- 30
d <- 0.5

p_values <- replicate(n_sim, {
  x <- rnorm(n, mean = d, sd = 1)
  t.test(x, mu = 0)$p.value
})

mean(p_values)

