ghuber_sf {scoringfunctions}R Documentation

Generalized Huber scoring function

Description

The function ghuber_sf computes the generalized Huber scoring function at a specific level pp and parameters aa and bb, when yy materializes and xx is the predictive Huber functional at level pp.

The generalized Huber scoring function is defined by eq. (4.7) in Taggart (2022) for ϕ(t)=t2\phi(t) = t^2.

Usage

ghuber_sf(x, y, p, a, b)

Arguments

x

Predictive Huber functional (prediction) at level pp. It can be a vector of length nn (must have the same length as yy).

y

Realization (true value) of process. It can be a vector of length nn (must have the same length as xx).

p

It can be a vector of length nn (must have the same length as yy).

a

It can be a vector of length nn (must have the same length as yy).

b

It can be a vector of length nn (must have the same length as yy).

Details

The generalized Huber scoring function is defined by:

S(x,y,p,a,b):=1(xy)p(y2(κa,b(xy)+y)2+2xκa,b(xy)) S(x, y, p, a, b) := |1(x \geq y) - p| (y^2 - (\kappa_{a,b}(x - y) + y)^2 + 2 x \kappa_{a,b}(x - y))

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

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

Domain of function:

xRx \in \R

yRy \in \R

0<p<10 < p < 1

a>0a > 0

b>0b > 0

Range of function:

S(x,y,p,a,b)0,x,yR,p(0,1),a,b>0S(x, y, p, a, b) \geq 0, \forall x, y \in \R, p \in (0, 1), a, b > 0

Value

Vector of generalized Huber losses.

Note

For the definition of Huber functionals, see definition 3.3 in Taggart (2022). The value of eq. (4.7) is twice the value of the equation in definition 4.2 in Taggart (2002).

The generalized Huber scoring function is negatively oriented (i.e. the smaller, the better).

The generalized Huber scoring function is strictly consistent for the pp-Huber functional relative to the family F\mathbb{F} of potential probability distributions FF for the future yy for which EF[Y2(Ya)2]E_F[Y^2 - (Y - a)^2] and EF[Y2(Y+b)2]E_F[Y^2 - (Y + b)^2] exist and are finite (Taggart 2022).

References

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

Examples

# Compute the generalized Huber scoring function.

set.seed(12345)

n <- 10

df <- data.frame(
    x = runif(n, -2, 2),
    y = runif(n, -2, 2),
    p = runif(n, 0, 1),
    a = runif(n, 0, 1),
    b = runif(n, 0, 1)
)

df$ghuber_penalty <- ghuber_sf(x = df$x, y = df$y, p = df$p, a = df$a, b = df$b)

print(df)

# Equivalence of the generalized Huber scoring function and the asymmetric
# piecewise quadratic scoring function (expectile scoring function), when
# a = Inf and b = Inf.

set.seed(12345)

n <- 100

x <- runif(n, -20, 20)
y <- runif(n, -20, 20)
p <- runif(n, 0, 1)
a <- rep(x = Inf, times = n)
b <- rep(x = Inf, times = n)

u <- ghuber_sf(x = x, y = y, p = p, a = a, b = b)
v <- expectile_sf(x = x, y = y, p = p)

max(abs(u - v)) # values are slightly higher than 0 due to rounding error
min(abs(u - v))

# Equivalence of the generalized Huber scoring function and the Huber scoring
# function when p = 1/2 and a = b.

set.seed(12345)

n <- 100

x <- runif(n, -20, 20)
y <- runif(n, -20, 20)
p <- rep(x = 1/2, times = n)
a <- runif(n, 0, 20)

u <- ghuber_sf(x = x, y = y, p = p, a = a, b = a)
v <- huber_sf(x = x, y = y, a = a)

max(abs(u - v)) # values are slightly higher than 0 due to rounding error
min(abs(u - v))

[Package scoringfunctions version 0.0.6 Index]