Density function, distribution function, quantile function and random generation for the maximum/minimum of a given number of independent variables from a specified distribution.

dExtrVal(x, densfun, distnfun, ..., distn, mlen = 1, largest = TRUE,
    log = FALSE)
pExtrVal(q, distnfun, ..., distn, mlen = 1, largest = TRUE,
    lower.tail = TRUE)
qExtrVal(p, quantfun, ..., distn, mlen = 1, largest = TRUE,
    lower.tail = TRUE)
rExtrVal(n, quantfun, ..., distn, mlen = 1, largest = TRUE)

Arguments

x, q

Vector of quantiles.

p

Vector of probabilities.

n

Number of observations.

densfun, distnfun, quantfun

Density, distribution and quantile function of the specified distribution. The density function must have a log argument (a simple wrapper can always be constructed to achieve this).

...

Parameters of the specified distribution.

distn

A character string, optionally given as an alternative to densfun, distnfun and quantfun such that the density, distribution and quantile functions are formed upon the addition of the prefixes d, p and q respectively.

mlen

The number of independent variables.

largest

Logical; if TRUE (default) use maxima, otherwise minima.

log

Logical; if TRUE, the log density is returned.

lower.tail

Logical; if TRUE (default) probabilities are P[X <= x], otherwise P[X > x].

Value

dExtrVal gives the density function, pExtrVal gives the distribution function and qExtrVal gives the quantile function of the maximum/minimum of mlen independent variables from a specified distibution. rExtrVal generates random deviates.

See also

Author

Alec Stephenson <alec_stephenson@hotmail.com>

Examples

dExtrVal(2:4, dnorm, pnorm, mean = 0.5, sd = 1.2, mlen = 5)
#> [1] 0.48689660 0.17602941 0.02346192
dExtrVal(2:4, distn = "norm", mean = 0.5, sd = 1.2, mlen = 5)
#> [1] 0.48689660 0.17602941 0.02346192
dExtrVal(2:4, distn = "exp", mlen = 2, largest = FALSE)
#> [1] 0.0366312778 0.0049575044 0.0006709253
pExtrVal(2:4, distn = "exp", rate = 1.2, mlen = 2)
#> [1] 0.8267938 0.9460991 0.9836082
qExtrVal(seq(0.9, 0.6, -0.1), distn = "exp", rate = 1.2, mlen = 2)
#> [1] 2.474783 1.873629 1.509935 1.241553
rExtrVal(5, qgamma, shape = 1, mlen = 10)
#> [1] 2.850781 2.382100 2.448266 2.375749 3.129234
p <- (1:9)/10
pexp(qExtrVal(p, distn = "exp", rate = 1.2, mlen = 1), rate = 1.2)
#> [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9