expgrowth | R Documentation |
Density, distribution function, and random generation for the exponential growth distribution.
dexpgrowth(x, min = 0, max = 1, r, log = FALSE)
pexpgrowth(q, min = 0, max = 1, r, lower.tail = TRUE, log.p = FALSE)
rexpgrowth(n, min = 0, max = 1, r)
x , q |
Vector of quantiles. |
min |
Minimum value of the distribution range. Default is 0. |
max |
Maximum value of the distribution range. Default is 1. |
r |
Rate parameter for the exponential growth. |
log , log.p |
Logical; if TRUE, probabilities p are given as log(p). |
lower.tail |
Logical; if TRUE (default), probabilities are P[X <= x], otherwise, P[X > x]. |
n |
Number of observations. If |
The exponential growth distribution is defined on the interval [min, max] with rate parameter (r). Its probability density function (PDF) is:
f(x) = \frac{r \cdot \exp(r \cdot (x - min))}{\exp(r \cdot max) -
\exp(r \cdot min)}
The cumulative distribution function (CDF) is:
F(x) = \frac{\exp(r \cdot (x - min)) - \exp(r \cdot min)}{
\exp(r \cdot max) - \exp(r \cdot min)}
For random number generation, we use the inverse transform sampling method:
Generate u \sim \text{Uniform}(0,1)
Set F(x) = u
and solve for x
:
x = min + \frac{1}{r} \cdot \log(u \cdot (\exp(r \cdot max) -
\exp(r \cdot min)) + \exp(r \cdot min))
This method works because of the probability integral transform theorem,
which states that if X
is a continuous random variable with CDF
F(x)
, then Y = F(X)
follows a \text{Uniform}(0,1)
distribution. Conversely, if U
is a \text{Uniform}(0,1)
random
variable, then F^{-1}(U)
has the same distribution as X
, where
F^{-1}
is the inverse of the CDF.
In our case, we generate u
from \text{Uniform}(0,1)
, then solve
F(x) = u
for x
to get a sample from our exponential growth
distribution. The formula for x
is derived by algebraically solving
the equation:
u = \frac{\exp(r \cdot (x - min)) - \exp(r \cdot min)}{\exp(r \cdot max) -
\exp(r \cdot min)}
When r
is very close to 0 (|r| < 1e-10
), the distribution
approximates a uniform distribution on [min, max], and we use a simpler
method to generate samples directly from this uniform distribution.
dexpgrowth
gives the density, pexpgrowth
gives the distribution
function, and rexpgrowth
generates random deviates.
The length of the result is determined by n
for rexpgrowth
, and is the
maximum of the lengths of the numerical arguments for the other functions.
x <- seq(0, 1, by = 0.1)
probs <- dexpgrowth(x, r = 0.2)
cumprobs <- pexpgrowth(x, r = 0.2)
samples <- rexpgrowth(100, r = 0.2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.