Open chanansh opened 1 year ago
plot.plot_response_curves
, it assumes fixed average impression price, but it explains in the docs, if your media_data is already costs, you can just pass in np.ones() as the prices parameter, as price:price is 1:1 ratio. For clarity, To plot these curves, for each media channel, it looks at the y-response, the model prediction, if the day after training, it kept all other media channels at 0, and then for the trialled channel it set its impressions to one of 50 equally spread values between 0 --> 1.2 max media_level in training data, seeing the response at each level of media. It plots the difference between y predicted return under these media levels, and having all media set to 0. The x axis is then multiplied by the average price to turn it from impressions scale to spend scale, assuming fixed price. This leads to hard-to-interpret y-scaling anyway, as what it represents, is the additional y-target you see the day after your training set, if you set your media spend (media impressions x average price) to this x-axis amount, however with carryover effects, the majority of this gain may be seen later. This does not impact the shape of the saturation curve, which will still reflect the learned saturation function, but it can make the y-axis scale difficult to interpret.optimize_media.find_optimal_budgets
,as in assuming budget allocation is close to the optimal one, they only allow by default a variation of (0.8 --> 1.2) x the original media channel spend for each channel. This is common practice in Budget Recommenders to make them actionable by marketing, so the worst perfoming channel isn't just switched off.
In MMM usually, the input is the cost per channel per day, external features (e.g. holidays, conferences, etc.), and the target signal. However here, the costs are the total costs and the media data is not the cost. It's not clear how this fits the model description in the literature.
How can the model be in ROI units then? And take into account the budget? Does it assume a fixed impression cost? Moreover, why should the cost be the prior? Do assume the budget allocation was close to the optimal one?