The basic idea of the ROC curves for regression is to show model asymmetry. The RROC is a plot where on the x-axis we depict total over-estimation and on the y-axis total under-estimation.

plotRROC(object, ...)



An object of class modelAudit or modelResiduals.


Other modelAudit or model Residuals objects to be plotted together.


ggplot object


For RROC curves we use a shift, which is an equivalent to the threshold for ROC curves. For each observation we calculate new prediction: \(\hat{y}'=\hat{y}+s\) where s is the shift. Therefore, there are different error values for each shift: \(e_i = \hat{y_i}' - y_i\)

Over-estimation is calculated as: \(OVER= \sum(e_i|e_i>0)\).

Under-estimation is calculated as: \(UNDER = \sum(e_i|e_i<0)\).

The shift equals 0 is represented by a dot.

The Area Over the RROC Curve (AOC) equals to the variance of the errors multiplied by \(frac{n^2}{2}\).


Hernández-Orallo, José. 2013. ‘ROC Curves for Regression’. Pattern Recognition 46 (12): 3395–3411.

See also


library(car) lm_model <- lm(prestige~education + women + income, data = Prestige) lm_au <- audit(lm_model, data = Prestige, y = Prestige$prestige) plotRROC(lm_au)
library(randomForest) rf_model <- randomForest(prestige~education + women + income, data = Prestige) rf_au <- audit(rf_model, data = Prestige, y = Prestige$prestige) plotRROC(lm_au, rf_au)