Learn R Programming

BTYDplus (version 0.7.2)

pggg.mcmc.DrawParameters: Pareto/GGG Parameter Draws

Description

Returns draws from the posterior distributions of the Pareto/GGG parameters, on cohort as well as on customer level.

Usage

pggg.mcmc.DrawParameters(cal.cbs, mcmc = 2500, burnin = 500, thin = 50,
  chains = 2, mc.cores = NULL, 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 , T.cal for the total time observed, as well as the sum over logarithmic intertransaction times litt. 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()).

param_init

List of start values for cohort-level parameters.

trace

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

Value

List of length 2:

level_1

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

level_2

mcmc.list, with draws for cohort-level parameters r, alpha, s, beta, t, gamma

Details

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

References

Platzer, Michael, and Thomas Reutterer. 'Ticking Away the Moments: Timing Regularity Helps to Better Predict Customer Activity.' Marketing Science (2016).

See Also

pggg.GenerateData mcmc.PAlive mcmc.DrawFutureTransactions

Examples

Run this code
# NOT RUN {
cbs <- cdnow.sample()$cbs
param.draws <- pggg.mcmc.DrawParameters(cbs, 
  mcmc = 20, burnin = 10, thin = 2, chains = 1) # short MCMC runs for demo purposes

# 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)
# }

Run the code above in your browser using DataLab