# huberUC: Huber's Least Favourable Distribution In VGAM: Vector Generalized Linear and Additive Models

## Description

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

## Usage

 ```1 2 3 4 5``` ``` 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, lower.tail = TRUE, log.p = FALSE) phuber(q, k = 0.862, mu = 0, sigma = 1, lower.tail = TRUE, log.p = FALSE) ```

## 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. `lower.tail, log.p` Same meaning as in `pnorm` or `qnorm`.

## Details

Details are given in `huber2`, 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()`, and two arguments for these were implemented by Kai Huang. This helpfile was adapted from smoothmest.

`huber2`.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19``` ```set.seed(123456) edhuber(1:5, k = 1.5) rhuber(5) ## Not run: mu <- 3; xx <- seq(-2, 7, len = 100) # Plot CDF and PDF plot(xx, dhuber(xx, mu = mu), type = "l", col = "blue", las = 1, ylab = "", main = "blue is density, orange 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 = "orange") 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 0s ## End(Not run) ```