Pareto/NBD Conditional Expected Transactions
Uses Pareto/NBD model parameters and a customer's past transaction behavior to return the number of transactions they are expected to make in a given time period.
pnbd.ConditionalExpectedTransactions(params, T.star, x, t.x, T.cal)
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.
length of time for which we are calculating the expected number of transactions.
number of repeat transactions in the calibration period T.cal, or a vector of calibration period frequencies.
time of most recent repeat transaction, or a vector of recencies.
length of calibration period, or a vector of calibration period lengths.
E[X(T.cal, T.cal + T.star) | x, t.x, r, alpha, s, beta]
T.cal may be
vectors. The standard rules for vector operations apply - if they
are not of the same length, shorter vectors will be recycled
(start over at the first element) until they are as long as the
longest vector. It is advisable to keep vectors to the same length
and to use single values for parameters that are to be the same
for all calculations. If one of these parameters has a length
greater than one, the output will be a vector of probabilities.
Number of transactions a customer is expected to make in a time period of length t, conditional on their past behavior. If any of the input parameters has a length greater than 1, this will be a vector of expected number of transactions.
Fader, Peter S., and Bruce G.S. Hardie. “A Note on Deriving the Pareto/NBD Model and Related Expressions.” November. 2005. Web. http://www.brucehardie.com/notes/008/
1 2 3 4 5 6 7 8 9 10
params <- c(0.55, 10.56, 0.61, 11.64) # Number of transactions a customer is expected to make in 2 time # intervals, given that they made 10 repeat transactions in a time period # of 39 intervals, with the 10th repeat transaction occurring in the 35th # interval. pnbd.ConditionalExpectedTransactions(params, T.star=2, x=10, t.x=35, T.cal=39) # We can also compare expected transactions across different # calibration period behaviors: pnbd.ConditionalExpectedTransactions(params, T.star=2, x=5:20, t.x=25, T.cal=39)
Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.