Pareto/NBD Tracking Incremental Transactions Comparison

Share:

Description

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

Usage

1
2
3
pnbd.PlotTrackingInc(params, T.cal, T.tot, actual.inc.tracking.data,
  xlab = "Week", ylab = "Transactions", xticklab = NULL,
  title = "Tracking Weekly Transactions")

Arguments

params

Pareto/NBD parameters - a vector with r, alpha, s, and beta, in that order. r and alpha are unobserved parameters for the NBD transaction process. s and beta are unobserved parameters for the Pareto (exponential gamma) dropout process.

T.cal

a vector to represent customers' calibration period lengths (in other words, the "T.cal" column from a customer-by-sufficient-statistic matrix).

T.tot

end of holdout period. Must be a single value, not a vector.

actual.inc.tracking.data

vector containing the incremental number of repeat transactions made by customers for each period in the total time period (both calibration and holdout periods). See details.

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

actual.inc.tracking.data does not have to be in the same unit of time as the T.cal data. T.tot will automatically be divided into periods to match the length of actual.inc.tracking.data. See pnbd.ExpectedCumulativeTransactions.

The holdout period should immediately follow the calibration period. This function assume 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(T.cal) - T.cal rather than assuming that it is 0).

Value

Matrix containing actual and expected incremental repeat transactions.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
data(cdnowSummary)
cal.cbs <- cdnowSummary$cbs
# cal.cbs already has column names required by method

# Cumulative repeat transactions made by all customers across calibration
# and holdout periods
cu.tracking <- cdnowSummary$cu.tracking
# make the tracking data incremental
inc.tracking <- dc.CumulativeToIncremental(cu.tracking)

# parameters estimated using pnbd.EstimateParameters
est.params <- cdnowSummary$est.params

# All parameters are in weeks; the calibration period lasted 39
# weeks and the holdout period another 39.
pnbd.PlotTrackingInc(est.params, T.cal=cal.cbs[,"T.cal"], T.tot=78, inc.tracking)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.