Releases: facebookexperimental/Robyn
Releases · facebookexperimental/Robyn
v3.10.5: Objective function weight, Meta MMM API beta, website tab "Features" revamp, bug fixes
v3.10.5: Objective function weight, Meta MMM API beta, website tab "Features" revamp, bug fixes
Latest
- Feat: New arg
objective_weights
inrobyn_run()
to allow manual tuning of weights for objective functions (NRMSE, DECOMP.RSSD, MAPE.LIFT). Default weight is even weights c(1,1,1). Note: This is experimental and there's no guidance on how weights biases modelling. Commit here - Feat: Meta MMM API connector demo, a beta script. Commit here
- Doc: Updated and revamped the website "features" tab, also reorganised the navigation. see here
Full Changelog: v3.10.3...v3.10.5
v3.10.3: Objects size reduction, RSSD penalty for 0 effect media
More details on Facebook's Robyn Community post
- Feat: Reduced object sizes up to 88% #687
- Feat: RSSD penalty for 0 media effects media (parameter) #680
- Feat: Always constraint prophet coefficients to 0-1 #686
- Feat: Windsorized NRMSE on multi-objective optimization plots [1/500 default threshold] to avoid extreme skewness #693
- Feat: New
intercept
parameter passed toglmnet()
#722 - Fix: Return meaningful error when, after filtering by modeling window, a variable has no variance #619
- Fix: Removed negative carryover outputs for Weibull PDF adstock #706
- Fix: Correctly pass
plot_folder
input onrobyn_refresh()
#708
Full Changelog: v3.10.2...v3.10.3
v3.10.2: Refresh model selection and small bugs
- Fix: when running
robyn_refresh()
, select the refresh model by error_score value correctly #674 - Fix: pass
penalty.factor
when dropping intercept too - Fix: when importing holidays data, force date values as dates #663 by @richin13
- Docs: update several documentations across functions and site
New Contributors
Full Changelog: v3.10.1...v3.10.2
v3.10.1 - New “Target Efficiency” scenario for budget allocator
More details in post: Hitting ROAS target using Robyn’s budget allocator
- Feat: allocator's new scenario "target_efficiency" for ROAS/CPA target #648
- Fix: inverted CPA in allocator viz table #640
- Fix: re-enable experimental add_penalty_factor feature
- Fix: re-include spend from skipped channels #645
Full Changelog: v3.10.0...v3.10.1
v3.10.0: Allocator upgrade
More details in post: The convergence of marginal ROAS in the budget allocation in Robyn
- Feat: all new one-pager for
robyn_allocator()
showing initial, bounded and less-bounded scenarios, using last month's worth of data by default. Relevant changes from previous versions: initial spend is now mean of date range selected, not non-zero mean anymore + deprecated "max_response_expected_spend" scenario + carryover information is now provided in the curves + inform user when budget is topped and can't be fully allocated + added mROAS / mCPA for better understanding of allocation. And one step closer to the forecast functionality. #600 - Feat:
robyn_response()
now requires date or date range for adstocking (last period by default) and accepts single or multiple values to return different use cases and scenarios. - Feat: new
transform_adstock()
exported wrapper function. - Feat: added NRMSE validation on test set.
- Feat: added prophet monthly component.
- Fix: issue with differences on
OutputCollect$OutputModels
andOutputModels
to producets_validation
plot. #596 - Fix: added correct solID for fixed hyperparameters (not 1_1_1).
- Recode: reduced the size of
xDecompVec
onOutputCollect
to only pareto-front models. - Recode: got rid of "ggcorrplot" and "rPref" package dependencies.
- Docs: added blueprint link to demo.R.
Full Changelog: v3.9.0...v3.10.0
v3.9.0: Time-series validation feature
- Feat: new time series validation via time-series train/val/test dynamic splits and Adjusted R2 and NRMSE metrics reported for each group feature #545. We are adding an additional
train_size
hyperparameter to pick the size of the training size, which by default will iterate in the range of 0.5-0.8. Given it's a hyperparameter, you can change the range or fix the value manually. Turn on/off this feature using thets_validation
new parameter onrobyn_run()
; default is set toFALSE
for now. This is an important step for the forecasting coming function. - Feat: new
ts_validation()
function to plot time-series validation and convergence results. Generated and exported by default whents_validation = TRUE
, and whenexport = TRUE
, creatingts_validation_plot.png
file. - Fix: updated Adjusted R2 calculation (
get_rsq()
) for time-series validation using same denominator. - Fix: results are not sorted by lowest errors now to keep iteration results actual order.
- Feat: added prophet monthly component to enrich decomposition results #525
- Fix: correct solID (not "1_1_1") for fixed hyperparameters recreated models.
- Recode: reduced the size of
xDecompVec
onOutputCollect
by keeping pareto-front models only. - Docs: changed standard inputs on demo.R file for modeling window to include more data (3 years by default).
New Contributors
- @michellegrushkometa made their first contribution in #559
Full Changelog: v3.8.2...v3.9.0
v3.8.2: Memory friendly outputs, progress bars for Pareto-front models, bugs and docs
- Feat: new status bars for Pareto-Front models per trial to provide information on calculation status
- Feat: included carryover results into pareto_aggregated.csv output and
OutputCollect$xDecompAgg$carryover_pct
- Feat: new error message shows which hyperparameters inputs are missing #543
- Fix: substantially reduced the size of
robyn_run()
androbyn_outputs()
results (around -80% compared with 3.8.1 version's size) by removing redundant and unused data from outputs #534 - Fix: invalid argument type in check_factorvars() and issue recreating calibrated models #520
- Fix:
add_penalty_factor
parameter now works correctly with JSON files androbyn_refresh()
#543 - Fix: correct hyper-parameters length for custom data #533
- Fix: bug in RobynLearn when checking numerical data #532
- Fix: removed .iData format for legacy demo .RData files
- Fix: passing custom
pareto_fronts
input instead of "auto" now works as expected - Docs: updated released version on website, meta.com emails, update CRAN link on
robyn_update()
Full Changelog: v3.8.0...v3.8.2
v3.8.0 - Bootstrapped CI, Immediate vs Carryover, Multi-channel calibration
- Feat: Added in-cluster bootstrapped confidence intervals (CI) for ROAS and CPA. We treat each cluster of Pareto-optimal model candidates as a sample from a local optimum of the entire population. Default parameters can be customized manually with
boot_n
andsim_n
arguments. - Feat: New
robyn_calibrate()
function that replaces previous un-exported functioncalibrate_mmm()
. The new calibration method is able to separate immediate & carryover effects. When calibrating using experimental results, only the immediate response and its future carryover serve as a calibration target, as opposed to previously the total response. The historical response is excluded from calibration. - Feat: Enabled multi-channel calibration so we can use experiments that measured more than one channel with a single experiment to be used for calibration (i.e. incrementality experiment measured all
fb
but you hadfb_brand
andfb_perf
as two separate media channels/variables). - Feat: Added 2 new plots into model one-pager: bootstrapped CI plot and immediate vs carryover response plot.
- Feat: Changed default Pareto-fronts from
3
to”auto"
to pick the N that contains at least 100 models (threshold can be changed manually withmin_candidates
parameter). - Recode: improved CodeFactor's code quality score from C- to A
- Feat: Additional CI outputs containing revamped plot and CSV file.
- Feat: Enabled turning off parallel calculations when
cores = 1
. - Fix: Fixed few minor bugs and doumentations (#496, #506, #507, #515)
Full Changelog: v3.7.2...v3.8.0
v3.7.2 - CRAN update, partial results, more reproducibility
- Feat: wrap
robyn_mmm()
with atryCatch()
to return partial results if the function crashes after a certain time running and warns the user when this happens - Feat: auto-detect categorical variables (no need to set
factor_vars
parameter inrobyn_inputs()
) - Feat: include R and Robyn's versions to JSON files and InputCollect for reproducibility
- Feat: export/save raw data input for reproducibility (raw_data.csv file)
- Feat: set
Robyn::dt_prophet_holidays
as default input ondt_holidays
parameters - Fix: inverted counters in
check_hyperparameters()
message #474 - Fix: force date format before binding rows in
robyn_refresh()
#480 - Fix:
check_context()
was being skipped in some cases - Fix: when only 1 categorical value with 2 unique values crashed one-hot-encoding
- Docs: updated templates for issues and pull requests
Full Changelog: v3.7.1...v3.7.2
Full Changelog since last CRAN update: v3.6.3...v3.7.2
v3.7.1 - JSON import/export, reactivate spend exposure fitting Latest
- Feat: new
robyn_read()
androbyn_write()
functions to save and load Robyn models in a transparent, flexible, and cost-efficient way using JSON instead of RDS files (read more); also, newprint
methods for both objects containing the most relevant information - Feat: new
robyn_recreate()
to rebuild any model'sInputCollect
andOutputCollect
objects based on their JSON files and data - Feat: reactivated spend exposure fitting and plotting #463
- Feat: updated
robyn_response()
to receive numeric vectors #464 - Feat: enabled
calibration_input
onrobyn_refresh()
to calibrate on the fly and more robust checks on data inputs - Feat added Robyn and R versions as the caption in one-pagers to help users debug
- Feat: trimmed spend response curves on
robyn_allocator()
androbyn_onepagers()
plots outputs - Fix: missed intercept calculation in fitted vs residual plot #462
- Fix: when single categorical value had 2 levels it crashed the one-hot-encoding process
- Fix: datasets with no categorical data crashed when using one-hot-encoding #419
- Fix: no need to manually sort the dates before passing the data to
robyn_inputs()
. Ref:check_datevar()
#448 - Fix: fixed ggplot warnings on some plots (previously hidden with suppressWarnings)
- Other: added badges with website and Facebook group in README files (see here), updated documentation and website, and more data checks on user inputs
New Contributors
Full Changelog: v3.7.0...v3.7.1