# lqnorm: Minimizing the L-q norm Family Function In VGAM: Vector Generalized Linear and Additive Models

## Description

Minimizes the L-q norm of residuals in a linear model.

## Usage

 ```1 2``` ```lqnorm(qpower = 2, link = "identitylink", imethod = 1, imu = NULL, ishrinkage = 0.95) ```

## Arguments

 `qpower` A single numeric, must be greater than one, called q below. The absolute value of residuals are raised to the power of this argument, and then summed. This quantity is minimized with respect to the regression coefficients. `link` Link function applied to the ‘mean’ mu. See `Links` for more details. `imethod` Must be 1, 2 or 3. See `CommonVGAMffArguments` for more information. Ignored if `imu` is specified. `imu` Numeric, optional initial values used for the fitted values. The default is to use `imethod = 1`. `ishrinkage` How much shrinkage is used when initializing the fitted values. The value must be between 0 and 1 inclusive, and a value of 0 means the individual response values are used, and a value of 1 means the median or mean is used. This argument is used in conjunction with `imethod = 3`.

## Details

This function minimizes the objective function

sum_{i=1}^n w_i (|y_i - mu_i|)^q

where q is the argument `qpower`, eta_i = g(mu_i) where g is the link function, and eta_i is the vector of linear/additive predictors. The prior weights w_i can be inputted using the `weights` argument of `vlm`/`vglm`/`vgam` etc.; it should be just a vector here since this function handles only a single vector or one-column response.

Numerical problem will occur when q is too close to one. Probably reasonable values range from 1.5 and up, say. The value q=2 corresponds to ordinary least squares while q=1 corresponds to the MLE of a double exponential (Laplace) distibution. The procedure becomes more sensitive to outliers the larger the value of q.

## Value

An object of class `"vglmff"` (see `vglmff-class`). The object is used by modelling functions such as `vglm`, and `vgam`.

## Warning

Convergence failure is common, therefore the user is advised to be cautious and monitor convergence!

## Note

This VGAM family function is an initial attempt to provide a more robust alternative for regression and/or offer a little more flexibility than least squares. The `@misc` slot of the fitted object contains a list component called `objectiveFunction` which is the value of the objective function at the final iteration.

Thomas W. Yee

## References

Yee, T. W. and Wild, C. J. (1996). Vector generalized additive models. Journal of the Royal Statistical Society, Series B, Methodological, 58, 481–493.

`uninormal`.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21``` ```set.seed(123) ldata <- data.frame(x = sort(runif(nn <- 10 ))) realfun <- function(x) 4 + 5*x ldata <- transform(ldata, y = realfun(x) + rnorm(nn, sd = exp(-1))) # Make the first observation an outlier ldata <- transform(ldata, y = c(4*y, y[-1]), x = c(-1, x[-1])) fit <- vglm(y ~ x, lqnorm(qpower = 1.2), data = ldata) coef(fit, matrix = TRUE) head(fitted(fit)) fit@misc\$qpower fit@misc\$objectiveFunction ## Not run: # Graphical check with(ldata, plot(x, y, main = paste("LS = red, lqnorm = blue (qpower = ", fit@misc\$qpower, "), truth = black", sep = ""), col = "blue")) lmfit <- lm(y ~ x, data = ldata) with(ldata, lines(x, fitted(fit), col = "blue")) with(ldata, lines(x, lmfit\$fitted, col = "red")) with(ldata, lines(x, realfun(x), col = "black")) ## End(Not run) ```