| qgkw | R Documentation |
Computes the quantile function (inverse CDF) for the five-parameter
Generalized Kumaraswamy (GKw) distribution. Finds the value x such
that P(X \le x) = p, where X follows the GKw distribution.
qgkw(p, alpha, beta, gamma, delta, lambda, lower_tail = TRUE, log_p = FALSE)
p |
Vector of probabilities (values between 0 and 1). |
alpha |
Shape parameter |
beta |
Shape parameter |
gamma |
Shape parameter |
delta |
Shape parameter |
lambda |
Shape parameter |
lower_tail |
Logical; if |
log_p |
Logical; if |
The quantile function Q(p) is the inverse of the CDF F(x).
Given F(x) = I_{y(x)}(\gamma, \delta+1) where
y(x) = [1-(1-x^{\alpha})^{\beta}]^{\lambda}, the quantile function is:
Q(p) = x = \left\{ 1 - \left[ 1 - \left( I^{-1}_{p}(\gamma, \delta+1) \right)^{1/\lambda} \right]^{1/\beta} \right\}^{1/\alpha}
where I^{-1}_{p}(a, b) is the inverse of the regularized incomplete beta
function, which corresponds to the quantile function of the Beta distribution,
qbeta.
The computation proceeds as follows:
Calculate y = stats::qbeta(p, shape1 = gamma, shape2 = delta + 1, lower.tail = lower_tail, log.p = log_p).
Calculate v = y^{1/\lambda}.
Calculate w = (1 - v)^{1/\beta}. Note: Requires v \le 1.
Calculate q = (1 - w)^{1/\alpha}. Note: Requires w \le 1.
Numerical stability is maintained by handling boundary cases (p = 0,
p = 1) directly and checking intermediate results (e.g., ensuring
arguments to powers are non-negative).
A vector of quantiles corresponding to the given probabilities p.
The length of the result is determined by the recycling rule applied to
the arguments (p, alpha, beta, gamma,
delta, lambda). Returns:
0 for p = 0 (or p = -Inf if log_p = TRUE).
1 for p = 1 (or p = 0 if log_p = TRUE).
NaN for p < 0 or p > 1 (or corresponding log scale).
NaN for invalid parameters (e.g., alpha <= 0,
beta <= 0, gamma <= 0, delta < 0,
lambda <= 0).
Lopes, J. E.
Cordeiro, G. M., & de Castro, M. (2011). A new family of generalized distributions. Journal of Statistical Computation and Simulation
Kumaraswamy, P. (1980). A generalized probability density function for double-bounded random processes. Journal of Hydrology, 46(1-2), 79-88.
dgkw, pgkw, rgkw,
qbeta
# Basic quantile calculation (median)
median_val <- qgkw(0.5, alpha = 2, beta = 3, gamma = 1, delta = 0, lambda = 1)
print(median_val)
# Computing multiple quantiles
probs <- c(0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99)
quantiles <- qgkw(probs, alpha = 2, beta = 3, gamma = 1, delta = 0, lambda = 1)
print(quantiles)
# Upper tail quantile (e.g., find x such that P(X > x) = 0.1, which is 90th percentile)
q90 <- qgkw(0.1, alpha = 2, beta = 3, gamma = 1, delta = 0, lambda = 1,
lower_tail = FALSE)
print(q90)
# Check: should match quantile for p = 0.9 with lower_tail = TRUE
print(qgkw(0.9, alpha = 2, beta = 3, gamma = 1, delta = 0, lambda = 1))
# Log probabilities
median_logp <- qgkw(log(0.5), alpha = 2, beta = 3, gamma = 1, delta = 0, lambda = 1,
log_p = TRUE)
print(median_logp) # Should match median_val
# Vectorized parameters
alphas_vec <- c(0.5, 1.0, 2.0)
betas_vec <- c(1.0, 2.0, 3.0)
# Get median for 3 different GKw distributions
medians_vec <- qgkw(0.5, alpha = alphas_vec, beta = betas_vec, gamma = 1, delta = 0, lambda = 1)
print(medians_vec)
# Verify inverse relationship with pgkw
p_val <- 0.75
x_val <- qgkw(p_val, alpha = 2, beta = 3, gamma = 1, delta = 0, lambda = 1)
p_check <- pgkw(x_val, alpha = 2, beta = 3, gamma = 1, delta = 0, lambda = 1)
print(paste("Calculated p:", p_check, " (Expected:", p_val, ")"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.