Learn R Programming

grizbayr

A Bayesian Inference Package for A|B and Bandit Marketing Tests

Description:

Uses simple Bayesian conjugate prior update rules to calculate the following metrics for various marketing objectives:

  1. Win Probability of each option
  2. Value Remaining in the Test
  3. Percent Lift Over the Baseline

This allows a user to implement Bayesian Inference methods when analyzing the results of a split test or Bandit experiment.

Examples

See the intro vignette for examples to get started.

Marketing objectives supported:

  • Conversion Rate
  • Response Rate
  • Click Through Rate (CTR)
  • Revenue Per Session
  • Multi Revenue Per Session
  • Cost Per Activation (CPA)
  • Total Contribution Margin (CM)
  • CM Per Click
  • Cost Per Click (CPC)
  • Session Duration (seconds)
  • Page Views Per Session

Contributing

New Posterior Distributions

To add a new posterior distribution you must complete the following:

  1. Create a new function called sample_...(input_df, priors, n_samples). Use the internal helper functions update_gamma, update_beta, etc. included in this package or you can create a new one.
  2. This function (and the name) must be added to the switch statement in sample_from_posterior()
  3. A new row must be added to the internal data object distribution_column_mapping.
    • Select this object from the package
    • Add a new row with a 1 for every column that is required for this distribution (this is for data validation and clear alerting for the end user)
    • Save the updated tibble object using use_data(new_tibble, internal = TRUE, overwrite = TRUE) and it will be saved as sysdata.rda in the package for internal use.
    • Update the intro.Rmd markdown table to include which columns are required for your function.
  4. Create a PR for review.

New Features Ideas (TODO)

  • High Density Credible Intervals with each option
  • Conjugate Prior Update Rules vignette deriving each marketing objective update_rules

Package Name

The name is a play on Bayes with an added r (bayesr). The added griz (or Grizzly Bear) creates a unique name that is searchable due to too many similarly named packages.

Copy Link

Version

Install

install.packages('grizbayr')

Monthly Downloads

251

Version

1.3.5

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Ryan Angi

Last Published

October 9th, 2023

Functions in grizbayr (1.3.5)

sample_rev_per_session

Sample Rev Per Session
sample_page_views_per_session

Sample Page Views Per Session (Visit)
estimate_win_prob_vs_baseline_given_posterior

Estimate Win Probability vs. Baseline Given Posterior
find_best_option

Find Best Option
validate_input_df

Validate Input DataFrame
sample_total_cm

Sample Total CM (Given Impression Count)
update_beta

Update Beta
validate_posterior_samples

Validate Posterior Samples Dataframe
validate_priors

Validate Priors
impute_missing_options

Impute Missing Options
sample_ctr

Sample Click Through Rate
validate_wrt_option

Validate With Respect To Option
sample_multi_rev_per_session

Sample Multiple Revenue Per Session
sample_cpc

Sample Cost Per Click
sample_from_posterior

Sample From Posterior
update_dirichlet

Update Dirichlet Distribution
validate_input_column

Validate Input Column
sample_session_duration

Sample Session Duration
sample_response_rate

Sample Response Rate
validate_data_values

Validate Data Values
update_gamma

Update Gamma
estimate_value_remaining

Estimate Value Remaining
estimate_win_prob

Estimate Win Probability
calculate_multi_rev_per_session

Calculate Multi Rev Per Session
estimate_win_prob_given_posterior

Estimate Win Probability Given Posterior Distribution
sample_conv_rate

Sample Conversion Rate
estimate_win_prob_vs_baseline

Estimate Win Probability vs. Baseline
estimate_all_values

Estimate All Values
is_prior_valid

Is Prior Valid
calculate_total_cm

Calculate Total CM
estimate_lift

Estimate Lift Distribution
is_winner_max

Is Winner Max
estimate_lift_vs_baseline

Estimate Lift vs Baseline
estimate_loss

Estimate Loss
grizbayr-package

grizbayr: Bayesian Inference for A|B and Bandit Marketing Tests
rdirichlet

Random Dirichlet
sample_cm_per_click

Sample CM Per Click
sample_cpa

Sample Cost Per Activation (CPA)