bgbb.PlotTrackingInc: BG/BB Tracking Incremental Transactions Plot

Description Usage Arguments Details Value References Examples

View source: R/bgbb.R

Description

Plots the actual and expected incremental total repeat transactions by all customers for the calibration and holdout periods. Also returns a matrix of this comparison.

Usage

1
2
3
4
5
6
7
8
9
bgbb.PlotTrackingInc(
  params,
  rf.matrix,
  actual.inc.repeat.transactions,
  xlab = "Time",
  ylab = "Transactions",
  xticklab = NULL,
  title = "Tracking Incremental Transactions"
)

Arguments

params

BG/BB parameters - a vector with alpha, beta, gamma, and delta, in that order. Alpha and beta are unobserved parameters for the beta-Bernoulli transaction process. Gamma and delta are unobserved parameters for the beta-geometric dropout process.

rf.matrix

recency-frequency matrix. It must contain columns for frequency ("x"), recency ("t.x"), number of transaction opportunities in the calibration period ("n.cal"), and the number of customers with this combination of recency, frequency and transaction opportunities in the calibration period ("custs"). Note that recency must be the time between the start of the calibration period and the customer's last transaction, not the time between the customer's last transaction and the end of the calibration period.

actual.inc.repeat.transactions

vector containing the incremental number of repeat transactions made by customers in all transaction opportunities (both calibration and holdout periods). Its unit of time should be the same as the units of the recency-frequency matrix used to estimate the model parameters.

xlab

descriptive label for the x axis.

ylab

descriptive label for the y axis.

xticklab

vector containing a label for each tick mark on the x axis.

title

title placed on the top-center of the plot.

Details

The holdout period should immediately follow the calibration period. This function assumes that all customers' calibration periods end on the same date, rather than starting on the same date (thus customers' birth periods are determined using max(n.cal) - n.cal rather than assuming that they are all 0).

Value

Matrix containing actual and expected incremental repeat transactions.

References

Fader, Peter S., Bruce G.S. Hardie, and Jen Shang. "Customer-Base Analysis in a Discrete-Time Noncontractual Setting." Marketing Science 29(6), pp. 1086-1108. 2010. INFORMS. Web.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
data(donationsSummary)
# donationsSummary$rf.matrix already has appropriate column names
rf.matrix <- donationsSummary$rf.matrix

# starting-point parameters
startingparams <- c(1, 1, 0.5, 3)
# estimated parameters
est.params <- bgbb.EstimateParameters(rf.matrix, startingparams)

# get the annual repeat transactions
actual.inc.repeat.transactions <- donationsSummary$annual.trans

# Set appropriate x-axis
x.tickmarks <- c( "'96","'97","'98","'99","'00","'01","'02","'03","'04","'05","'06" )

# Plot actual vs. expected transactions. The calibration period was 6 periods long.
bgbb.PlotTrackingInc(est.params, rf.matrix, actual.inc.repeat.transactions, xticklab=x.tickmarks)

Example output

Loading required package: hypergeo
             [,1]     [,2]     [,3]    [,4]     [,5]     [,6]     [,7]     [,8]
actual   5652.000 4674.000 4019.000 3552.00 3555.000 3163.000 3110.000 2938.000
expected 5535.886 4717.111 4147.702 3724.78 3396.035 3131.821 2913.976 2730.701
             [,9]    [,10]   [,11]
actual   2703.000 2573.000 1936.00
expected 2573.966 2438.104 2318.99

BTYD documentation built on Nov. 18, 2021, 1:10 a.m.