## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", warning = FALSE, message = FALSE ) ## ----setup-------------------------------------------------------------------- library(nhscancerwaits) ## ----------------------------------------------------------------------------- set.seed(123) example_data <- expand.grid( provider_code = paste0("P", 1:12), cancer_type = c("Breast", "Lung", "Skin", "Lower GI"), month_index = 1:12, KEEP.OUT.ATTRS = FALSE ) example_data$provider_name <- paste( "Provider", example_data$provider_code ) example_data$standard <- "62-day" example_data$reporting_date <- seq.Date( from = as.Date("2026-01-01"), by = "month", length.out = 12 )[example_data$month_index] example_data$total_treated <- sample( 30:120, nrow(example_data), replace = TRUE ) example_data$performance_percent <- round( runif( nrow(example_data), min = 60, max = 92 ), 1 ) head(example_data) ## ----------------------------------------------------------------------------- kpi_summary <- summarise_kpis( example_data, group_var = "standard", performance_var = "performance_percent" ) kpi_summary ## ----------------------------------------------------------------------------- filtered_data <- filter_providers( example_data, provider_var = "provider_code", activity_var = "total_treated", performance_var = "performance_percent", min_mean_activity = 20, min_observations = 5, max_cv = 0.5 ) nrow(filtered_data) ## ----------------------------------------------------------------------------- provider_summary <- summarise_providers( filtered_data, provider_var = "provider_code", performance_var = "performance_percent", activity_var = "total_treated" ) head(provider_summary) ## ----------------------------------------------------------------------------- pathway_summary <- summarise_pathways( filtered_data, pathway_var = "cancer_type", performance_var = "performance_percent" ) pathway_summary ## ----------------------------------------------------------------------------- model <- fit_cwt_mixed_model( filtered_data, performance_var = "performance_percent", month_var = "month_index", pathway_var = "cancer_type", provider_var = "provider_code" ) model ## ----------------------------------------------------------------------------- icc_results <- calculate_icc(model) icc_results ## ----------------------------------------------------------------------------- model_effects <- extract_model_effects(model) model_effects ## ----------------------------------------------------------------------------- provider_effects <- extract_provider_effects( model, provider_name = "provider_code" ) head(provider_effects) ## ----------------------------------------------------------------------------- pathway_predictions <- predict_pathway_performance( model, filtered_data, pathway_var = "cancer_type", month_var = "month_index", provider_var = "provider_code" ) pathway_predictions ## ----------------------------------------------------------------------------- provider_clusters <- cluster_providers( filtered_data, provider_var = "provider_code", performance_var = "performance_percent", activity_var = "total_treated", k = 3 ) head(provider_clusters) ## ----------------------------------------------------------------------------- sensitivity_results <- run_sensitivity_analysis( filtered_data, provider_var = "provider_code", activity_var = "total_treated", performance_var = "performance_percent", month_var = "month_index", pathway_var = "cancer_type" ) sensitivity_results ## ----------------------------------------------------------------------------- wide_table <- pivot_provider_months( filtered_data, provider_var = "provider_code", month_var = "reporting_date", performance_var = "performance_percent" ) head(wide_table) ## ----------------------------------------------------------------------------- silhouette_score <- calculate_silhouette_score( provider_clusters ) silhouette_score ## ----fig.width=7, fig.height=5------------------------------------------------ plot_national_trends( filtered_data, month_var = "reporting_date", performance_var = "performance_percent", group_var = "standard" ) ## ----fig.width=7, fig.height=5------------------------------------------------ plot_provider_effects( provider_effects, provider_var = "provider_code", effect_var = "adjusted_effect" ) ## ----fig.width=7, fig.height=5------------------------------------------------ plot_pathway_predictions( pathway_predictions, pathway_var = "cancer_type", prediction_var = "predicted_performance" ) ## ----fig.width=7, fig.height=5------------------------------------------------ plot_provider_clusters( provider_clusters ) ## ----eval = FALSE------------------------------------------------------------- # export_excel_tables( # tables = list( # kpi_summary = kpi_summary, # provider_summary = provider_summary, # pathway_summary = pathway_summary, # icc_results = icc_results, # model_effects = model_effects, # provider_effects = provider_effects, # pathway_predictions = pathway_predictions, # provider_clusters = provider_clusters, # sensitivity_results = sensitivity_results # ), # path = "nhscancerwaits_results.xlsx" # ) ## ----eval = FALSE------------------------------------------------------------- # library(nhscancerwaits) # # data <- load_cwt_excel( # "your_nhs_cancer_waiting_times_file.xlsx" # ) # # data <- clean_cwt_data(data) # # kpis <- summarise_kpis(data) # # filtered <- filter_providers(data) # # model <- fit_cwt_mixed_model(filtered) # # icc <- calculate_icc(model) # # provider_effects <- extract_provider_effects(model) # # pathway_predictions <- predict_pathway_performance( # model, # filtered # ) # # provider_clusters <- cluster_providers(filtered) # # sensitivity <- run_sensitivity_analysis(filtered)