Learn R Programming

grizbayr (version 1.3.5)

sample_rev_per_session: Sample Rev Per Session

Description

Adds 3 new nested columns to the input_df: `beta_params`, `gamma_params`, and `samples` `beta_params` and `gamma_params` in each row should be a tibble of length 2 (\(\alpha\) and \(\beta\) parameters and \(k\) and \(\theta\) parameters) `samples` in each row should be a tibble of length `n_samples`

Usage

sample_rev_per_session(input_df, priors, n_samples = 50000)

Value

input_df with 3 new nested columns `beta_params`, `gamma_params`, and `samples`

Arguments

input_df

Dataframe containing option_name (str), sum_conversions (dbl), sum_revenue (dbl), and sum_clicks (dbl).

priors

Optional list of priors alpha0, beta0 for Beta and k0, theta0 for Gamma. Default \(Beta(1,1)\) and \(Gamma(1, 250)\) will be use otherwise.

n_samples

Optional integer value. Defaults to 50,000 samples.

Details

See update_rules vignette for a mathematical representation.

$$RevPerSession = RevPerOrder * OrdersPerClick$$ This is a combination of a Beta-Bernoulli update and a Gamma-Exponential update.

$$conversion_i ~ Bernoulli(\phi)$$ $$revenue_i ~ Exponential(\lambda)$$ $$\phi ~ Beta(\alpha, \beta)$$ $$\lambda ~ Gamma(k, \theta)$$

$$revenue_i ~ Bernoulli(\phi) * Exponential(\lambda)^-1)$$ $$Rev Per Session ~ \phi / \lambda$$

Conversion Rate is sampled from a Beta distribution with a Binomial likelihood of an individual converting.

Average Rev Per Order is sampled from a Gamma distribution with an Exponential likelihood of Revenue from an individual order. This function makes sense to use if there is a distribution of possible revenue values that can be produced from a single order or conversion.