Difference between revisions of "Weibull distribution"
m |
|||
(13 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | [[category: | + | [[category:Continuous distributions]] |
+ | [[category:Semi-bounded distributions]] | ||
+ | [[category:Unimodal distributions]] | ||
+ | [[category:Univariate distributions]] | ||
[[Category:Doc Status D]] <!-- For Lumina use, do not change --> | [[Category:Doc Status D]] <!-- For Lumina use, do not change --> | ||
+ | {{ReleaseBar}} | ||
+ | The [[Weibull]] distribution is often used to represent the time to failure in models of equipment reliability, or time to death for humans and other creatures. It is similar in shape to the [[Gamma|gamma distribution]], but tends to be less skewed and tail-heavy. It is a [[:category:Continuous distributions|continuous distribution]] over the [[:category:Semi-bounded distributions|positive real numbers]]. | ||
− | + | <center><code>Weibull(10, 4) →</code> [[Image:Weibull_graph.jpg]]</center> | |
− | + | == Functions == | |
+ | Both parameters most be positive, i.e., <math>shape, scale > 0</math>. The «scale» parameter is optional and defaults to 1. | ||
− | The Weibull distribution | + | === Weibull(shape'', scale, over'') === |
+ | The distribution function. Use this to define a chance variable or other uncertain quantity as having a Weibull distribution. | ||
− | + | You can use the optional «over» parameter to generate independent and identically distributed distributions over one or more indicated indexes. | |
− | = | + | === <div id="DensWeibull">DensWeibull(x, shape'', scale'' )</div> === |
− | + | The density on <math>x\ge 0</math> is given by: | |
+ | :<math>p(x) = {{shape}\over{scale}} \left({x\over{scale}}\right)^{shape-1} \exp\left(-(x/{scale})^{shape}\right)</math> | ||
− | = | + | === <div id="CumWeibull">CumWeibull(x, shape'', scale'' )</div> === |
+ | The Weibull distribution has a cumulative density on <math>x\ge 0</math> given by: | ||
− | * [[Gamma]], [[Normal]] | + | :<math>F(x) = 1 - \exp\left({-\left({x\over{scale}}\right)^{shape}}\right)</math> |
+ | |||
+ | and ''F(x) = 0'' for ''x < 0''. | ||
+ | === <div id="CumWeibullInv">CumWeibullInv(p, shape'', scale'' )</div> === | ||
+ | The inverse cumulative distribution, or quantile function. Returns the «p»<sup>th</sup> fractile/quantile/percentile. | ||
+ | |||
+ | :<math>F^{-1}(p) = scale * \left( \ln\left( 1\over{1-p} \right)\right)^{1/shape}</math> | ||
+ | |||
+ | == Statistics == | ||
+ | The theoretical statistics (i.e., without sampling error) for the Weibull distribution are as follows. I use <math>\alpha = 1/shape</math> and <math>\beta = scale</math>. | ||
+ | |||
+ | * [[Mean]] = <math>\beta \Gamma\left( 1 + \alpha\right)</math> | ||
+ | * Mode = <math>\left\{ \begin{array}{ll} | ||
+ | \beta \left( 1 - \alpha \right)^\alpha & \alpha>1 \\ | ||
+ | 0 & \alpha \leq 1 | ||
+ | \end{array}\right.</math> | ||
+ | * [[Median]] = <math>\beta \left( \ln 2\right)^\alpha</math> | ||
+ | * [[Variance]] = <math>\beta^2 \Gamma(1+2\alpha) - \left(\beta \Gamma(1+\alpha)\right)^2</math> | ||
+ | |||
+ | == Parameter Estimation == | ||
+ | Suppose you have sampled historic data in <code>Data</code>, indexed by <code>I</code>, and you want to find the parameters for the best-fit [[Weibull]] distribution. The parameters can be estimated using a linear regression as follows: | ||
+ | |||
+ | :<code>Index bm := ['b', 'm'];</code> | ||
+ | :<code>Var Fx := (Rank(Data, I) - 0.5)/Size(I);</code> | ||
+ | :<code>Var Z := Ln(-Ln(1 - Fx));</code> | ||
+ | :<code>Var fit := Regression(Z, Array(bm, [1, Ln(Data)]), I, bm);</code> | ||
+ | :<code>Var shape := fit[bm = 'm'];</code> | ||
+ | :<code>Var b := fit[bm = 'b'];</code> | ||
+ | :<code>Var scale := Exp(-b/shape);</code> | ||
+ | :<code>[shape, scale]</code> | ||
+ | |||
+ | == See Also == | ||
+ | * [[Weibull estimation library]] | ||
+ | * [[Rayleigh]] | ||
+ | * [[Weibull_10_50_90]] | ||
+ | * [[Gamma]] | ||
+ | * [[Normal]] | ||
+ | * [[Regression]] | ||
+ | * [[Exp]] | ||
+ | * [[Ln]] | ||
+ | * [[Parametric continuous distributions]] |
Latest revision as of 02:08, 29 May 2024
Release: |
4.6 • 5.0 • 5.1 • 5.2 • 5.3 • 5.4 • 6.0 • 6.1 • 6.2 • 6.3 • 6.4 • 6.5 |
---|
The Weibull distribution is often used to represent the time to failure in models of equipment reliability, or time to death for humans and other creatures. It is similar in shape to the gamma distribution, but tends to be less skewed and tail-heavy. It is a continuous distribution over the positive real numbers.
Weibull(10, 4) →
Functions
Both parameters most be positive, i.e., [math]\displaystyle{ shape, scale \gt 0 }[/math]. The «scale» parameter is optional and defaults to 1.
Weibull(shape, scale, over)
The distribution function. Use this to define a chance variable or other uncertain quantity as having a Weibull distribution.
You can use the optional «over» parameter to generate independent and identically distributed distributions over one or more indicated indexes.
DensWeibull(x, shape, scale )
The density on [math]\displaystyle{ x\ge 0 }[/math] is given by:
- [math]\displaystyle{ p(x) = {{shape}\over{scale}} \left({x\over{scale}}\right)^{shape-1} \exp\left(-(x/{scale})^{shape}\right) }[/math]
CumWeibull(x, shape, scale )
The Weibull distribution has a cumulative density on [math]\displaystyle{ x\ge 0 }[/math] given by:
- [math]\displaystyle{ F(x) = 1 - \exp\left({-\left({x\over{scale}}\right)^{shape}}\right) }[/math]
and F(x) = 0 for x < 0.
CumWeibullInv(p, shape, scale )
The inverse cumulative distribution, or quantile function. Returns the «p»th fractile/quantile/percentile.
- [math]\displaystyle{ F^{-1}(p) = scale * \left( \ln\left( 1\over{1-p} \right)\right)^{1/shape} }[/math]
Statistics
The theoretical statistics (i.e., without sampling error) for the Weibull distribution are as follows. I use [math]\displaystyle{ \alpha = 1/shape }[/math] and [math]\displaystyle{ \beta = scale }[/math].
- Mean = [math]\displaystyle{ \beta \Gamma\left( 1 + \alpha\right) }[/math]
- Mode = [math]\displaystyle{ \left\{ \begin{array}{ll} \beta \left( 1 - \alpha \right)^\alpha & \alpha\gt 1 \\ 0 & \alpha \leq 1 \end{array}\right. }[/math]
- Median = [math]\displaystyle{ \beta \left( \ln 2\right)^\alpha }[/math]
- Variance = [math]\displaystyle{ \beta^2 \Gamma(1+2\alpha) - \left(\beta \Gamma(1+\alpha)\right)^2 }[/math]
Parameter Estimation
Suppose you have sampled historic data in Data
, indexed by I
, and you want to find the parameters for the best-fit Weibull distribution. The parameters can be estimated using a linear regression as follows:
Index bm := ['b', 'm'];
Var Fx := (Rank(Data, I) - 0.5)/Size(I);
Var Z := Ln(-Ln(1 - Fx));
Var fit := Regression(Z, Array(bm, [1, Ln(Data)]), I, bm);
Var shape := fit[bm = 'm'];
Var b := fit[bm = 'b'];
Var scale := Exp(-b/shape);
[shape, scale]
Enable comment auto-refresher