Skip to content

Commit

Permalink
Release v0.8.0
Browse files Browse the repository at this point in the history
* Single Rcpp file per model (#157)
* Refactor parts of PNBD dyncov LL in Rcpp (#158 #160)
* Bugfix: Parameter names are removed by some optimx methods (#159)

Co-authored-by: Patrik Schilter <[email protected]>
Co-authored-by: Elliot Shin Oblander <[email protected]>
  • Loading branch information
pschil and oblander authored Apr 2, 2021
2 parents 590c074 + bcb0604 commit 6582677
Show file tree
Hide file tree
Showing 60 changed files with 3,278 additions and 2,835 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/Tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,6 @@ jobs:
print("Not on release branch: Dont run all tests (skip_on_ci())")
}
reporter <- RstudioReporter$new() # has to be defined outside capture.output to still print
reporter <- RStudioReporter$new() # has to be defined outside capture.output to still print
capture.output(devtools::test(reporter = reporter, stop_on_failure=TRUE, stop_on_warning=TRUE))
shell: Rscript {0}
44 changes: 25 additions & 19 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
Package: CLVTools
Title: Tools for Customer Lifetime Value Estimation
Version: 0.7.0
Date: 2020-08-26
Version: 0.8.0
Date: 2021-03-22
Authors@R: c(
person(given="Patrick", family="Bachmann", email = "[email protected]", role = c("cre","aut")),
person(given="Jeffrey", family="Naef", email = "[email protected]",role = "aut"),
person(given="Patrik", family="Schilter", email = "[email protected]",role = "aut"),
person(given="Niels", family="Kuebler", email = "[email protected]", role = "aut"),
person(given="Markus", family="Meierer", email = "[email protected]", role = "aut"),
person(given="Niels", family="Kuebler", email = "[email protected]", role = "aut"))
person(given="Jeffrey", family="Naef", email = "[email protected]",role = "aut"),
person(given="Elliot", family="Oblander", email = "[email protected]",role = "aut"),
person(given="Patrik", family="Schilter", email = "[email protected]",role = "aut")
)
Depends:
R (>= 3.5.0),
methods
Description: Probabilistic latent customer attrition models (also known as "buy-'til-you-die models") are used to
predict future purchase behavior of customers. This package includes fast and accurate implementations of various
probabilistic latent customer attrition models for non-contractual settings (e.g., retail business) with and
without time-invariant and time-varying covariates. Currently, the package includes the Pareto/NBD model
(Pareto/Negative-Binomial-Distribution), the BG/NBD mode (Beta-Gamma/Negative-Binomial-Distribution) and the GGom/NBD
(Gamma-Gompertz/Negative-Binomial-Distribution) for the purchase and the attrition processes as well as the Gamma/Gamma model
for the spending process. For reference to the Pareto/NBD model, see Schmittlein DC, Morrison DG, Colombo R (1987) <doi:10.1287/mnsc.33.1.1>,
for the BG/NBD model, see Fader PS, Hardie BG, Lee K (2005) <doi:10.1287/mksc.1040.0098> and for the GGom/NBD model see Bemmaor AC, Glady N (2012)
<doi:10.1287/mnsc.1110.1461>. For reference to the Gamma/Gamma model, see Fader PS, Hardie BG, Lee K (2005) <doi:10.1509/jmkr.2005.42.4.415>.
Description:
A set of state-of-the-art probabilistic modeling approaches to derive estimates of individual customer lifetime values (CLV).
Commonly, probabilistic approaches focus on modelling 3 processes, i.e. individuals' attrition, transaction, and spending process.
Latent customer attrition models, which are also known as "buy-'til-you-die models", model the attrition as well as the transaction process.
They are used to make inferences and predictions about transactional patterns of individual customers such as their future purchase behavior.
Moreover, these models have also been used to predict individuals’ long-term engagement in activities such as playing an online game or
posting to a social media platform. The spending process is usually modelled by a separate probabilistic model. Combining these results yields in
lifetime values estimates for individual customers.
This package includes fast and accurate implementations of various probabilistic models for non-contractual settings
(e.g., grocery purchases or hotel visits). All implementations support time-invariant covariates, which can be used to control for e.g.,
socio-demographics. If such an extension has been proposed in literature, we further provide the possibility to control for time-varying
covariates to control for e.g., seasonal patterns.
Currently, the package includes the following latent attrition models to model individuals' attrition and transaction process:
[1] Pareto/NBD model (Pareto/Negative-Binomial-Distribution),
[2] the Extended Pareto/NBD model (Pareto/Negative-Binomial-Distribution with time-varying covariates),
[3] the BG/NBD model (Beta-Gamma/Negative-Binomial-Distribution) and the
[4] GGom/NBD (Gamma-Gompertz/Negative-Binomial-Distribution).
Further, we provide an implementation of the Gamma/Gamma model to model the spending process of individuals.
Imports:
data.table (>= 1.12.0),
foreach (>= 1.5.0),
ggplot2 (>= 3.2.0),
lubridate (>= 1.7.8),
Matrix (>= 1.2-17),
Expand All @@ -32,8 +42,6 @@ Imports:
utils
Suggests:
covr,
doFuture,
doParallel,
future,
knitr,
rmarkdown,
Expand Down Expand Up @@ -129,8 +137,6 @@ Collate:
'pnbd_dyncov_CET.R'
'pnbd_dyncov_DECT.R'
'pnbd_dyncov_LL.R'
'pnbd_dyncov_LL_Bi.R'
'pnbd_dyncov_LL_Di.R'
'pnbd_dyncov_createwalks.R'
'pnbd_dyncov_expectation.R'
'pnbd_dyncov_makewalks.R'
Expand Down
2 changes: 0 additions & 2 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ import(data.table)
import(optimx)
importFrom(MASS,ginv)
importFrom(Matrix,nearPD)
importFrom(foreach,"%dopar%")
importFrom(foreach,foreach)
importFrom(ggplot2,aes)
importFrom(ggplot2,element_blank)
importFrom(ggplot2,element_line)
Expand Down
11 changes: 11 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# CLVTools 0.8.0

### NEW FEATURES
* Partially refactor the LL of the extended Pareto/NBD in Rcpp with code kindly donated by Elliot Shin Oblander
* Improved documentation

### BUG FIXES
* Optimization methods nlm and nlminb can now be used. Thanks to Elliot Shin Oblander for reporting



# CLVTools 0.7.0

### NEW FEATURES
Expand Down
Loading

0 comments on commit 6582677

Please sign in to comment.