# Error Evaluation¶

New in version 0.7.

Implemented functions:

• Mean absolute error (MAE, also known as MAD - mean absolute deviation)

$$\textrm{MAE}=\frac{1}{n} \sum _{i=1}^{n}(e_{i})$$.

• Mean squared error (MSE, also known as MSD)

$$\textrm{MSE}=\frac{1}{n} \sum _{i=1}^{n}(e_{i})^{2}$$.

• Root-mean-square error (RMSE, also known as RMSD)

$$\textrm{RMSE} = \sqrt{\textrm{MSE}}$$.

• Logarithmic squared error (returns a vector of values in dB!)

$$\textbf{logSE} = 10 \log_{10} (\textbf{e}^{2})$$

all functions are often used for evaluation of an error rather than just the error itself or its mean value.

## Usage instructions¶

For MAE evaluation from two time series use

mse = pa.misc.MAE(x1, x2)


If you have the error already calculated, then just

mse = pa.misc.MAE(e)


The same instructions apply for the MSE, RMSE a logarithmic squared error

mse = pa.misc.MSE(x1, x2)
rmse = pa.misc.RMSE(x1, x2)
logse = pa.misc.logSE(x1, x2)


and from error

mse = pa.misc.MSE(e)
rmse = pa.misc.RMSE(e)
logse = pa.misc.logSE(e)


## Minimal working examples¶

In the following example is estimated MSE for two series (x1 and x1):

import numpy as np

x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([5, 4, 3, 2, 1])
mse = pa.misc.MSE(x1, x2)
print(mse)


You can easily check that the printed result 8.0 is correct MSE for given series.

The following example displays, that you can use directly the error series e if you already have it.

import numpy as np

# somewhere else in your project
x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([5, 4, 3, 2, 1])
e = x1 - x2
# you have just the error - e
mse = pa.misc.MSE(e)
print(mse)


Again, you can check the correctness of the answer easily.

## Code Explanation¶

padasip.misc.error_evaluation.MAE(x1, x2=-1)[source]

Mean absolute error - this function accepts two series of data or directly one series with error.

Args:

• x1 - first data series or error (1d array)

Kwargs:

• x2 - second series (1d array) if first series was not error directly,

then this should be the second series

Returns:

• e - MAE of error (float) obtained directly from x1,

or as a difference of x1 and x2

padasip.misc.error_evaluation.MSE(x1, x2=-1)[source]

Mean squared error - this function accepts two series of data or directly one series with error.

Args:

• x1 - first data series or error (1d array)

Kwargs:

• x2 - second series (1d array) if first series was not error directly,

then this should be the second series

Returns:

• e - MSE of error (float) obtained directly from x1,

or as a difference of x1 and x2

padasip.misc.error_evaluation.RMSE(x1, x2=-1)[source]

Root-mean-square error - this function accepts two series of data or directly one series with error.

Args:

• x1 - first data series or error (1d array)

Kwargs:

• x2 - second series (1d array) if first series was not error directly,

then this should be the second series

Returns:

• e - RMSE of error (float) obtained directly from x1,

or as a difference of x1 and x2

padasip.misc.error_evaluation.get_mean_error(x1, x2=-1, function='MSE')[source]

This function returns desired mean error. Options are: MSE, MAE, RMSE

Args:

• x1 - first data series or error (1d array)

Kwargs:

• x2 - second series (1d array) if first series was not error directly,

then this should be the second series

Returns:

• e - mean error value (float) obtained directly from x1,

or as a difference of x1 and x2

padasip.misc.error_evaluation.get_valid_error(x1, x2=-1)[source]

Function that validates:

• x1 is possible to convert to numpy array
• x2 is possible to convert to numpy array (if exists)
• x1 and x2 have the same length (if both exist)
padasip.misc.error_evaluation.logSE(x1, x2=-1)[source]

10 * log10(e**2) This function accepts two series of data or directly one series with error.

Args:

• x1 - first data series or error (1d array)

Kwargs:

• x2 - second series (1d array) if first series was not error directly,

then this should be the second series

Returns:

• e - logSE of error (1d array) obtained directly from x1,

or as a difference of x1 and x2. The values are in dB!