run_simulation: Run a Monte Carlo simulation under a fixed scenario

View source: R/simulation.R

run_simulationR Documentation

Run a Monte Carlo simulation under a fixed scenario

Description

For each of nsim replicates, simulates a hybrid-control Cox dataset and fits all borrowing methods. Returns per-replicate raw results and aggregated summaries under both model-based and sandwich inference.

Usage

run_simulation(
  nsim = 200,
  scenario,
  lambdas,
  alpha = 0.025,
  one_sided = TRUE,
  seed = 1,
  parallel = FALSE,
  ncores = NULL,
  robust = FALSE,
  eps = SMOOTH_EPS,
  n_grid_opt = DEFAULT_N_GRID_OPT
)

Arguments

nsim

Number of Monte Carlo replicates, at least two.

scenario

A list of data-generating parameters with elements nI1, nI0, nE, theta0, delta0, p, beta, rho, cov_shift, shape, lambda, and target_cens. See scenario_S1 for an example.

lambdas

A list of tuning parameters with elements lambda_li, gamma_li, lambda_p1, lambda_p2, gate_c, gate_tau, lambda_p3, gamma_mcp, rho_mcp (optional, default 0.1), lambda_p4, and delta_bounds. See lambdas_default for an example.

alpha

Nominal one-sided (or two-sided) significance level.

one_sided

Logical; if TRUE, rejection corresponds to a hazard ratio less than one.

seed

RNG seed.

parallel

Logical; if TRUE, parallelize replicates using parallel::parLapply.

ncores

Number of workers; NULL uses two. Checks use at most two.

robust

Use robust (Lin-Wei) Cox standard errors.

eps

Smoothing parameter for |\delta|_\varepsilon.

n_grid_opt

Number of grid points for the coarse search in non-convex objectives.

Value

A list with:

raw

Per-replicate results data frame.

summary

Aggregated summaries for both inference types (valid-result counts, Monte Carlo standard errors, rejection rate, bias, RMSE, empirical SE, average SE, 95% coverage), with an inference column.

scenario, lambdas, settings

The inputs and run metadata.

Examples


sim_out <- run_simulation(nsim = 2, scenario = scenario_S1,
                          lambdas = lambdas_default, alpha = 0.025, seed = 1)
subset(sim_out$summary, inference == "sandwich")


fdb documentation built on Oct. 4, 2026, 5:07 p.m.