Plot Results (sketch.plot_results)¶
This module provides functions for plotting model results, such as channel and baseline contributions, ROI/efficiency, and component decomposition.
Key functions
all_contributions_plot(model, config, results_dir)Stacked area chart of weekly contributions for each channel plus a combined baseline (intercept + any
extra_features_cols).Inputs: fitted model,
config(usesdate_col,extra_features_cols), output directory.Saves:
weekly_media_and_baseline_contribution.png.
plot_channel_contributions(model, config, results_dir)Stacked area chart of channel-only contributions over time (no baseline).
Inputs: fitted model,
config(usesdate_col), output directory.Saves:
weekly_media_contribution.png.
plot_roi(model, data, config, results_dir)Bar charts of mean and median ROI (revenue) or Conversion Efficiency (if
target_type: conversion) by channel.Inputs: fitted model, original
dataframe (used to sum spend columns),config(usesmedia[*].spend_col,target_type).Saves:
media_performance_mean.png,media_performance_median.png.
plot_roi_distribution(model, data, config, results_dir)Per-channel ROI/efficiency distributions with histogram + KDE overlay.
Inputs: fitted model,
data,config(same keys as above).Saves:
performance_distribution.png.
plot_waterfall_components_decomposition(model, original_scale=True, figsize=(14,7), results_dir=None, **kwargs)Waterfall plot breaking the target into major components based on
model.compute_mean_contributions_over_time(original_scale=True).Returns:
matplotlib.figure.Figureand optionally saves a CSV of components ifresults_diris provided.
Usage examples
from src.sketch.plot_results import (
all_contributions_plot,
plot_channel_contributions,
plot_roi,
plot_roi_distribution,
plot_waterfall_components_decomposition,
)
# Stacked contributions (baseline + channels)
all_contributions_plot(model=mmm, config=config, results_dir=results_dir)
# Channels only
plot_channel_contributions(model=mmm, config=config, results_dir=results_dir)
# ROI / Conversion Efficiency (depends on config['target_type'])
plot_roi(model=mmm, data=processed_data, config=config, results_dir=results_dir)
plot_roi_distribution(model=mmm, data=processed_data, config=config, results_dir=results_dir)
# Component decomposition
fig = plot_waterfall_components_decomposition(model=mmm, results_dir=results_dir)
Notes
Date handling: functions attempt to resolve real datetimes from
model.X[date_col]; if unavailable, they coerce series to timestamps.Baseline composition: in
all_contributions_plotthe baseline is defined asintercept + extra_features_cols.Target type: set
config['target_type']toconversionto switch ROI labels to Conversion Efficiency.