dhuber {VGAM}R Documentation

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 distribution. If k = 1.40 then this is 5% contamination.

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.

Details

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

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.

Author(s)

Christian Hennig wrote [d,ed,r]huber() (from smoothmest) and slight modifications were made by T. W. Yee to replace looping by vectorization and addition of the log argument. Arash Ardalan wrote [pq]huber(). This helpfile was adapted from smoothmest.

See Also

huber.

Examples

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

# Plot cdf and pdf
## Not run:  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

## End(Not run) 

[Package VGAM version 0.8-4 Index]