meridian.analysis.optimizer.OptimizationResults

优化后的预算分配情况。

这是一个 dataclass 对象,包含来自 BudgetOptimizer 的数据集输出。这些数据集包括:

  • nonoptimized_data:未优化的预算指标(基于历史频次)。
  • nonoptimized_data_with_optimal_freq:基于最佳频次的未优化预算指标。
  • optimized_data:优化后的预算指标。
  • optimization_grid:用于优化的网格信息。

指标(数据变量)包括:投资回报率、边际投资回报率、增量效果、CPIK。

此外,其中还存储了一些中间值和对来源拟合模型以及分析器的引用。这些对于直观呈现和调试非常有用。

meridian 用于创建此预算分配结果的拟合 Meridian 模型。
analyzer 与上述模型绑定的分析器。
use_posterior 是否使用了后验分布来优化预算。如果为 False,则表示使用了先验分布。
use_optimal_frequency 是否使用了最佳频次来优化预算。
spend_ratio 用于将未优化的预算指标缩放到优化后的预算指标的支出比率。
spend_bounds 用于将未优化的预算指标缩放为优化后的预算指标的支出范围。
nonoptimized_data 未优化的预算指标(基于历史频次)。
nonoptimized_data_with_optimal_freq 基于最佳频次的未优化预算指标。
optimized_data 优化后的预算指标。
optimization_grid 用于优化的网格信息。
template_env 与此优化后的预算绑定的共享模板环境。

方法

get_response_curves

查看源代码

根据预算优化方案计算响应曲线。

此方法是 Analyzer.response_curves() 的封装容器,用于设置以下实参,以与返回此结果的 BudgetOptimizer.optimize() 调用中指定的预算优化方案保持一致。具体而言:

  1. spend_multiplier 与离散优化网格一致,会考虑网格步长和任何渠道级限制范围。
  2. selected_timesby_reachuse_optimal_frequencyBudgetOptimizer.optimize() 中设置的值一致。

返回结果
Analyzer.response_curves() 根据返回此结果的 BudgetOptimizer.optimize() 调用中指定的预算优化方案返回的数据集。

output_optimization_summary

查看源代码

生成并保存 HTML 优化摘要输出。

plot_budget_allocation

查看源代码

绘制一个饼图,显示为每个渠道分配的支出。

实参
optimized 如果为 True,则显示优化后的支出。如果为 False,则显示未优化的支出。

返回结果
显示各渠道支出的 Altair 饼图。

plot_incremental_outcome_delta

查看源代码

绘制一个瀑布图,显示增量效果的变化。

plot_response_curves

查看源代码

绘制每个渠道的响应曲线,其中包含支出限制。

实参
n_top_channels 要包含的支出最高的渠道数量(可选)。默认包含所有渠道。

返回结果
显示响应曲线和优化详细信息的 Altair 图。

plot_spend_delta

查看源代码

绘制一个条形图,显示各渠道的优化后支出变化。

__eq__

返回 self==value。