arviz_stats.metrics#
- arviz_stats.metrics(data, kind='rmse', var_name=None, sample_dims=None, round_to=None)[source]#
Compute performace metrics.
Currently supported metrics are mean absolute error, mean squared error and root mean squared error. For classification problems, accuracy and balanced accuracy are also supported.
- Parameters:
- data: DataTree or InferenceData
It should contain groups observed_data and posterior_predictive.
- kind: str
The kind of metric to compute. Available options are:
‘mae’: mean absolute error.
‘mse’: mean squared error.
‘rmse’: root mean squared error. Default.
‘acc’: classification accuracy.
‘acc_balanced’: balanced classification accuracy.
- var_name: str, optional
The name of the observed and predicted variable.
- sample_dims: iterable of hashable, optional
Dimensions to be considered sample dimensions and are to be reduced. Default
rcParams["data.sample_dims"].- round_to: int or str or None, optional
- If integer, number of decimal places to round the result. Integers can be negative.
If string of the form ‘2g’ number of significant digits to round the result. Defaults to rcParams[“stats.round_to”] if None. Use the string “None” or “none” to return raw numbers.
- Returns:
- estimate:
collections.namedtuple A namedtuple with the mean of the computed metric and its standard error.
- estimate:
Notes
The computation of the metrics is done by first reducing the posterior predictive samples, this is done to mirror the computation of the metrics by the
arviz_stats.loo_metricsfunction, and hence make comparison easier to perform.Examples
Calculate root mean squared error
In [1]: from arviz_stats import metrics ...: from arviz_base import load_arviz_data ...: dt = load_arviz_data("radon") ...: metrics(dt, kind="rmse") ...: Out[1]: rmse(mean=0.72, se=0.022)
Calculate accuracy of a logistic regression model
In [2]: dt = load_arviz_data("anes") ...: metrics(dt, kind="acc") ...: Out[2]: acc(mean=0.82, se=0.02)