facebookexperimental / facebookexperimental/Robyn

Budget allocator: Max response gives lower response (-negative %) Bounded than Initial

オープン
#1,002 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Jupyter Notebook
スター
1.5k
フォーク
433
PR マージ指標
30日以内にマージされた PR はありません

説明

## Project Robyn

## Describe issue
The Allocator function with the maximize response option sometimes provides a lower response for Bounded than the Initial. My assumption was that the optimized result could never be lower than the Initial budget, so would like to seek understanding here. Or whether this is a bug.

Note: The model is trained on **conversions** (not revenue).

## Provide reproducible example
Due to sensitive nature of the data, it would be hard to share, but I hope the bellow Allocator 1-pager shows enough detail.
R code to create the 1 pager (both R and Python API results are the same):
```R
# Example 2: maximize response for latest 40 periods with given spend
AllocatorCollect2 <- robyn_allocator(
InputCollect = InputCollect,
OutputCollect = OutputCollect,
select_model = robyn_model,
date_range = "last_40",
channel_constr_low = 0.7,
channel_constr_up = 1.2,
channel_constr_multiplier = 3,
scenario = "max_response",
export = TRUE
)
```
![3_180_19_reallocated_best_cpa_40-weeks_s](https://github.com/facebookexperimental/Robyn/assets/8008618/7ee029fb-387f-44c8-b3a7-5c8d33c65378)

As you can see,
- Initial: Spend 0% | Resp: 0.00%
- Bounded: Spend +0% | Resp: -2.56%
- Bounded x3: Spend +0% | Resp: +12.60%

This one is the weirdest, with Bounded giving a lower response, but Bounded x3 giving a higher one.
With different settings (different amount of weeks, different constaints), I've also seen:
- Both bounded and bounded x5 being higher than Initial, but bounded giving a higher +% than x5
- Both bounded and bounded x5 being lower, with x5 even lower than bounded

Note: There is a period with 0 spends for some channels in the 40 weeks range. However, when checking only the last 8 weeks (with 1 channel having no spend at all, and 1 channel at some point 0 spend), weird behavior still shows up (Bounded having a higher +% than Bounded x5).

## Environment & Robyn version
Make sure you're using the latest Robyn version before you post an issue.
- Robyn version: `3.10.5.9000`
- R version: R version 4.3.3 (2024-02-29) | Executed as Notebook in JupyterLab
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: Debian GNU/Linux 11 (bullseye)

Matrix products: default
BLAS/LAPACK: /opt/conda/envs/my_env/lib/libopenblasp-r0.3.27.so; LAPACK version 3.12.0

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。