extlogF1 {VGAM} | R Documentation |
Extended log-F Distribution Family Function
Description
Maximum likelihood estimation of the 1-parameter extended log-F distribution.
Usage
extlogF1(tau = c(0.25, 0.5, 0.75), parallel = TRUE ~ 0,
seppar = 0, tol0 = -0.001,
llocation = "identitylink", ilocation = NULL,
lambda.arg = NULL, scale.arg = 1, ishrinkage = 0.95,
digt = 4, idf.mu = 3, imethod = 1)
Arguments
tau |
Numeric, the desired quantiles. A strictly increasing sequence,
each value must be in |
parallel |
Similar to Setting |
seppar , tol0 |
Numeric, both of unit length and nonnegative,
the separation and shift parameters.
If If If avoiding the quantile crossing problem is of concern to you,
try increasing |
llocation , ilocation |
See |
lambda.arg |
Positive tuning parameter which controls the sharpness of the cusp.
The limit as it approaches 0 is probably very similar to
|
scale.arg |
Positive scale parameter and sometimes called |
ishrinkage , idf.mu , digt |
Similar to |
imethod |
Initialization method.
Either the value 1, 2, or ....
See |
Details
This is an experimental family function for quantile regression.
Fasiolo et al. (2020) propose an extended log-F distribution
(ELF)
however this family function only estimates the location parameter.
The distribution has a scale parameter which can be inputted
(default value is unity).
One location parameter is estimated for each tau
value
and these are the estimated quantiles.
For quantile regression it is not necessary to estimate
the scale parameter since the log-likelihood function is
triangle shaped.
The ELF is used as an approximation of the asymmetric Laplace
distribution (ALD).
The latter cannot be estimated properly using Fisher scoring/IRLS
but the ELF holds promise because it has continuous derivatives
and therefore fewer problems with the regularity conditions.
Because the ELF is fitted to data to obtain an
empirical result the convergence behaviour may not be gentle
and smooth.
Hence there is a function-specific control function called
extlogF1.control
which has something like
stepsize = 0.5
and maxits = 100
.
It has been found that
slowing down the rate of convergence produces greater
stability during the estimation process.
Regardless, convergence should be monitored carefully always.
This function accepts a vector response but not a matrix response.
Value
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
and vgam
.
Note
Changes will occur in the future to fine-tune things.
In general
setting trace = TRUE
is strongly encouraged because it is
needful to check that convergence occurs properly.
If seppar > 0
then logLik(fit)
will return the
penalized log-likelihood.
Author(s)
Thomas W. Yee
References
Fasiolo, M., Wood, S. N., Zaffran, M., Nedellec, R. and Goude, Y. (2020). Fast calibrated additive quantile regression. J. Amer. Statist. Assoc., in press.
Yee, T. W. (2020). On quantile regression based on the 1-parameter extended log-F distribution. In preparation.
See Also
dextlogF
,
is.crossing
,
fix.crossing
,
eCDF
,
vglm.control
,
logF
,
alaplace1
,
dalap
,
lms.bcn
.
Examples
nn <- 1000; mytau <- c(0.25, 0.75)
edata <- data.frame(x2 = sort(rnorm(nn)))
edata <- transform(edata, y1 = 1 + x2 + rnorm(nn, sd = exp(-1)),
y2 = cos(x2) / (1 + abs(x2)) + rnorm(nn, sd = exp(-1)))
fit1 <- vglm(y1 ~ x2, extlogF1(tau = mytau), data = edata) # trace = TRUE
fit2 <- vglm(y2 ~ bs(x2, 6), extlogF1(tau = mytau), data = edata)
coef(fit1, matrix = TRUE)
fit2@extra$percentile # Empirical percentiles here
summary(fit2)
c(is.crossing(fit1), is.crossing(fit2))
head(fitted(fit1))
## Not run: plot(y2 ~ x2, edata, col = "blue")
matlines(with(edata, x2), fitted(fit2), col="orange", lty = 1, lwd = 2)
## End(Not run)