The Weibull Distribution

Density, distribution function, quantile function and random generation for the Weibull distribution with parameters shape and scale.

dweibull(x, shape, scale = 1, log = FALSE)
pweibull(q, shape, scale = 1, lower.tail = TRUE, log.p = FALSE)
qweibull(p, shape, scale = 1, lower.tail = TRUE, log.p = FALSE)
rweibull(n, shape, scale = 1)
x, q

vector of quantiles.


vector of probabilities.


number of observations. If length(n) > 1, the length is taken to be the number required.

shape, scale

shape and scale parameters, the latter defaulting to 1.

log, log.p

logical; if TRUE, probabilities p are given as log(p).


logical; if TRUE (default), probabilities are \(P[X \le x]\), otherwise, \(P[X > x]\).


The Weibull distribution with shape parameter \(a\) and scale parameter \(\sigma\) has density given by $$f(x) = (a/\sigma) {(x/\sigma)}^{a-1} \exp (-{(x/\sigma)}^{a})$$ for \(x > 0\). The cumulative distribution function is \(F(x) = 1 - \exp(-{(x/\sigma)}^a)\) on \(x > 0\), the mean is \(E(X) = \sigma \Gamma(1 + 1/a)\), and the \(Var(X) = \sigma^2(\Gamma(1 + 2/a)-(\Gamma(1 + 1/a))^2)\).


dweibull gives the density, pweibull gives the distribution function, qweibull gives the quantile function, and rweibull generates random deviates.

Invalid arguments will result in return value NaN, with a warning.

The length of the result is determined by n for rweibull, and is the maximum of the lengths of the numerical arguments for the other functions.

The numerical arguments other than n are recycled to the length of the result. Only the first elements of the logical arguments are used.


The cumulative hazard \(H(t) = - \log(1 - F(t))\) is

-pweibull(t, a, b, lower = FALSE, log = TRUE)

which is just \(H(t) = {(t/b)}^a\).


Johnson, N. L., Kotz, S. and Balakrishnan, N. (1995) Continuous Univariate Distributions, volume 1, chapter 21. Wiley, New York.

See Also

Distributions for other standard distributions, including the Exponential which is a special case of the Weibull distribution.

  • Weibull
  • dweibull
  • pweibull
  • qweibull
  • rweibull
library(stats) # NOT RUN { x <- c(0, rlnorm(50)) all.equal(dweibull(x, shape = 1), dexp(x)) all.equal(pweibull(x, shape = 1, scale = pi), pexp(x, rate = 1/pi)) ## Cumulative hazard H(): all.equal(pweibull(x, 2.5, pi, lower.tail = FALSE, log.p = TRUE), -(x/pi)^2.5, tolerance = 1e-15) all.equal(qweibull(x/11, shape = 1, scale = pi), qexp(x/11, rate = 1/pi)) # }
Documentation reproduced from package stats, version 3.5.1, License: Part of R 3.5.1

Community examples

Looks like there are no examples yet.