bgnbd.cbs.LL {BTYD} | R Documentation |
BG/NBD Log-Likelihood Wrapper
Description
Calculates the log-likelihood sum of the BG/NBD model.
Usage
bgnbd.cbs.LL(params, cal.cbs)
Arguments
params |
BG/NBD parameters - a vector with r, alpha, a, and b, in that order. r and alpha are unobserved parameters for the NBD transaction process. a and b are unobserved parameters for the Beta geometric dropout process. |
cal.cbs |
calibration period CBS (customer by sufficient statistic). It
must contain columns for frequency ("x"), recency ("t.x"), and total time
observed ("T.cal"). 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. If your data is compressed (see |
Details
Note: do not use a compressed cal.cbs
matrix. It makes quicker work
for Pareto/NBD estimation as implemented in this package, but the opposite is
true for BG/NBD. For proof, compare the definition of the
bgnbd.cbs.LL
to that of pnbd.cbs.LL
.
Value
The total log-likelihood of the provided data.
See Also
Examples
data(cdnowSummary)
cal.cbs <- cdnowSummary$cbs
# cal.cbs already has column names required by method
# random assignment of parameters
params <- c(0.5, 6, 1.2, 3.3)
# returns the log-likelihood of the given parameters
bgnbd.cbs.LL(params, cal.cbs)
# compare the speed and results to the following:
cal.cbs.compressed <- dc.compress.cbs(cal.cbs)
bgnbd.cbs.LL (params, cal.cbs.compressed)
# Returns the log likelihood of the parameters for a customer who
# made 3 transactions in a calibration period that ended at t=6,
# with the last transaction occurring at t=4.
bgnbd.LL(params, x=3, t.x=4, T.cal=6)
# We can also give vectors as function parameters:
set.seed(7)
x <- sample(1:4, 10, replace = TRUE)
t.x <- sample(1:4, 10, replace = TRUE)
T.cal <- rep(4, 10)
bgnbd.LL(params, x, t.x, T.cal)