Learn R Programming

uplift (version 0.3.5)

predict.ccif: Predictions from a Fitted Causal Conditional Inference Forest Model

Description

prediction of new data using causal conditional inference forest.

Usage

"predict"(object, newdata, n.trees = object$ntree, predict.all = FALSE, ...)

Arguments

object
an object of class ccif, as that created by the function ccif.
newdata
a data frame containing the values at which predictions are required.
n.trees
number of trees used in the prediction; The default is object$ntree.
predict.all
should the predictions of all trees be kept?
...
not used.

Value

If predict.all = FALSE, a matrix of predictions containing the conditional class probabilities: pr.y1_ct1 represents $Prob(y=1|treated, x)$ and pr.y1_ct0 represents $Prob(y=1|control, x)$. This is computed as the average of the individual predictions over all trees.If predict.all = TRUE, the returned object is a list with two components: pred.avg is the prediction (as described above) and individual is a list of matrices containing the individual predictions from each tree.

Details

At the moment, all predictors passed for fitting the uplift model must also be present in newdata, even if they are not used as split variables by any of the trees in the forest.

References

Guelman, L., Guillen, M., and Perez-Marin A.M. (2013). Optimal personalized treatment rules for marketing interventions: A review of methods, a new proposal, and an insurance case study. Submitted.

Examples

Run this code
library(uplift)

### Simulate train data

set.seed(12345)
dd <- sim_pte(n = 100, p = 6, rho = 0, sigma =  sqrt(2), beta.den = 4)
dd$treat <- ifelse(dd$treat == 1, 1, 0) 

### Fit model

form <- as.formula(paste('y ~', 'trt(treat) +', paste('X', 1:6, sep = '', collapse = "+"))) 

fit1 <- ccif(formula = form,
             data = dd, 
             ntree = 50, 
             split_method = "Int",
             pvalue = 0.05,
             verbose = TRUE)

### Predict on new data

dd_new <- sim_pte(n = 200, p = 20, rho = 0, sigma =  sqrt(2), beta.den = 4)

pred <- predict(fit1, dd_new)

Run the code above in your browser using DataLab