Skip to content

v3.12.0 [GitHub R]

Latest
Compare
Choose a tag to compare
@gufengzhou gufengzhou released this 19 Dec 13:49
· 6 commits to main since this release

What's Changed

Exposure fitting, curve calibration & reach and frequency allocator (#1132)

  • Exposures (Imp/GRP etc) will be prioritised over spend for parent model fitting
  • Deprecate function fit_spend_exposure, incl. Michaelis Menten. Nonlinear fitting between spend and exposure wasn't improving fitting significantly. Instead, future curve calibration feature will aim to improve curve identification.
  • Use cpe (cost per exposure) as ratio for spend to exposure translation. use cpe_window to scale the whole dataset in order to obtain the right spend scale for modeling period.
  • remove minpack.lm / nlsLM dependency
  • update exposure plot
  • Simulate cumulative R&F dataset with frequency bucket
  • add beta coef besides alpha and gamma to nevergrad hyperparameter to improve curve fit
  • plot with freq_bucket as well as onepager per trial
  • add df_curve_reach_freq as dummy dataset
  • create robyn_calibrate that consumes curve input and outputs hyperparameter ranges as input.
  • Rename previous internal robyn_calibrate function as lift_calibration
  • early stop convergence with while loop
  • update documentation
  • Simulated R&F data
  • The R&F hill params are estimated using a multiplicative equation with Nevergrad
  • visualisation of surface
  • R&F allocator with nlopt
  • constrain validation
  • update: checks, input, transformation & website
  • simplify various check functions
  • adapt model.R, incl. reset run_transformations params to have clearer overview of params needed. simplify transformation.R by removing unnecessary checks
  • In model.R & pareto.R: remove decompSpendDist from both scripts to reduce memory leak. Use xDecompAgg subsets instead
  • In transformation.R & response.R: unify transformation namings in run_transformation and robyn_response
  • In response.R: remove exposure extrapolation because it's already done in robyn_input. Also add inflexion point to output.
  • In plots.R: fix onepager saturation plot issues
  • In pareto.R: rewrite run_dt_resp() as response_wrapper and align transformation logic & naming.
  • In pareto: Replace foreach response loop with lapply for simplicity.
  • In pareto.R: Simplify plot data generation process, esp for saturation curve plot, actual vs predicted plot & immediate vs carryover plot.
  • In pareto.R: Remove redundancy in xDecompVecCollect -> remove type rawMedia, rawSpend, predictedExposure, saturatedMedia & saturatedSpendReversed. Only keep adstockedMedia & decompMedia for response curve plotting.
  • add set_default_hyppar for easier testing
  • website update for all above changes

Contributors

@gufengzhou, @laresbernardo

Full Changelog: v3.11.0...v3.12.0