sample_rev_per_session: Sample Rev Per Session

View source: R/sample_rev_per_session.R

sample_rev_per_sessionR 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 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.

Value

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


grizbayr documentation built on Oct. 9, 2023, 5:10 p.m.