procedure StatWeibullPlot(const Data: TVec; const XDrawVec: TVec; const YDrawVec: TVec; out MinX: Double; out MaxX: Double; out MinY: Double; out MaxY: Double; const DataSorted: Boolean);
Constructs the Weibull Probability Chart.
| # | Name | Description |
|---|---|---|
| 1 | Data | Data to be drawn. |
| 2 | DataSorted | If true, algorithm assumes Data is already sorted in ascending order. If Data is not sorted, you must set this parameter to false so that internal algorithm will automatically do the sorting. |
| 3 | XDrawVec | Returns vector of X values to be drawn - > Data estimated quantiles or in this case ordered data values. |
| 4 | YDrawVec | Returns vector of Y values to be drawn - > theretical Weibull probability values or in this case ln(ln(1/(1-p)), where p are predefined theoretical probabilities. |
| 5 | MinX | Returns slope line start X point, XDrawVec 25th percentile. These value are used by Tee.ProbabilityPlot series. |
| 6 | MinY | Returns slope line start Y point, YDrawVec 25th percentile. These value are used by Tee.ProbabilityPlot series. |
| 7 | MaxX | Returns slope line end X point, XDrawVec 75th percentile. These value are used by Tee.ProbabilityPlot series. |
| 8 | MaxY | Returns slope line end Y point, YDrawVec 75th percentile. These value are used by Tee.ProbabilityPlot series. |
Result: stored in self (calling object)
Constructs the Weibull Probability Chart. Use Tee.ProbabilityPlot to visualize/plot constructed values. The Weibull plot is a graphical technique for determining if a data set comes from a population that would logically be fitted by a 2-parameter Weibull distribution (the location is assumed to be zero).
The Weibull plot has special scales that are designed so that if the data do in fact follow a Weibull distribution, the points will be linear (or nearly linear). The least squares fit of this line yields estimates for the shape and scale parameters of the Weibull distribution. Weibull distribution (the location is assumed to be zero).
How to construct Weibull distribution probability plot?
- If needed, Data values are sorted (DataSorted parameter set to false).
- Abscissa drawing values are formed by estimated data quantiles - ordered Data values. After calculation they are copied to XDrawVec. TMtxVecBase.Length and TMtxVec.Complex properties of XDrawVec are adjusted automatically.
- Ordinate drawing values are formed by using theoretical probability
ptop - > ln[ln[1/(1-p)]]. After calculation they are copied to YDrawVec. TMtxVecBase.Length and TMtxVec.Complex properties of YDrawVec are adjusted automatically. - XDrawVec and YDrawVec 25th and 75th percentile points are used to construct a reference line. Drawing points departures from this straight line indicate departures from Weibull distribution.
The Weibull plot can be used to answer the following questions:
- Do the data follow a 2-parameter Weibull distribution?
- What is the best estimate of the shape parameter for the 2-parameter Weibull distribution?
- What is the best estimate of the scale (= variation) parameter for the 2-parameter Weibull distribution?
Uses MtxExpr, StatProbPlots, StatSeries, Math387, MtxVecTee;
procedure Example(Series1: TStatProbSeries);
var Data, XVec, YVec: Vector;
X1,Y1,X2,Y2: double;
begin
// generate some random values for Data vec
Data.Size(100);
RandomWeibull(3,1.2,Data);
StatWeibullPlot(Data,XVec,YVec,X1,X2,Y1,Y2,false);
With Series1 do
begin
MinX := X1;
MinY := Y1;
MaxX := X2;
MaxY := Y2;
end;
DrawValues(XVec,YVec,Series1);
end;