Learn R Programming

scoringfunctions (version 1.1)

lqquantile_sf: \(L_q\)-quantile scoring function

Description

The function lqquantile_sf computes the \(L_q\)-quantile scoring function at a specific level \(p\), when \(y\) materialises and \(x\) is the predictive \(L_q\)-quantile at level \(p\).

The \(L_q\)-quantile scoring function is defined by Chen (1996).

Usage

lqquantile_sf(x, y, p, q)

Value

Vector of \(L_q\)-quantile losses.

Arguments

x

Predictive \(L_q\)-quantile at level \(p\). 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\)).

p

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

q

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

Details

The \(L_q\)-quantile scoring function is defined by:

$$ S(x, y, p, q) := |\textbf{1} \lbrace x \geq y \rbrace - p| |x - y|^q $$

or equivalently,

$$ S(x, y, p, q) := p |\max \lbrace -(x - y), 0 \rbrace|^q + (1 - p) |\max \lbrace x - y, 0 \rbrace|^q $$

Domain of function:

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

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

$$0 < p < 1$$

$$q \geq 2$$

Range of function:

$$S(x, y, p, q) \geq 0, \forall x, y \in \mathbb{R}, p \in (0, 1), q \geq 2$$

References

Bellini F, Klar B, Muller A, Gianin ER (2014) Generalized quantiles as risk measures. Insurance: Mathematics and Economics 54:41--48. tools:::Rd_expr_doi("10.1016/j.insmatheco.2013.10.015").

Chen Z (1996) Conditional \(L_p\)-quantiles and their application to the testing of symmetry in non-parametric regression. Statistics and Probability Letters 29(2):107--115. tools:::Rd_expr_doi("10.1016/0167-7152(95)00163-8").

Examples

Run this code
# Compute the Lq-quantile scoring function at level p.

df <- data.frame(
    y = rep(x = 0, times = 6),
    x = c(2, 2, -2, -2, 0, 0),
    p = rep(x = c(0.05, 0.95), times = 3),
    q = c(2, 3, 2, 3, 2, 3)
)

df$lqquantile_penalty <- lqquantile_sf(x = df$x, y = df$y, p = df$p, q = df$q)

print(df)

Run the code above in your browser using DataLab