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

feat: RSSD penalty for 0 media effects media (parameter) #680

Merged
merged 3 commits into from
Apr 14, 2023

Conversation

laresbernardo
Copy link
Collaborator

No description provided.

gufengzhou and others added 2 commits April 4, 2023 15:35
enabling penalisation of model decomp with 0 media effects.
@laresbernardo laresbernardo self-assigned this Apr 11, 2023
@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 11, 2023
@laresbernardo laresbernardo changed the title RSSD penalty for coeff's 0 RSSD penalty for 0 media effects media (parameter) Apr 11, 2023
R/R/model.R Outdated
@@ -42,6 +42,8 @@
#' "unconstrained". By default, if intercept is negative, Robyn will drop intercept
#' and refit the model. Consider changing intercept_sign to "unconstrained" when
#' there are \code{context_vars} with large positive values.
#' @param rssd_0eff Logical. When TRUE, the objective function DECOMP.RSSD will
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I'd change rssd_0eff with a less complex parameter name, maybe something like rssd_penalty or rssd_zero_effect or ... something without digits
  • We use "Boolean" instead of "Logical" across the documentation.
  • Shouldn't this parameter live in the error calculation rather than here? We can pass the parameter via ... instead.
  • Should we be more explicit on how we penalize?
  • Should we apply this on robyn_refresh() as well?
  • This is a quite relevant change - we should adapt the documentation on the site as well to reflect the change.

CC @gufengzhou

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • then rssd_zero_penalty
  • ok
  • No, it's part of the objective function, not just a score for output. or where do you suggest?
  • It's actually quite clear IMO. Given the same RSSD score, a model with 50% 0-coef will get penalized by RSSD * 1.5 (larger error), while another model with no 0-coef gets unpenalized with RSSD *1
  • For refresh, I'm not sure at the moment, because the RSSD for refresh is calculated from the net new refresh datapoints, with the purpose to have beta coefs reflecting bigger spend changes --> If I stop spending on channel A for a week, ideally this should be reflected or not penalized. I'm not sure about this yet.
  • Yes we should!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, pending only:

  • Update site with this new parameter information (even though I've added your example to the internal parameter documentation).
  • Agree on refresh default value.

QQ: why would a user set rssd_zero_penalty = FALSE? Is it necesary we enable it as a parameter?

@laresbernardo laresbernardo changed the title RSSD penalty for 0 media effects media (parameter) feat: RSSD penalty for 0 media effects media (parameter) Apr 12, 2023
@laresbernardo laresbernardo merged commit d66716f into main Apr 14, 2023
1 check passed
@laresbernardo laresbernardo deleted the rssd_penalty_0eff branch April 14, 2023 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants