Expectiles-Koenker {VGAM} | R Documentation |
Density function, distribution function, and quantile/expectile function and random generation for the Koenker distribution.
dkoenker(x, location = 0, scale = 1, log = FALSE) pkoenker(q, location = 0, scale = 1, log = FALSE) qkoenker(p, location = 0, scale = 1) rkoenker(n, location = 0, scale = 1)
x, q |
Vector of expectiles/quantiles. See the terminology note below. |
p |
Vector of probabilities. These should lie in (0,1). |
n, log |
See |
location, scale |
Location and scale parameters. The latter should have positive values. Values of these vectors are recyled. |
A Student-t distribution with 2 degrees of freedom and
a scale parameter of sqrt(2)
is equivalent to the
standard Koenker distribution.
Further details about this distribution are given in
koenker
.
dkoenker(x)
gives the density function.
pkoenker(q)
gives the distribution function.
qkoenker(p)
gives the expectile and quantile function.
rkoenker(n)
gives n random variates.
T. W. Yee
my_p = 0.25; y = rkoenker(nn <- 5000) (myexp = qkoenker(my_p)) sum(myexp - y[y <= myexp]) / sum(abs(myexp - y)) # Should be my_p # Equivalently: I1 = mean(y <= myexp) * mean( myexp - y[y <= myexp]) I2 = mean(y > myexp) * mean(-myexp + y[y > myexp]) I1 / (I1 + I2) # Should be my_p # Or: I1 = sum( myexp - y[y <= myexp]) I2 = sum(-myexp + y[y > myexp]) # Non-standard Koenker distribution myloc = 1; myscale = 2 yy = rkoenker(nn, myloc, myscale) (myexp = qkoenker(my_p, myloc, myscale)) sum(myexp - yy[yy <= myexp]) / sum(abs(myexp - yy)) # Should be my_p pkoenker(mean(yy), myloc, myscale) # Should be 0.5 abs(qkoenker(0.5, myloc, myscale) - mean(yy)) # Should be 0 abs(pkoenker(myexp, myloc, myscale) - my_p) # Should be 0 integrate(f = dkoenker, lower = -Inf, upper = Inf, locat = myloc, scale = myscale) # Should be 1 y <- seq(-7, 7, len = 201) max(abs(dkoenker(y) - dt(y / sqrt(2), df = 2) / sqrt(2))) # Should be 0 ## Not run: plot(y, dkoenker(y), type = "l", col = "blue", las = 1, ylim = c(0, 0.4), main = "Blue = Koenker; orange = N(0, 1)") lines(y, dnorm(y), type = "l", col = "orange") abline(h = 0, v = 0, lty = 2) ## End(Not run)