@@ -76,7 +76,7 @@ def compute_mean_abs_error(power_spectrum, modeled_spectrum):
7676 Returns
7777 -------
7878 error : float
79- Computed MAE .
79+ Computed mean absolute error .
8080 """
8181
8282 error = np .abs (power_spectrum - modeled_spectrum ).mean ()
@@ -97,7 +97,7 @@ def compute_mean_squared_error(power_spectrum, modeled_spectrum):
9797 Returns
9898 -------
9999 error : float
100- Computed MSE .
100+ Computed mean squared error .
101101 """
102102
103103 error = ((power_spectrum - modeled_spectrum ) ** 2 ).mean ()
@@ -118,19 +118,41 @@ def compute_root_mean_squared_error(power_spectrum, modeled_spectrum):
118118 Returns
119119 -------
120120 error : float
121- Computed rMSE .
121+ Computed root mean squared error .
122122 """
123123
124124 error = np .sqrt (((power_spectrum - modeled_spectrum ) ** 2 ).mean ())
125125
126126 return error
127127
128128
129+ def compute_median_abs_error (power_spectrum , modeled_spectrum ):
130+ """Calculate the median absolute error.
131+
132+ Parameters
133+ ----------
134+ power_spectrum : 1d array
135+ Real data power spectrum.
136+ modeled_spectrum : 1d array
137+ Modelled power spectrum.
138+
139+ Returns
140+ -------
141+ error : float
142+ Computed median absolute error.
143+ """
144+
145+ error = np .median (np .abs (modeled_spectrum - power_spectrum ), axis = 0 )
146+
147+ return error
148+
149+
129150# Collect available error functions together
130151ERROR_FUNCS = {
131152 'mae' : compute_mean_abs_error ,
132153 'mse' : compute_mean_squared_error ,
133154 'rmse' : compute_root_mean_squared_error ,
155+ 'medae' : compute_median_abs_error ,
134156}
135157
136158
@@ -143,7 +165,7 @@ def compute_error(power_spectrum, modeled_spectrum, error_metric='mae'):
143165 Real data power spectrum.
144166 modeled_spectrum : 1d array
145167 Modelled power spectrum.
146- error_metric : {'mae', 'mse', 'rsme'} or callable
168+ error_metric : {'mae', 'mse', 'rsme', 'medae' } or callable
147169 Which approach to take to compute the error.
148170
149171 Returns
0 commit comments