View source: R/dpqr-NvasicekQ.R
| NVASIQ | R Documentation |
The function NVASIQ() defines the normal-kernel Vasicek
distribution as a gamlss.family object. In this parameterization,
\mu corresponds to the fixed \tau-th quantile and
\sigma is a shape parameter. For GAMLSS fitting, tau must
be defined as a scalar variable in the global environment before
NVASIQ() is evaluated. The functions
dNVASIQ, pNVASIQ, qNVASIQ, and rNVASIQ define
the density, distribution function, quantile function, and random
generation for the Vasicek distribution, respectively.
dNVASIQ(x, mu, sigma, tau = 0.5, log = FALSE)
pNVASIQ(q, mu, sigma, tau = 0.5, lower.tail = TRUE, log.p = FALSE)
qNVASIQ(p, mu, sigma, tau = 0.5, lower.tail = TRUE, log.p = FALSE)
rNVASIQ(n, mu, sigma, tau = 0.5)
NVASIQ(mu.link = "logit", sigma.link = "logit")
x, q |
Vector of quantiles in the interval |
mu |
Vector of |
sigma |
Vector of shape parameter values. |
tau |
Quantile level |
log, log.p |
Logical; if |
lower.tail |
Logical; if |
p |
Vector of probabilities. |
n |
Number of observations. If |
mu.link |
Link function for the |
sigma.link |
Link function for the |
Probability density function:
f\left(x \mid \mu, \sigma, \tau\right) =
\sqrt{\frac{1-\sigma}{\sigma}}
\exp\left\{\frac{1}{2}\left[\Phi^{-1}(x)^2 -
\left(\frac{\sqrt{1-\sigma}\left(\Phi^{-1}(x)-\Phi^{-1}(\mu)\right)
- \sqrt{\sigma}\,\Phi^{-1}(\tau)}{\sqrt{\sigma}}\right)^2\right]\right\}.
Cumulative distribution function:
F\left(x \mid \mu, \sigma, \tau\right) =
\Phi\left(\frac{\sqrt{1-\sigma}\left(\Phi^{-1}(x)-\Phi^{-1}(\mu)\right)
- \sqrt{\sigma}\,\Phi^{-1}(\tau)}{\sqrt{\sigma}}\right).
where 0 < (x, \mu, \tau, \sigma) < 1, \mu is the
\tau-th quantile, and \sigma is the shape parameter.
NVASIQ() returns a gamlss.family object that can be used
to fit a Vasicek distribution using the gamlss
function.
For NVASIQ(), \mu corresponds to the \tau-th quantile
and \sigma is a shape parameter. The global variable tau
must remain set to the quantile level associated with a fitted model
when residuals or other post-fit quantities are computed.
Josmar Mazucheli jmazucheli@gmail.com
Bruna Alves pg402900@uem.br
Hastie, T. J. and Tibshirani, R. J. (1990). Generalized Additive Models. Chapman and Hall, London.
Mazucheli, J., Alves, B., Korkmaz, M. Ç., and Leiva, V. (2022). Vasicek quantile and mean regression models for bounded data: New formulation, mathematical derivations, and numerical applications. Mathematics, 10, 1389.
Rigby, R. A. and Stasinopoulos, D. M. (2005). Generalized additive models for location, scale and shape (with discussion). Applied Statistics, 54(3), 507–554.
Rigby, R. A., Stasinopoulos, D. M., Heller, G. Z., and De Bastiani, F. (2019). Distributions for Modeling Location, Scale, and Shape: Using GAMLSS in R. Chapman and Hall/CRC.
Stasinopoulos, D. M. and Rigby, R. A. (2007). Generalized additive models for location, scale and shape (GAMLSS) in R. Journal of Statistical Software, 23(7), 1–45.
Stasinopoulos, D. M., Rigby, R. A., Heller, G., Voudouris, V., and De Bastiani, F. (2017). Flexible Regression and Smoothing: Using GAMLSS in R. Chapman and Hall/CRC.
Vasicek, O. A. (1987). Probability of loss on loan portfolio. KMV Corporation.
Vasicek, O. A. (2002). The distribution of loan portfolio value. Risk, 15(12), 1–10.
NVASIM
set.seed(123)
x <- rNVASIQ(n = 1000, mu = 0.50, sigma = 0.69, tau = 0.50)
R <- range(x)
S <- seq(from = R[1], to = R[2], length.out = 1000)
hist(x, prob = TRUE, main = "Vasicek")
lines(S, dNVASIQ(x = S, mu = 0.50, sigma = 0.69, tau = 0.50), col = 2)
plot(ecdf(x))
lines(S, pNVASIQ(q = S, mu = 0.50, sigma = 0.69, tau = 0.50), col = 2)
plot(quantile(x, probs = S), type = "l")
lines(qNVASIQ(p = S, mu = 0.50, sigma = 0.69, tau = 0.50), col = 2)
library(gamlss)
set.seed(123)
data <- data.frame(y = rNVASIQ(n = 100, mu = 0.50, sigma = 0.69, tau = 0.50))
tau <- 0.5
fit <- gamlss(y ~ 1, data = data,
family = NVASIQ(mu.link = "logit",
sigma.link = "logit"))
1 / (1 + exp(-fit$mu.coefficients))
1 / (1 + exp(-fit$sigma.coefficients))
set.seed(123)
n <- 100
x <- rbinom(n, size = 1, prob = 0.5)
eta <- 0.5 + 1 * x
mu <- 1 / (1 + exp(-eta))
sigma <- 0.5
y <- rNVASIQ(n, mu, sigma, tau = 0.5)
data <- data.frame(y, x)
tau <- 0.5
fit <- gamlss(y ~ x, data = data, family = NVASIQ)
fittaus <- lapply(c(0.10, 0.25, 0.50, 0.75, 0.90), function(Tau) {
tau <<- Tau
gamlss(y ~ x, data = data, family = NVASIQ)
})
sapply(fittaus, summary)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.