expectile_sf {scoringfunctions} | R Documentation |
Asymmetric piecewise quadratic scoring function (expectile scoring function)
Description
The function expectile_sf computes the asymmetric piecewise quadratic scoring
function (expectile scoring function) at a specific level p
, when
y
materializes and x
is the predictive expectile at level
p
.
The asymmetric piecewise quadratic scoring function is defined by eq. (27) in Gneiting (2011).
Usage
expectile_sf(x, y, p)
Arguments
x |
Predictive expectile (prediction) at level |
y |
Realization (true value) of process. It can be a vector of length
|
p |
It can be a vector of length |
Details
The asymmetric piecewise quadratic scoring function is defined by:
S(x, y, p) := |1(x \geq y) - p| (x - y)^2
Domain of function:
x \in \R
y \in \R
0 < p < 1
Range of function:
S(x, y, p) \geq 0, \forall x, y \in \R, p \in (0, 1)
Value
Vector of expectile losses.
Note
For the definition of expectiles, see Newey and Powell (1987).
The asymmetric piecewise quadratic scoring function is negatively oriented (i.e. the smaller, the better).
The asymmetric piecewise quadratic scoring function is strictly consistent for
the p
-expectile functional relative to the family \mathbb{F}
of
potential probability distributions F
for the future y
for which
E_F[Y^2]
exists and is finite (Gneiting 2011).
References
Gneiting T (2011) Making and evaluating point forecasts. Journal of the American Statistical Association 106(494):746–762. doi:10.1198/jasa.2011.r10138.
Newey WK, Powell JL (1987) Asymmetric least squares estimation and testing. Econometrica 55(4):819–847. doi:10.2307/1911031.
Examples
# Compute the asymmetric piecewise quadratic scoring function (expectile scoring
# function).
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)
)
df$expectile_penalty <- expectile_sf(x = df$x, y = df$y, p = df$p)
print(df)
# The asymmetric piecewise quadratic scoring function (expectile scoring
# function) at level p = 0.5 is half the squared error scoring function.
df <- data.frame(
y = rep(x = 0, times = 3),
x = c(-2, 0, 2),
p = rep(x = c(0.5), times = 3)
)
df$expectile_penalty <- expectile_sf(x = df$x, y = df$y, p = df$p)
df$squared_error <- serr_sf(x = df$x, y = df$y)
print(df)