DelayedSaturatedMMM.optimize_channel_budget_for_maximum_contribution#

DelayedSaturatedMMM.optimize_channel_budget_for_maximum_contribution(method, total_budget, budget_bounds=None, *, parameters)#

Experimental: Optimize the allocation of a given total budget across multiple channels to maximize the expected contribution.

The optimization is based on the method provided, where each channel’s contribution follows a saturating function of its allocated budget. The function seeks the budget allocation that maximizes the total expected contribution across all channels. The method can be either ‘sigmoid’ or ‘michaelis-menten’.

Parameters:
  • total_budget (int, required) – The total budget to be distributed across channels.

  • method (str, required) – The method used to fit the contribution & spent non-linear relationship. It can be either ‘sigmoid’ or ‘michaelis-menten’.

  • parameters (Dict, required) – A dictionary where keys are channel names and values are tuples (L, k) representing the parameters for each channel based on the method used.

  • budget_bounds (Dict, optional) – An optional dictionary defining the minimum and maximum budget for each channel. If not provided, the budget for each channel is constrained between 0 and its L value.

Returns:

A pandas DataFrame containing the allocated budget and contribution information.

Return type:

DataFrame

Raises:

ValueError – If any of the required parameters are not provided or have an incorrect type.