mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-07-28 01:37:43 +00:00
86fe32a682
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat> Co-authored-by: Warp <agent@warp.dev>
5.0 KiB
5.0 KiB
Errors
"All models are wrong. Error metrics tell you how wrong." — Adapted from George Box
Error metrics and loss functions for model/strategy evaluation. All error indicators accept two input series (actual and predicted values) and compute rolling error metrics over a configurable period.
Two-Input Pattern
All error indicators in this category follow a consistent dual-input API:
// Streaming mode
var mae = new Mae(period: 14);
var result = mae.Update(actualValue, predictedValue);
// Batch mode
var maeSeries = Mae.Calculate(actualSeries, predictedSeries, period: 14);
// Span mode (zero-allocation)
Mae.Batch(actualSpan, predictedSpan, outputSpan, period: 14);
Indicator Status
| Indicator | Full Name | Status | Description |
|---|---|---|---|
| HUBER | Huber Loss | ✅ | Combines MSE and MAE. Configurable outlier threshold δ. |
| LOGCOSH | Log-Cosh Loss | ✅ | Smooth approximation to MAE. Twice-differentiable. |
| MAE | Mean Absolute Error | ✅ | Average of absolute differences. Robust baseline. |
| MAAPE | Mean Arctangent APE | ✅ | Bounded percentage error using arctangent. Range: 0 to π/2. |
| MAPD | Mean Absolute % Deviation | ✅ | Percentage error relative to mean of actual and predicted. |
| MAPE | Mean Absolute % Error | ✅ | Percentage error relative to actual. Unbounded when actual≈0. |
| MASE | Mean Absolute Scaled Error | ✅ | Scale-free. Uses naive forecast as baseline. |
| MDAE | Median Absolute Error | ✅ | Median of absolute differences. Outlier-robust. O(n log n). |
| MDAPE | Median Absolute % Error | ✅ | Median percentage error. Outlier-robust. O(n log n). |
| ME | Mean Error | ✅ | Signed average. Detects systematic bias. |
| MPE | Mean Percentage Error | ✅ | Signed percentage. Shows directional bias. |
| MRAE | Mean Relative Absolute Error | ✅ | Error relative to naive forecast. |
| MSE | Mean Squared Error | ✅ | Squared differences. Penalizes large errors heavily. |
| MSLE | Mean Squared Log Error | ✅ | MSE on log-transformed values. For multiplicative errors. |
| PSEUDOHUBER | Pseudo-Huber Loss | ✅ | Smooth Huber approximation. Fully differentiable. |
| QUANTILE | Quantile Loss | ✅ | Asymmetric loss for quantile regression. Pinball loss. |
| RAE | Relative Absolute Error | ✅ | Absolute error relative to mean predictor. |
| RMSE | Root Mean Squared Error | ✅ | √MSE. Same units as input. Penalizes outliers. |
| RMSLE | Root Mean Squared Log Error | ✅ | √MSLE. For multiplicative error structures. |
| RSE | Relative Squared Error | ✅ | Squared error relative to mean predictor. |
| RSQUARED | R² (Coefficient of Determination) | ✅ | Variance explained. 1 = perfect. Can be negative. |
| SMAPE | Symmetric MAPE | ✅ | Bounded 0-200%. Symmetric around zero. |
| THEILU | Theil's U Statistic | ✅ | Forecast vs naive. <1 beats naive. >1 worse than naive. |
| TUKEY | Tukey Biweight Loss | ✅ | Hard-rejects outliers beyond threshold. Redescending. |
| WMAPE | Weighted MAPE | ✅ | Volume-weighted percentage error. For heterogeneous data. |
| WRMSE | Weighted RMSE | ✅ | Weighted root mean squared error. Custom observation weighting. |
Status Key: ✅ Implemented | 📋 Planned
Choosing an Error Metric
By Use Case
| Use Case | Recommended Metrics |
|---|---|
| General accuracy | MAE, RMSE |
| Outlier-robust | MAE, Huber, MASE, MDAE, Tukey |
| Percentage interpretation | MAPE, SMAPE, MAPD, MAAPE |
| Bias detection | ME, MPE |
| Scale-free comparison | MASE, RAE, RSE, MRAE, TheilU |
| Model quality score | R², RSE |
| Log-scale data | MSLE, RMSLE |
| Gradient optimization | LogCosh, PseudoHuber |
| Quantile forecasting | Quantile Loss |
| Volume-weighted | WMAPE |
By Properties
| Metric | Scale | Outlier Sensitivity | Complexity |
|---|---|---|---|
| MAE | Original units | Low | O(1) |
| MSE | Squared units | High | O(1) |
| RMSE | Original units | High | O(1) |
| MAPE | Percentage | Medium | O(1) |
| SMAPE | 0-200% | Medium | O(1) |
| Huber | Original units | Low (configurable) | O(1) |
| R² | 0-1 (for good models) | High | O(1) |
| MDAE | Original units | Very Low | O(n log n) |
| MDAPE | Percentage | Very Low | O(n log n) |
| LogCosh | Original units | Low | O(1) |
| PseudoHuber | Original units | Low | O(1) |
| Tukey | Original units | Very Low | O(1) |