## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4.5 ) library(htaBIM) ## ----population--------------------------------------------------------------- pop <- bim_population( indication = "Disease X", country = "custom", years = 1:5, prevalence = 0.003, n_total_pop = 42e6, diagnosed_rate = 0.60, treated_rate = 0.45, eligible_rate = 0.30, growth_rate = 0.005, data_source = "Illustrative values only" ) summary(pop) ## ----market-share------------------------------------------------------------- ms <- bim_market_share( population = pop, treatments = c("Drug C (SoC)", "Drug B", "Drug A (new)"), new_drug = "Drug A (new)", shares_current = c("Drug C (SoC)" = 0.75, "Drug B" = 0.25, "Drug A (new)" = 0.00), shares_new = c("Drug C (SoC)" = 0.60, "Drug B" = 0.20, "Drug A (new)" = 0.20), dynamics = "linear", uptake_params = list(ramp_years = 3), scenarios = list( conservative = c("Drug C (SoC)" = 0.68, "Drug B" = 0.22, "Drug A (new)" = 0.10), optimistic = c("Drug C (SoC)" = 0.50, "Drug B" = 0.18, "Drug A (new)" = 0.32) ) ) print(ms) ## ----costs-------------------------------------------------------------------- ae_tab <- data.frame( ae_name = c("Injection site reaction", "Fatigue"), rate = c(0.07, 0.12), unit_cost = c(180, 95) ) ae_new <- bim_costs_ae("Drug A (new)", ae_tab) costs <- bim_costs( treatments = c("Drug C (SoC)", "Drug B", "Drug A (new)"), currency = "GBP", price_year = 2025L, drug_costs = c("Drug C (SoC)" = 220, "Drug B" = 22400, "Drug A (new)" = 28800), admin_costs = c("Drug C (SoC)" = 0, "Drug B" = 0, "Drug A (new)" = 480), monitoring_costs = c("Drug C (SoC)" = 650, "Drug B" = 1550, "Drug A (new)" = 1950), ae_costs = c("Drug C (SoC)" = 80, "Drug B" = 210, "Drug A (new)" = as.numeric(ae_new)) ) print(costs) ## ----model-------------------------------------------------------------------- model <- bim_model( population = pop, market_share = ms, costs = costs, payer = bim_payer_nhs(), discount_rate = 0, label = "Disease X -- Drug A BIM, NHS England" ) summary(model) ## ----plot-line, fig.cap = "Annual budget impact by scenario"------------------ bim_plot_line(model, scenario = c("base", "conservative", "optimistic")) ## ----plot-shares, fig.cap = "Market share evolution"-------------------------- bim_plot_shares(model) ## ----sensitivity-------------------------------------------------------------- sens <- bim_sensitivity_spec( prevalence_range = c(0.0015, 0.005), eligible_rate_range = c(0.20, 0.45), drug_cost_multiplier_range = c(0.85, 1.15) ) dsa <- bim_run_dsa(model, sens, year = 5L) ## ----tornado, fig.cap = "DSA tornado diagram (Year 5)"------------------------ bim_plot_tornado(dsa, currency = "GBP") ## ----psa---------------------------------------------------------------------- set.seed(42) psa <- bim_run_psa( model, n_sim = 200L, prevalence_se = 0.0005, eligible_rate_se = 0.05, cost_cv = 0.10, year = 5L ) print(psa) ## ----psa-plot, fig.cap = "PSA distribution of Year 5 budget impact"----------- bim_plot_psa(psa) ## ----scenario-table----------------------------------------------------------- st <- bim_scenario_table(model) knitr::kable(st, caption = "Scenario comparison — budget impact summary") ## ----cost-breakdown----------------------------------------------------------- cb <- bim_cost_breakdown(model) knitr::kable(cb, caption = "Per-patient annual cost by component and treatment") ## ----table-------------------------------------------------------------------- tab <- bim_table(model, format = "annual", scenario = "base") knitr::kable(tab, caption = "Annual budget impact -- base case") ## ----example------------------------------------------------------------------ data("bim_example") pop2 <- do.call(bim_population, bim_example$population_params) ms2 <- do.call(bim_market_share, c(list(population = pop2), bim_example$market_share_params)) costs2 <- do.call(bim_costs, bim_example$cost_params) model2 <- bim_model(pop2, ms2, costs2) summary(model2)