Fair comparison method for a biased physics-based model and its ML-correction version
I'm working with two prediction models: A calibrated physics-based model that consistently overestimates and has a fixed bias. An XGBoost model that predicts the error of the physics model to create corrected predictions. (The dataset contains the physics model's predictions and the target variable. We then predict the error between the target variable and the physical models prediction) I'm trying to fairly compare these models, but I'm unsure about the best approach. Simply using MAPE for both doesn't seem meaningful due to the known bias in the physics model. Here's what I'm considering: For the physics model: Calculate errors: errors = physics_model_prediction - actual_value Compute mean error: mean_error = errors.mean() Adjust errors: adjusted_errors = errors - mean_error Calculate MAPE: MAPE(adjusted_errors, actual_value) For the corrected model: Calculate MAPE(corrected_prediction, actual_value) Is this approach valid? The residuals' distribution in the correction model is slightly skewed but close to normal, tending to overestimate at certain values. But I'm wondering if this method is statistically sound. If there are better ways to compare the improvements I would appreciate any insights!