Predicts enrollment and events at the design or analysis stage using specified enrollment and time-to-event models through simulations.
eventPred predicts enrollment and event timing in clinical trials.
It supports both:
The package provides enrollment modeling, time-to-event modeling, time-to-dropout modeling, simulation-based prediction intervals, and an interactive Shiny app.
Install the development version from GitHub:
# install.packages("remotes")
remotes::install_github("kaifenglu/eventPred")
nreps).interimData1, interimData2, finalData.summarizeObserved().fitEnrollment(),
fitEvent(), and fitDropout().predictEnrollment() for enrollment onlypredictEvent() for event timing onlygetPrediction() for end-to-end enrollment and event predictionlibrary(eventPred)
# Event prediction after enrollment completion
set.seed(3000)
pred <- getPrediction(
df = interimData2,
to_predict = "event only",
target_d = 200,
event_model = "weibull",
dropout_model = "exponential",
pilevel = 0.90,
nreps = 100
)
pred$event_pred$event_pred_summary
library(eventPred)
set.seed(2000)
event_fits <- fitEvent(
df = interimData2,
event_model = "piecewise exponential",
piecewiseSurvivalTime = c(0, 140, 352)
)
dropout_fits <- fitDropout(
df = interimData2,
dropout_model = "exponential"
)
event_pred <- predictEvent(
df = interimData2,
target_d = 200,
event_fit = event_fits$fit,
dropout_fit = dropout_fits$fit,
pilevel = 0.90,
nreps = 100
)
event_pred$event_pred_summary
library(eventPred)
set.seed(1000)
enroll_pred <- predictEnrollment(
target_n = 300,
enroll_fit = list(
model = "piecewise poisson",
theta = log(26 / 9 * seq(1, 9) / 30.4375),
vtheta = diag(9) * 1e-8,
accrualTime = seq(0, 8) * 30.4375
),
pilevel = 0.90,
nreps = 100
)
enroll_pred$enroll_pred_summary
library(eventPred)
runShinyApp_eventPred()
The package uses days as the primary time unit. To convert rates per month to rates per day, divide by 30.4375.
If you use eventPred in analysis or reporting, please cite relevant
methodology references included in the package documentation.