Main Content

Weibull inverse cumulative distribution function

`X = wblinv(P,A,B)`

[X,XLO,XUP] = wblinv(P,A,B,PCOV,alpha)

`X = wblinv(P,A,B)`

returns the inverse cumulative
distribution function (cdf) for a Weibull distribution with scale
parameter `A`

and shape parameter `B`

,
evaluated at the values in `P`

. `P`

, `A`

,
and `B`

can be vectors, matrices, or multidimensional
arrays that all have the same size. A scalar input is expanded to
a constant array of the same size as the other inputs. The default
values for `A`

and `B`

are both `1`

.

`[X,XLO,XUP] = wblinv(P,A,B,PCOV,alpha)`

returns
confidence bounds for `X`

when the input parameters `A`

and `B`

are
estimates. `PCOV`

is a 2-by-2 matrix containing the
covariance matrix of the estimated parameters. `alpha`

has
a default value of 0.05, and specifies 100(1 - `alpha`

)% confidence bounds. `XLO`

and `XUP`

are
arrays of the same size as `X`

containing the lower
and upper confidence bounds.

The function `wblinv`

computes confidence bounds
for `X`

using a normal approximation to the distribution
of the estimate

$$\mathrm{log}\widehat{a}+\frac{\mathrm{log}q}{\widehat{b}}$$

where *q* is the `P`

th quantile
from a Weibull distribution with scale and shape parameters both equal
to 1. The computed bounds give approximately the desired confidence
level when you estimate `mu`

, `sigma`

,
and `PCOV`

from large samples, but in smaller samples
other methods of computing the confidence bounds might be more accurate.

The inverse of the Weibull cdf is

$$x={F}^{-1}(p|a,b)=-a{\left[\mathrm{ln}\left(1-p\right)\right]}^{1/b}.$$

The lifetimes (in hours) of a batch of light bulbs has a Weibull
distribution with parameters `a`

= `200`

and b = `6`

.

Find the median lifetime of the bulbs:

life = wblinv(0.5, 200, 6) life = 188.1486

Generate 100 random values from this distribution, and estimate the 90th percentile (with confidence bounds) from the random sample

x = wblrnd(200,6,100,1); p = wblfit(x) [nlogl,pcov] = wbllike(p,x) [q90,q90lo,q90up] = wblinv(0.9,p(1),p(2),pcov) p = 204.8918 6.3920 nlogl = 496.8915 pcov = 11.3392 0.5233 0.5233 0.2573 q90 = 233.4489 q90lo = 226.0092 q90up = 241.1335