7.3 problem 4

Author

courtney casey

library(purrrfect)

Attaching package: 'purrrfect'
The following objects are masked from 'package:base':

    replicate, tabulate
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.6
✔ forcats   1.0.1     ✔ stringr   1.6.0
✔ ggplot2   4.0.1     ✔ tibble    3.3.1
✔ lubridate 1.9.4     ✔ tidyr     1.3.2
✔ purrr     1.2.1     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
sim <- parameters(
  ~i, ~n, ~lambda,
  c(3, 5, 9),
  c(10, 15, 20),
  c(0.05, 0.1)
) %>%
  add_trials(10000) %>%
  mutate(y_sample = pmap(list(n, lambda), \(n, lam) rexp(n, rate = lam))) %>%
  mutate(y_sorted = map(y_sample, sort)) %>%
  mutate(
    yi   = pmap_dbl(list(i, y_sorted), \(i, ys) pluck(ys, i)),
    yim1 = pmap_dbl(list(i, y_sorted), \(i, ys) pluck(ys, i - 1)),
    T = yi - yim1
  ) %>%
  mutate(rate_T = lambda * (n - i + 1),
         f_T = dexp(T, rate = rate_T))
ggplot(sim, aes(x = T)) +
  geom_histogram(aes(y = after_stat(density)),
                 bins = 50,
                 fill = "black", alpha = 0.6) +
  geom_line(aes(y = f_T), color = "lavender", linewidth = 1) +
  facet_grid(i ~ n + lambda, labeller = label_both, scales = "free_y") +
  coord_cartesian(xlim = c(0, 50)) +
  theme_classic(base_size = 14) +
  labs(title = "Simulated vs analytic densities for spacings T = Y(i) - Y(i-1)",
       x = "T",
       y = "density")