lqnorm(qpower = 2, link = "identitylink",
imethod = 1, imu = NULL, ishrinkage = 0.95)
Links
for more details.CommonVGAMffArguments
for more information.
Ignored if imu
is specified.imethod = 1
."vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.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$.
gaussianff
.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
# 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"))
Run the code above in your browser using DataLab