StatProbPlots.StatNormalPlot Method

procedure StatNormalPlot(const Data: TVec; const XDrawVec: TVec; const YDrawVec: TVec; out MinX: Double; out MaxX: Double; out MinY: Double; out MaxY: Double; const StdErrs: TVec; const DataSorted: Boolean);

Constructs the Normal Probability Chart.

#NameDescription
1DataData to be drawn. The assumption is data values are sorted.
2DataSortedIf 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.
3XDrawVecReturns normal probability plot horizontal values to be drawn - > estimated quantiles from Data vector or in this case sorted Data values.
4YDrawVecReturns normal probability plot vertical values to be drawn - > Values are generated from theoretical standard normal distribution with parameters mu=0, sigma^2=1.
5MinXReturns slope line start X point, XDrawVec 25th percentile. These value are used by Tee.ProbabilityPlot series.
6MinYReturns slope line start Y point, YDrawVec 25th percentile. These value are used by Tee.ProbabilityPlot series.
7MaxXReturns slope line end X point, XDrawVec 75th percentile. These value are used by Tee.ProbabilityPlot series.
8MaxYReturns slope line end Y point, YDrawVec 75th percentile. These value are used by Tee.ProbabilityPlot series.
9StdErrsStandard error

Result: stored in self (calling object)

Remarks:

How to construct Normal distribution probability plot?

  • If needed, Data values are sorted (DataSorted parameter must be 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 p i.e the so Z values. 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 normality.

The normal probability plot is used to answer the following questions:

  • Are the data normally distributed?
  • What is the nature of the departure from normality (data skewed, shorter than expected tails, longer than expected tails)?
Examples
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);
    Data.RandGauss(0.0,1.0); // standard norm. dist.
    StatNormalPlot(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;
See Also: ProbabilityPlot