Learn R Programming

VGAM (version 0.8-2)

dhuber: Huber's least favourable distribution

Description

Density, distribution function, quantile function and random generation for Huber's least favourable distribution, see Huber and Ronchetti (2009).

Usage

dhuber(x, k = 0.862, mu = 0, sigma = 1, log = FALSE)
 edhuber(x, k = 0.862, mu = 0, sigma = 1, log = FALSE)
  rhuber(n, k = 0.862, mu = 0, sigma = 1)
  qhuber(p, k = 0.862, mu = 0, sigma = 1)
  phuber(q, k = 0.862, mu = 0, sigma = 1)

Arguments

x, q
numeric vector, vector of quantiles.
p
vector of probabilities.
n
number of random values to be generated. If length(n) > 1 then the length is taken to be the number required.
k
numeric. Borderline value of central Gaussian part of the distribution. This is known as the tuning constant, and should be positive. For example, k = 0.862 refers to a 20% contamination neighborhood of the Gaussian distributi
mu
numeric. distribution mean.
sigma
numeric. Distribution scale (sigma = 1 defines the distribution in standard form, with standard Gaussian centre).
log
Logical. If log = TRUE then the logarithm of the result is returned.

Value

  • dhuber gives out a vector of density values.

    edhuber gives out a list with components val (density values) and eps (contamination proportion).

    rhuber gives out a vector of random numbers generated by Huber's least favourable distribution.

    phuber gives the distribution function, qhuber gives the quantile function.

Details

Details are given in huber, the VGAM family function for estimating the parameters mu and sigma.

See Also

huber.

Examples

Run this code
set.seed(123456)
edhuber(1:5, k = 1.5)
rhuber(5)

# Plot cdf and pdf
mu = 3; xx = seq(-2, 7, len = 100)
plot(xx, dhuber(xx, mu = mu), type = "l", col = "blue", las = 1, ylab = "",
     main = "blue is density, red is cumulative distribution function",
     sub = "Purple lines are the 10,20,...,90 percentiles",
     ylim = 0:1)
abline(h = 0, col = "blue", lty = 2)
lines(xx, phuber(xx, mu = mu), type = "l", col = "red")
probs = seq(0.1, 0.9, by = 0.1)
Q = qhuber(probs, mu = mu)
lines(Q, dhuber(Q, mu = mu), col = "purple", lty = 3, type = "h")
lines(Q, phuber(Q, mu = mu), col = "purple", lty = 3, type = "h")
abline(h = probs, col = "purple", lty = 3)
phuber(Q, mu = mu) - probs    # Should be all zero

Run the code above in your browser using DataLab