huber_rs: Mean Huber score

View source: R/huber_rs.R

huber_rsR Documentation

Mean Huber score

Description

The function huber_rs computes the mean Huber score with parameter a, when \textbf{\textit{y}} materialises and \textbf{\textit{x}} is the prediction.

Mean Huber score is a realised score corresponding to the Huber scoring function huber_sf.

Usage

huber_rs(x, y, a)

Arguments

x

Prediction. It can be a vector of length n (must have the same length as \textbf{\textit{y}}).

y

Realisation (true value) of process. It can be a vector of length n (must have the same length as \textbf{\textit{x}}).

a

It can be a vector of length n (must have the same length as y) or a scalar.

Details

The mean Huber score is defined by:

S(\textbf{\textit{x}}, \textbf{\textit{y}}, a) := (1/n) \sum_{i = 1}^{n} L(x_i, y_i, a)

where

\textbf{\textit{x}} = (x_1, ..., x_n)^\mathsf{T}

\textbf{\textit{y}} = (y_1, ..., y_n)^\mathsf{T}

and

L(x, y, a) := \left\{ \begin{array}{ll} \dfrac{1}{2} (x - y)^2, & |x - y| \leq a\\ a |x - y| - \dfrac{1}{2} a^2, & |x - y| > a \end{array} \right.

Domain of function:

\textbf{\textit{x}} \in \mathbb{R}^n

\textbf{\textit{y}} \in \mathbb{R}^n

a > 0

Range of function:

S(\textbf{\textit{x}}, \textbf{\textit{y}}, a) \geq 0, \forall \textbf{\textit{x}}, \textbf{\textit{y}} \in \mathbb{R}^n, a > 0

Value

Value of the mean Huber score.

Note

For details on the Huber scoring function, see huber_sf.

The concept of realised (average) scores is defined by Gneiting (2011) and Fissler and Ziegel (2019).

The mean Huber score is the realised (average) score corresponding to the Huber scoring function.

References

Fissler T, Ziegel JF (2019) Order-sensitivity and equivariance of scoring functions. Electronic Journal of Statistics 13(1):1166–1211. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1214/19-EJS1552")}.

Gneiting T (2011) Making and evaluating point forecasts. Journal of the American Statistical Association 106(494):746–762. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1198/jasa.2011.r10138")}.

Examples

# Compute the Huber mean score.

set.seed(12345)

a <- 0.5

x <- 0

y <- rnorm(n = 100, mean = 0, sd = 1)

print(huber_rs(x = x, y = y, a = a))

print(huber_rs(x = rep(x = x, times = 100), y = y, a = a))

scoringfunctions documentation built on April 4, 2025, 12:28 a.m.