Plots

Purpose

This section documents every plot the DSAMbayes runner produces. Each page covers one pipeline stage, describes what the plot shows, explains when and why the runner generates it, and gives practical interpretation guidance. The target reader is a modelling operator or analyst who needs to assess run quality without reading source code.

Pipeline stages

The runner writes artefacts into timestamped directories under results/. Plots are organised into six stages, each with its own subdirectory:

Stage Directory Role Page
Pre-run 10_pre_run/ Data quality and input sanity checks before fitting Pre-run plots
Model fit 20_model_fit/ Posterior summaries and fitted-vs-observed visualisations Model fit plots
Post-run 30_post_run/ Response decomposition and predictor contributions Post-run plots
Diagnostics 40_diagnostics/ Residual analysis, boundary monitoring, posterior predictive checks Diagnostics plots
Model selection 50_model_selection/ LOO-CV diagnostics for model comparison and calibration Model selection plots
Optimisation 60_optimisation/ Budget allocation, response curves, efficiency comparisons Optimisation plots

Plot catalogue

All plots listed below map to files in docs/images/ and to actual runner output filenames.

Pre-run (10_pre_run/)

Filename Description Type
media_spend_timeseries.png Stacked area chart of channel spend over time Descriptive
kpi_media_overlay.png KPI and total media spend on dual axes Descriptive
vif_bar.png Variance inflation factor per predictor Diagnostic

Model fit (20_model_fit/)

Filename Description Type
fit_timeseries.png Observed vs fitted response over time with credible band Descriptive
fit_scatter.png Observed vs fitted scatter with 45-degree reference Descriptive
posterior_forest.png Coefficient estimates with 90% credible intervals Descriptive
prior_posterior.png Prior-to-posterior shift for media coefficients Descriptive

Post-run (30_post_run/)

Filename Description Type
decomp_predictor_impact.png Total contribution per model term (bar chart) Descriptive
decomp_timeseries.png Stacked media contribution over time Descriptive

Diagnostics (40_diagnostics/)

Filename Description Type
ppc.png Posterior predictive check fan chart Diagnostic
residuals_timeseries.png Residuals over time Diagnostic
residuals_vs_fitted.png Residuals vs fitted values Diagnostic
residuals_hist.png Residual distribution histogram Diagnostic
residuals_acf.png Residual autocorrelation function Diagnostic
residuals_latent_acf.png Latent-scale residual ACF (log-response models) Diagnostic
boundary_hits.png Share of posterior draws near coefficient boundaries Diagnostic/Gating

Model selection (50_model_selection/)

Filename Description Type
pareto_k.png Pareto-k diagnostic scatter from PSIS-LOO Diagnostic/Gating
loo_pit.png LOO probability integral transform histogram Diagnostic
elpd_influence.png Pointwise ELPD contributions over time Diagnostic

Optimisation (60_optimisation/)

Filename Description Type
budget_response_curves.png Channel response curves with current/optimised points Decision
budget_roi_cpa.png ROI or CPA comparison (current vs optimised) Decision
budget_impact.png Spend reallocation and response impact diverging bars Decision
budget_contribution.png Absolute response comparison by channel Decision
budget_confidence_comparison.png Posterior credible intervals for allocations Decision
budget_sensitivity.png Sensitivity of optimised allocation to budget changes Decision
budget_efficient_frontier.png Efficient frontier across budget levels Decision
budget_kpi_waterfall.png KPI waterfall from reference to optimised allocation Decision
budget_marginal_roi.png Marginal ROI curves at the optimised point Decision
budget_spend_share.png Spend share comparison (current vs optimised) Decision

Source code references

Plot generation is implemented across three files:

  • R/runner_fit_plots.R — pre-run, fit, diagnostics, and model selection plots
  • R/optimise_budget_plots.R — budget optimisation plots
  • R/run_artifacts.R — stage map and orchestration
  • R/run_artifacts_enrichment.R — wiring for fit-stage and pre-run plots
  • R/run_artifacts_diagnostics.R — wiring for diagnostics and model selection plots