| Type: | Package | 
| Title: | Functions to Assess the Business Impact of Churn Prediction Models | 
| Version: | 1.0.0 | 
| Author: | Peer Christensen | 
| Maintainer: | Peer Christensen <hr.pchristensen@gmail.com> | 
| Description: | Calculate the financial impact of using a churn model in terms of cost, revenue, profit and return on investment. | 
| License: | MIT + file LICENSE | 
| URL: | https://github.com/PeerChristensen/modelimpact | 
| BugReports: | https://github.com/PeerChristensen/modelimpact/issues | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| RoxygenNote: | 7.1.1 | 
| Imports: | dplyr, magrittr, utils | 
| Depends: | R (≥ 2.10) | 
| NeedsCompilation: | no | 
| Packaged: | 2021-05-05 14:33:56 UTC; peerchristensen | 
| Repository: | CRAN | 
| Date/Publication: | 2021-05-06 08:50:02 UTC | 
Calculate cost and revenue
Description
Calculates cost and revenue after sorting observations.
Usage
cost_revenue(
  x,
  fixed_cost = 0,
  var_cost = 0,
  tp_val = 0,
  prob_col = NA,
  truth_col = NA
)
Arguments
| x | A data frame containing predicted probabilities of a target event and the actual outcome/class. | 
| fixed_cost | Fixed cost (e.g. of a campaign) | 
| var_cost | Variable cost (e.g. discount offered) | 
| tp_val | The average value of a True Positive | 
| prob_col | The unquoted name of the column with probabilities of the event of interest. | 
| truth_col | The unquoted name of the column with the actual outcome/class. Possible values are 'Yes' and 'No'. | 
Value
A data frame with the following columns:
row       = row numbers 
pct       = percentiles 
cost_sum  = cumulated costs 
cum_rev   = cumulated revenue
Examples
cost_revenue(predictions,
   fixed_cost = 1000,
   var_cost   = 100,
   tp_val     = 2000,
   prob_col   = Yes,
   truth_col  = Churn)
Predictions from a customer churn model.
Description
A dataset containing 2145 observations with four columns specifying predicted probabilities and predicted and actual class.
Usage
predictions
Format
A data frame with 2145 rows and 4 variables:
- predict
- Predicted class 
- No
- Predicted probability of class 'No' 
- Yes
- Predicted probability of class 'Yes' 
- Churn
- Actual class 
...
Calculate profit
Description
Calculates profit after sorting observations.
Usage
profit(
  x,
  fixed_cost = 0,
  var_cost = 0,
  tp_val = 0,
  prob_col = NA,
  truth_col = NA
)
Arguments
| x | A data frame containing predicted probabilities of a target event and the actual outcome/class. | 
| fixed_cost | Fixed cost (e.g. of a campaign) | 
| var_cost | Variable cost (e.g. discount offered) | 
| tp_val | The average value of a True Positive | 
| prob_col | The unquoted name of the column with probabilities of the event of interest. | 
| truth_col | The unquoted name of the column with the actual outcome/class. Possible values are 'Yes' and 'No'. | 
Value
A data frame with the following columns:
row       = row numbers 
pct       = percentiles 
profit    = profit for number of rows selected
Examples
profit(predictions,
     fixed_cost = 1000,
     var_cost   = 100,
     tp_val     = 2000,
     prob_col   = Yes,
     truth_col  = Churn)
Find optimal threshold for churn prediction (class)
Description
Finds the optimal threshold (from a business perspective) for classifying churners.
Usage
profit_thresholds(
  x,
  var_cost = 0,
  prob_accept = 1,
  tp_val = 0,
  fp_val = 0,
  tn_val = 0,
  fn_val = 0,
  prob_col = NA,
  truth_col = NA
)
Arguments
| x | A data frame containing predicted probabilities of a target event and the actual outcome/class. | 
| var_cost | Variable cost (e.g. of a campaign offer) | 
| prob_accept | Probability of offer being accepted. Defaults to 1. | 
| tp_val | The average value of a True Positive. 'var_cost' is automatically subtracted. | 
| fp_val | The average cost of a False Positive. 'var_cost' is automatically subtracted. | 
| tn_val | The average value of a True Negative. | 
| fn_val | The average cost of a False Negative. | 
| prob_col | The unquoted name of the column with probabilities of the event of interest. | 
| truth_col | The unquoted name of the column with the actual outcome/class. Possible values are 'Yes' and 'No'. #' @return A data frame with the following columns: threshold = prediction thresholds  | 
Examples
profit_thresholds(predictions,
   var_cost    = 100,
   prob_accept = .8,
   tp_val      = 2000,
   fp_val      = 0,
   tn_val      = 0,
   fn_val      = -2000,
   prob_col    = Yes,
   truth_col   = Churn)
Calculate Return on investment (ROI)
Description
Calculates ROI after sorting observations with ROI defined as (Current Value - Start Value) / Start Value
Usage
roi(x, fixed_cost = 0, var_cost = 0, tp_val = 0, prob_col = NA, truth_col = NA)
Arguments
| x | A data frame containing predicted probabilities of a target event and the actual outcome/class. | 
| fixed_cost | Fixed cost (e.g. of a campaign) | 
| var_cost | Variable cost (e.g. discount offered) | 
| tp_val | The average value of a True Positive | 
| prob_col | The unquoted name of the column with probabilities of the event of interest. | 
| truth_col | The unquoted name of the column with the actual outcome/class. Possible values are 'Yes' and 'No'. | 
Value
A data frame with the following columns:
row       = row numbers 
pct       = percentiles 
cum_rev   = cumulated revenue 
cost_sum  = cumulated costs 
roi       = return on investment
Examples
roi(predictions,
   fixed_cost = 1000,
   var_cost   = 100,
   tp_val     = 2000,
   prob_col   = Yes,
   truth_col  = Churn)