pnbd.mcmc.DrawParameters: Pareto/NBD (HB) Parameter Draws

View source: R/pareto-nbd-mcmc.R

pnbd.mcmc.DrawParametersR Documentation

Pareto/NBD (HB) Parameter Draws

Description

Returns draws from the posterior distributions of the Pareto/NBD (HB) parameters, on cohort as well as on customer level.

Usage

pnbd.mcmc.DrawParameters(
  cal.cbs,
  mcmc = 2500,
  burnin = 500,
  thin = 50,
  chains = 2,
  mc.cores = NULL,
  use_data_augmentation = TRUE,
  param_init = NULL,
  trace = 100
)

Arguments

cal.cbs

Calibration period customer-by-sufficient-statistic (CBS) data.frame. It must contain a row for each customer, and columns x for frequency, t.x for recency and T.cal for the total time observed. A correct format can be easily generated based on the complete event log of a customer cohort with elog2cbs.

mcmc

Number of MCMC steps.

burnin

Number of initial MCMC steps which are discarded.

thin

Only every thin-th MCMC step will be returned.

chains

Number of MCMC chains to be run.

mc.cores

Number of cores to use in parallel (Unix only). Defaults to min(chains, detectCores()).

use_data_augmentation

deprecated

param_init

List of start values for cohort-level parameters.

trace

Print logging statement every trace-th iteration. Not available for mc.cores > 1.

Details

See demo('pareto-ggg') for how to apply this model.

Value

2-element list:

  • level_1 list of mcmc.lists, one for each customer, with draws for customer-level parameters lambda, tau, z, mu

  • level_2 mcmc.list, with draws for cohort-level parameters r, alpha, s, beta

References

Ma, S. H., & Liu, J. L. (2007, August). The MCMC approach for solving the Pareto/NBD model and possible extensions. In Third international conference on natural computation (ICNC 2007) (Vol. 2, pp. 505-512). IEEE. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1109/ICNC.2007.728")}

Abe, M. (2009). "Counting your customers" one by one: A hierarchical Bayes extension to the Pareto/NBD model. Marketing Science, 28(3), 541-553. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1287/mksc.1090.0502")}

See Also

pnbd.GenerateData mcmc.DrawFutureTransactions mcmc.PAlive

Examples

data("groceryElog")
cbs <- elog2cbs(groceryElog, T.cal = "2006-12-31")
param.draws <- pnbd.mcmc.DrawParameters(cbs,
  mcmc = 100, burnin = 50, thin = 10, chains = 1) # short MCMC to run demo fast

# cohort-level parameter draws
as.matrix(param.draws$level_2)
# customer-level parameter draws for customer with ID '4'
as.matrix(param.draws$level_1[["4"]])

# estimate future transactions
xstar.draws <- mcmc.DrawFutureTransactions(cbs, param.draws, cbs$T.star)
xstar.est <- apply(xstar.draws, 2, mean)
head(xstar.est)

mplatzer/BTYDplus documentation built on April 9, 2024, 3:11 a.m.