Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

robyn_refresh produces only models different from the original #890

Closed
angelinaparkina opened this issue Dec 22, 2023 · 3 comments
Closed
Assignees

Comments

@angelinaparkina
Copy link

Project Robyn

Describe issue

Hi team Robyn,
I have a working model, where some channels were set to 0 by the model. Other models from the same run did set 2 or 1 more channels to 0, which did not seem realistic. So I chose the one that had the minimum amount of channels being set to 0, and most realistic ROIs.

After choosing the best model, I reproduced it multiple times to run the budget allocator. The ROIs from the reproduce function were the same as in the original model.

Now, I would like to refresh the model with 30 new weeks of data (original model has 173 weeks). When I do that with the refresh function, two channels are set to 0, which had an effect in the original model. For a test, I tried to refresh it with only two weeks of data, which produces the same effect - two channels are set to 0 in all the model variants. Since that does not seem realistic from the channels perspective, I would want to get more or less similar results to the original model, at least in the sense that the channels that had an effect before still do, even if we update the model with 2 weeks of data.

A couple of things that could be relevant here:

  • All the hyperparameters seem more or less the same as in the original model, except for penalty, which cannot be specified (it always runs with the range 0-1). It seems like the optimization process is going in the direction of the neighbour models of the original run (with those channels being 0), and cannot settle on anything similar to the original model. Is there any way to also specify the penalty? Maybe that would help nudge the process in the direction of the chosen model.
  • Several channels being set to 0 can be explained by multicolinearity between channels, however it is lower than 0.5, so i would not expect for it to have such a big effect.

What other reasons can there be for such a result?

Provide reproducible example

I'm attaching the results of the original model (upper), and the example of a refreshed model (lower) (with 2 weeks).

image
image

The code I am using for refresh:

Robyn <- robyn_refresh( json_file = json_file, dt_input = data, dt_holidays = prophet, refresh_steps = 2, refresh_mode = "manual", refresh_iters = 2000, refresh_trials = 3, version_prompt=FALSE, plot_folder = '' )
I'm also including hyperparameters from the refresh + hyperparameters for the original model.
hyperparameters_refresh_issue.xlsx

Let me know if anything else is needed to debug.

Environment & Robyn version

Make sure you're using the latest Robyn version before you post an issue.

  • Check and share Robyn version: ‘3.10.5.9009’
  • R version (Please, check and share: 4.2.2 Patched (2022-11-10 r83330)
@ghltk
Copy link

ghltk commented Feb 28, 2024

@ddempseyr @gufengzhou
Hi there,
I am encountering this issue as well. Is there any update here?

Thank you!

@gufengzhou gufengzhou self-assigned this Feb 28, 2024
facebook-github-bot pushed a commit that referenced this issue Mar 1, 2024
- Previous refresh winner selection showed larger deviation from initial model, see issue #890. Piloting change to select the most consistent model to the previous one based on the smallest decomp error.
- change objective weights to solely focus on decomp.rssd to force more consistency of decomp
- bump up version
@gufengzhou
Copy link
Contributor

FYI I've shipped an update to refresh and hopefully the results are now more consistent. Please update the package and test

@amanrai2508
Copy link

amanrai2508 commented May 24, 2024

Hi @gufengzhou

I am facing the same type of issues while doing refresh.
Version : 3.10.7 (I think in 3.10.6 it worked)

This image is after the refresh of the model (have added 2 weeks in the refreshed file):
1_142_3

This image is for the main model(solid) :
3_629_6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants