fit_gcomp <- function(.split, ...) {
.df <- as.data.frame(.split)
# fit outcome model
fit <- lm(
wait_minutes_actual_avg ~
splines::ns(wait_minutes_posted_avg, df = 3) +
park_extra_magic_morning + park_ticket_season +
park_close + park_temperature_high,
data = .df
)
# clone and set exposure
low <- .df |> mutate(wait_minutes_posted_avg = 30)
high <- .df |> mutate(wait_minutes_posted_avg = 60)
# predict
pred_low <- fit |> augment(newdata = low) |> pull(.fitted)
pred_high <- fit |> augment(newdata = high) |> pull(.fitted)
# estimate
tibble(
term = "difference",
estimate = mean(pred_high) - mean(pred_low)
)
}