Regression evaluation often summarizes how far predictions are from actual values. Absolute errors ignore direction.

Program

Play the script to shift predictions and compare the resulting mean absolute error.

mean_absolute_error.R
actual <- c(10, 12, 13, 15)
adjustment <- 
predicted <- c(9, 12, 14, 14) + adjustment
errors <- actual - predicted
mae <- mean(abs(errors))
label <- paste("mae", mae, sep = "=")
cat(label, "\n", sep = "")
actual <- c(10, 12, 13, 15)
adjustment <- 
predicted <- c(9, 12, 14, 14) + adjustment
errors <- actual - predicted
mae <- mean(abs(errors))
label <- paste("mae", mae, sep = "=")
cat(label, "\n", sep = "")
actual <- c(10, 12, 13, 15)
adjustment <- 
predicted <- c(9, 12, 14, 14) + adjustment
errors <- actual - predicted
mae <- mean(abs(errors))
label <- paste("mae", mae, sep = "=")
cat(label, "\n", sep = "")
residual `actual - predicted` computes signed prediction errors.
absolute error `abs(errors)` turns misses into non-negative distances.
MAE `mean(abs(errors))` summarizes average miss size.