Learn R Programming

scoringfunctions (version 1.1)

huber_sf: Huber scoring function

Description

The function huber_sf computes the Huber scoring function with parameter \(a\), when \(y\) materialises and \(x\) is the predictive Huber mean.

The Huber scoring function is defined in Huber (1964).

Usage

huber_sf(x, y, a)

Value

Vector of Huber losses.

Arguments

x

Predictive Huber mean (prediction). It can be a vector of length \(n\) (must have the same length as \(y\)).

y

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

a

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

Details

The Huber scoring function is defined by:

$$ S(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. $$

or equivalently

$$ S(x, y, a) := (1/2) \kappa_{a,a}(x - y) (2 (x - y) - \kappa_{a,a}(x - y)) $$

where \(\kappa_{a,b}(t)\) is the capping function defined by:

$$\kappa_{a,b}(t) := \max \lbrace \min \lbrace t,b \rbrace, -a \rbrace$$

Domain of function:

$$x \in \mathbb{R}$$

$$y \in \mathbb{R}$$

$$a > 0$$

Range of function:

$$S(x, y, a) \geq 0, \forall x, y \in \mathbb{R}, a > 0$$

References

Huber PJ (1964) Robust estimation of a location parameter. Annals of Mathematical Statistics 35(1):73--101. tools:::Rd_expr_doi("10.1214/aoms/1177703732").

Taggart RJ (2022) Point forecasting and forecast evaluation with generalized Huber loss. Electronic Journal of Statistics 16:201--231. tools:::Rd_expr_doi("10.1214/21-EJS1957").

Examples

Run this code
# Compute the Huber scoring function.

df <- data.frame(
    x = c(-3, -2, -1, 0, 1, 2, 3),
    y = c(0, 0, 0, 0, 0, 0, 0),
    a = c(2.7, 2.5, 0.6, 0.7, 0.9, 1.2, 5)
)

df$huber_penalty <- huber_sf(x = df$x, y = df$y, a = df$a)

print(df)

Run the code above in your browser using DataLab