View source: R/family.normal.R
lqnorm | R Documentation |
Minimizes the L-q norm of residuals in a linear model.
lqnorm(qpower = 2, link = "identitylink",
imethod = 1, imu = NULL, ishrinkage = 0.95)
qpower |
A single numeric, must be greater than one, called |
link |
Link function applied to the ‘mean’ |
imethod |
Must be 1, 2 or 3.
See |
imu |
Numeric, optional initial values used for the fitted values.
The default is to use |
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 |
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
.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions
such as vglm
,
and vgam
.
Convergence failure is common, therefore the user is advised to be cautious and monitor convergence!
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
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
.
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[1], 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 = paste0("LS = red, lqnorm = blue (qpower = ",
fit@misc$qpower, "), truth = black"), 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.