ControlCharts Class

Provides static factory methods for computing SPC control-chart data.

Definition

Namespace: Numerics.NET.Statistics.ProcessControl
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.4.0
C#
public static class ControlCharts
Inheritance
Object  →  ControlCharts

Remarks

All methods return immutable, chart-ready data objects containing computed points and scalar control limits. Rendering is the caller's responsibility.

Example

Compute an Individuals–Moving Range chart from a span of observations:

C#
double[] observations = { 9.0, 11.0, 10.0, 12.0, 8.0, 10.0, 9.0, 11.0, 10.0, 10.0 };

IndividualsMovingRangeChartSetData result =
    ControlCharts.IndividualsMovingRange(observations.AsSpan());

Console.WriteLine($"I chart  CL  = {result.Individuals.CenterLine:F4}");
Console.WriteLine($"I chart  UCL = {result.Individuals.UpperControlLimit:F4}");
Console.WriteLine($"I chart  LCL = {result.Individuals.LowerControlLimit:F4}");
Console.WriteLine($"MR chart UCL = {result.MovingRange.UpperControlLimit:F4}");

Compute an XBar–R chart from a subgroup matrix (rows = subgroups):

C#
// 5 subgroups of size 4
double[,] data = {
    {  9.0, 10.0, 11.0, 10.0 },
    {  8.0, 10.0, 12.0, 10.0 },
    { 10.0, 10.0, 10.0, 10.0 },
    {  9.0, 11.0,  9.0, 11.0 },
    { 10.0, 10.0, 10.0, 10.0 }
};
Matrix<double> subgroups = Matrix.CopyFrom(data);

XBarRChartSetData xbarR = ControlCharts.XBarR(subgroups);

Console.WriteLine($"XBar chart UCL = {xbarR.XBar.UpperControlLimit:F4}");
Console.WriteLine($"R chart    UCL = {xbarR.Range.UpperControlLimit:F4}");

Methods

C(ReadOnlySpan<Double>) Computes a C (defect count) chart from a span of defect counts.
C(Vector<Double>) Computes a C (defect count) chart from a vector of defect counts.
C(Vector<Double>, StandardBaseline) Computes a C (defect count) chart from a vector of defect counts in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
CUSUM(ReadOnlySpan<Double>, Double, Double, Nullable<Double>, Nullable<Double>) Computes a CUSUM (Cumulative Sum) chart from a span of observations.
CUSUM(Vector<Double>, Double, Double, Nullable<Double>, Nullable<Double>) Computes a CUSUM (Cumulative Sum) chart from a vector of observations.
EWMA(ReadOnlySpan<Double>, Double, Double, Nullable<Double>, Nullable<Double>) Computes an EWMA (Exponentially Weighted Moving Average) chart from a span of observations.
EWMA(Vector<Double>, Double, Double, Nullable<Double>, Nullable<Double>) Computes an EWMA (Exponentially Weighted Moving Average) chart from a vector of observations.
IndividualsMovingRange(ReadOnlySpan<Double>, StandardBaseline) Computes an Individuals–Moving Range chart set from a span of observations in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
IndividualsMovingRange(Vector<Double>, StandardBaseline) Computes an Individuals–Moving Range chart set from a vector of observations in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
IndividualsMovingRange(ReadOnlySpan<Double>, Int32, SigmaEstimator) Computes an Individuals–Moving Range chart set from a span of observations.
IndividualsMovingRange(Vector<Double>, Int32, SigmaEstimator) Computes an Individuals–Moving Range chart set from a vector of observations.
NP(ReadOnlySpan<Double>, Double) Computes an NP (number nonconforming) chart from a span of defect counts and a constant subgroup sample size.
NP(Vector<Double>, StandardBaseline) Computes an NP (number nonconforming) chart from a vector of defect counts in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis. The sample size is taken from the baseline.
NP(Vector<Double>, Double) Computes an NP (number nonconforming) chart from a vector of defect counts and a constant subgroup sample size.
P(ReadOnlySpan<Double>, ReadOnlySpan<Double>) Computes a P (fraction nonconforming) chart from spans of defect counts and subgroup sample sizes.
P(Vector<Double>, Vector<Double>) Computes a P (fraction nonconforming) chart from a vector of defect counts and a vector of subgroup sample sizes.
P(Vector<Double>, Vector<Double>, RateBaseline) Computes a P (fraction nonconforming) chart from a vector of defect counts and sample sizes in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
U(ReadOnlySpan<Double>, ReadOnlySpan<Double>) Computes a U (defects-per-unit) chart from spans of defect counts and subgroup unit sizes.
U(Vector<Double>, Vector<Double>) Computes a U (defects-per-unit) chart from a vector of defect counts and a vector of subgroup unit sizes.
U(Vector<Double>, Vector<Double>, RateBaseline) Computes a U (defects-per-unit) chart from a vector of defect counts and unit sizes in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
XBarR(Matrix<Double>) Computes an XBar–R chart set from a subgroup matrix.
XBarR(Matrix<Double>, StandardBaseline) Computes an XBar–R chart set from a subgroup matrix in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
XBarR(ReadOnlySpan<Double>, ReadOnlySpan<Int32>) Computes an XBar–R chart set from flat observations with integer subgroup IDs.
XBarR(Vector<Double>, IGrouping) Computes an XBar–R chart set from grouped observations using a Numerics.NET grouping abstraction.
XBarR(ReadOnlySpan<Double>, ReadOnlySpan<Int32>, StandardBaseline) Computes an XBar–R chart set from flat observations with integer subgroup IDs in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
XBarR(Vector<Double>, IGrouping, StandardBaseline) Computes an XBar–R chart set from grouped observations in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
XBarS(Matrix<Double>) Computes an XBar–S chart set from a subgroup matrix.
XBarS(Matrix<Double>, StandardBaseline) Computes an XBar–S chart set from a subgroup matrix in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
XBarS(ReadOnlySpan<Double>, ReadOnlySpan<Int32>) Computes an XBar–S chart set from flat observations with integer subgroup IDs.
XBarS(Vector<Double>, IGrouping) Computes an XBar–S chart set from grouped observations using a Numerics.NET grouping abstraction.
XBarS(ReadOnlySpan<Double>, ReadOnlySpan<Int32>, StandardBaseline) Computes an XBar–S chart set from flat observations with integer subgroup IDs in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.
XBarS(Vector<Double>, IGrouping, StandardBaseline) Computes an XBar–S chart set from grouped observations in Phase II mode, evaluating against a frozen baseline from a prior Phase I analysis.

See Also