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>
3.5 KiB
RSE: Relative Squared Error
"The squared error version of RAE. RSE and R² are two sides of the same coin: R² = 1 - RSE."
Relative Squared Error (RSE) measures the total squared error of predictions relative to the total squared error of a simple baseline predictor that always predicts the mean. RSE is directly related to the coefficient of determination (R²).
Architecture & Physics
RSE computes a ratio of summed squared errors. The numerator is the residual sum of squares (RSS). The denominator is the total sum of squares (TSS). The relationship R² = 1 - RSE provides a direct conversion between the two metrics.
Interpretation Guide
| RSE Value | R² Value | Interpretation |
|---|---|---|
| RSE = 0 | R² = 1 | Perfect predictions |
| RSE < 1 | R² > 0 | Better than mean predictor |
| RSE = 1 | R² = 0 | Same as mean predictor |
| RSE > 1 | R² < 0 | Worse than mean predictor |
Squared errors penalize large errors more heavily than small ones, making RSE more sensitive to outliers than RAE.
Mathematical Foundation
1. Squared Error (RSS)
e_t^2 = (y_t - \hat{y}_t)^2
2. Squared Baseline Error (TSS)
b_t^2 = (y_t - \bar{y})^2
where \bar{y} is the rolling mean of actual values.
3. Relative Squared Error
\text{RSE} = \frac{\sum_{t=1}^{n} (y_t - \hat{y}_t)^2}{\sum_{t=1}^{n} (y_t - \bar{y})^2} = \frac{\text{RSS}}{\text{TSS}}
4. Relationship to R²
R^2 = 1 - \text{RSE}
Performance Profile
| Metric | Score | Notes |
|---|---|---|
| Throughput | ~40 ns/bar | Three running sums maintained |
| Allocations | 0 | Zero-allocation implementation |
| Complexity | O(1) | Constant time per update |
| Accuracy | 9/10 | Standard statistical measure |
| Timeliness | 7/10 | Rolling window introduces lag |
| Sensitivity | 8/10 | Sensitive to outliers (squared errors) |
Common Pitfalls
Flat Series Problem
When all actual values in the window are identical, TSS becomes zero (all values equal the mean). The implementation returns 1.0 in this case.
Outlier Sensitivity
Because errors are squared, a single large error can dominate the RSE calculation. For outlier-robust alternatives, consider RAE (which uses absolute errors).
Negative R² is Possible
When RSE > 1, the implied R² is negative. This indicates predictions are worse than simply predicting the mean: a sign of a fundamentally flawed model.
Usage
// Create RSE calculator with period 14
var rse = new Rse(14);
// Stream values
var result = rse.Update(actual, predicted);
Console.WriteLine($"RSE: {result.Value:F4}");
Console.WriteLine($"Implied R²: {1 - result.Value:F4}");
// RSE < 1 = better than mean, R² > 0
// Batch calculation
var rseSeries = Rse.Calculate(actualSeries, predictedSeries, 14);
// Zero-allocation span version
Rse.Batch(actualSpan, predictedSpan, outputSpan, 14);
RSE vs R² Quick Reference
| Scenario | RSE | R² | Quality |
|---|---|---|---|
| Perfect model | 0.00 | 1.00 | Excellent |
| Very good model | 0.05 | 0.95 | Very good |
| Good model | 0.20 | 0.80 | Good |
| Moderate model | 0.50 | 0.50 | Moderate |
| Poor model (= mean) | 1.00 | 0.00 | Poor |
| Useless model | 2.00 | -1.00 | Useless |
Comparison with RAE
| Property | RSE | RAE |
|---|---|---|
| Error type | Squared (L2) | Absolute (L1) |
| Outlier sensitivity | High | Low |
| Related to | R² | — |
| Baseline | Mean predictor | Mean predictor |
| Interpretation | 1 - R² | Better/worse than mean |