Calculates the log-likelihood sum of the BG/NBD model.
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.
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
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
The total log-likelihood of the provided data.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.