Модуль StdStatSum содержит функции, относящиеся к сбору статистики (статистические суммы).
_typ_StdLibrary.inc - необходимо включать этот модуль для определения типа TStatSum2D.
_fun_StdStatSum.inc - функции модуля.

Запись TStatSum2D используется для обработки статистики в 2D пространстве двух переменных (X,Y).
Она определена в файле _typ_StdLibrary.inc, который надо включать в программу.
 type
  ...                       // В разделе задания типов
  {$I _typ_StdLibrary}      // Включение типа TStatSum2D
  ...
 var
  R : TStatSum2D;           // Стат.суммы в двумерном пространстве (X,Y):
  ...                       // Накапливаемые (TStatSum2D_Add) суммы:
  R.Num                     //  Число точек
  R.Sum.X                   //  Сумма X
  R.Sum.Y                   //  Сумма Y
  R.Sum.XX                  //  Сумма X*X
  R.Sum.XY                  //  Сумма X*Y
  R.Sum.YY                  //  Сумма Y*Y
  ...                       // Вычисляемые (TStatSum2D_Calculate) значения:
  R.Mean.X                  //  Среднее (математическое ожидание) X
  R.Mean.Y                  //  Среднее (математическое ожидание) Y
  R.Mean.XX                 //  Среднее (математическое ожидание) X*X
  R.Mean.XY                 //  Среднее (математическое ожидание) X*Y
  R.Mean.YY                 //  Среднее (математическое ожидание) Y*Y
  R.Disp.X                  //  Дисперсия X
  R.Disp.Y                  //  Дисперсия Y
  R.Sigma.X                 //  С.К.О. (среднеквадратичное отклонение) X
  R.Sigma.Y                 //  С.К.О. (среднеквадратичное отклонение) Y
  R.CovXY                   //  Ковариация (X,Y)
  R.Line                    //  Линейная регрессия:
  R.Line.C0, R.Line.C1      //  Коэффициенты Y = C0 + C1 * X
  R.Line.Disp               //  Дисперсия отклонений (X,Y) от линейной регрессии
  R.Line.Sigma              //  С.К.О. точек (X,Y) от линейной регрессии
  R.Line.Corr               //  Коэффициент линейной корреляции
  R.TimeStamp               //  Метка времени (используется для обновления данных)
 
Пример использования статистических сумм TStatSum2D:
 type
  {$I _typ_StdLibrary}                  // Включение типа TStatSum2D
  ...
 var
  R : TStatSum2D;                       // Стат.суммы в двумерном пространстве (X,Y):
  ...                                   // При старте программы:
  TStatSum2D_Init(R);                   // Инициализация стат.сумм
  ...                                   // В цикле опроса:
  GetData(X,Y);                         // Получение данных...
  if ShouldRefresh(R.TimeStamp,X)>0     // Если поступили новые данные
  then TStatSum2D_Add(R,X,Y);           // то добавляем их в стат.суммы.
  ...                                   // В конце серии данных:
  if EndOfSeria  then begin             // Если наступил конец серии данных,
   TStatSum2D_Calculate(R,3);           // выполняем расчет стат. характеристик
   Writeln('MeanX = ',R.Mean.X);        // Используем рассчитанные характеристики
   Writeln('MeanY = ',R.Mean.Y);        // Используем рассчитанные характеристики
   ...                                  // ...
   TStatSum2D_Reset(R);                 // Сбрасываем стат.суммы для новой серии
  end;
 

procedure TStatSum2D_Reset(var R:TStatSum2D);
Сбрасывает (обнуляет) статистические суммы, т.е. все поля кроме R.TimeStamp. Вызывается перед началом обработки новой серии данных.

procedure TStatSum2D_Init(var R:TStatSum2D);
Сбрасывает (обнуляет) все поля, включая R.TimeStamp. Вызывается в начале программы (при старте системы).

procedure TStatSum2D_Add(var R:TStatSum2D; X,Y:Real);
Добавляет в статистические суммы очередную точку (X,Y). Вызывается в процессе обработки серии данных, по мере их поступления.

procedure TStatSum2D_Calculate(var R:TStatSum2D; Mode:Integer);
Рассчитывает статистические характеристики серии данных по накопленным стат. суммам. Вызывается в конце обработки серии данных.
Режим Mode задает объем вычислений:
Mode=0 - вычислять только среднее R.Mean.X/Y.
Mode=1 - вычислять также дисперсию R.Disp/Sigma.X/Y.
Mode=2 - вычислять также ковариацию R.CovXY.
Mode=3 - вычислять также линейную регрессию R.Line.*.

Достоинством типа TStatSum2D и связанных с ним процедур является то, что можно накапливать статистические данные (стат.суммы) без необходимости сохранения самих данных, т.к. стат.суммы позволяют рассчитать основные статистические характеристики (математическое ожидание, дисперсию, С.К.О., линейную регрессию, линейную корреляцию) без обращения к массиву данных. Это позволяет выполнять статистическую обработку онлайн, по мере поступления данных, без промежуточного накопления данных в больших массивах.