| Title: | Integration-Based Coefficients of Variation | 
| Version: | 0.0.2 | 
| Description: | Estimate coefficient of variation percent (CV%) for any arbitrary distribution, including some built-in estimates for commonly-used transformations in pharmacometrics. Methods are described in various sources, but applied here as summarized in: Prybylski, (2024) <doi:10.1007/s40262-023-01343-2>. | 
| License: | MIT + file LICENSE | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.3.2 | 
| Suggests: | testthat (≥ 3.0.0) | 
| Config/testthat/edition: | 3 | 
| NeedsCompilation: | no | 
| Packaged: | 2025-08-25 12:50:58 UTC; jpryb | 
| Author: | John Prybylski | 
| Maintainer: | John Prybylski <jprybylski@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-08-25 13:50:08 UTC | 
Built-in integration-based %CV functions
Description
Built-in integration-based %CV functions
Usage
dist.intcv(
  dist = "log",
  ...,
  exact = ifelse(dist == "log", TRUE, FALSE),
  lambda = NULL,
  fun = FALSE
)
Arguments
| dist | Selection of built-in distributions. | 
| ... | passed to moment() | 
| exact | If there is an exact moment generating function, use that. Default TRUE only for log | 
| lambda | shape parameter for nonmemboxcox() | 
| fun | return function (for use in invcv()) | 
Value
Percent CV
Examples
dist.intcv("log", v = 0.2)
dist.intcv("logit", u = 0.5, v = 0.3)
Built-in moment functions
Description
Built-in moment functions
Usage
dist.moment(
  dist = "log",
  ...,
  exact = ifelse(dist == "log", TRUE, FALSE),
  lambda = NULL
)
Arguments
| dist | Selection of built-in distributions. | 
| ... | passed to moment() | 
| exact | If there is an exact moment generating function, use that. Default TRUE only for log | 
| lambda | shape parameter for nonmemboxcox() | 
Value
moment
Examples
dist.moment("log", u = 2, v = 0.2, n = 2)
dist.moment("logit", u = 0.5, v = 0.2, n = 1)
Integration-based CV%
Description
Integration-based CV%
Usage
intcv(...)
Arguments
| ... | Arguments passed to moment() | 
Value
Percent CV
Examples
intcv(u = 1, v = 0.2, pdist = exp, qdist = log)
Variance from CV%
Description
Variance from CV%
Usage
invcv(cvfun, cv, verbose = FALSE, ...)
Arguments
| cvfun | intcv()-based function | 
| cv | CV% generated from cvfun | 
| verbose | extra output | 
| ... | Other parameters to pass to cvfun | 
Value
Best-fit variance
Examples
logcv <- dist.intcv("log", fun = TRUE)
invcv(logcv, cv = 30)
Moment function
Description
Moment function
Usage
moment(...)
Arguments
| ... | all arguments passed to moment_f() | 
Value
moment
Examples
moment(n = 3, u = 1, v = 0.2, pdist = exp, qdist = log)
Integratable moment function
Description
Integratable moment function
Usage
moment_f(x, u, v, n, pdist, qdist)
Arguments
| x | numeric vector | 
| u | mean | 
| v | variance | 
| n | moment number | 
| pdist | un-transform function for transformed random variable (eg, exp()) | 
| qdist | transform function (eg, log()) | 
Value
Point result of the moment function
Examples
moment_f(0, u = 1, v = 0.2, n = 1, pdist = exp, qdist = log)
Box-Cox transform typically used in NONMEM
Description
Parameters are typically treated as lognormally-distributed by NONMEM users. Box-Cox transforms are typically applied to the exponentiated individual ETA parameters; this means the parameter is neither Box-Cox distributed nor lognormally-distributed, but both. To get the "Box-Cox Transform" as it would be relevant for CV% calculation, these properties have to be considered.
Usage
nonmemboxcox(x, lambda, theta = 1, inv = FALSE)
Arguments
| x | random vector. Must be positive. | 
| lambda | shape parameter | 
| theta | centrality parameter | 
| inv | inverse transform | 
Value
Box-Cox transformed or untransformed vector
Examples
y <- nonmemboxcox(1.5, lambda = 0.5, theta = 1)
nonmemboxcox(y, lambda = 0.5, theta = 1, inv = TRUE)
Numeric CV% of a sample
Description
Numeric CV% of a sample
Usage
numcv(x, ...)
Arguments
| x | numeric vector | 
| ... | other arguments for sd() and mean() | 
Value
Percent cv
Examples
test_x <- rnorm(1000, mean=50, sd=5)
cv <- numcv(test_x)
cv # expect ~ 10(%)