sample_rev_per_session {grizbayr} | R Documentation |
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)
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 |
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.
Value
input_df with 3 new nested columns 'beta_params', 'gamma_params', and 'samples'