AutoCorrelationFunction: Array;
Свойство AutoCorrelationFunction возвращает автокорреляционную функцию.
Sub Main;
Var
AC: SmAutoCorrelation;
d0,d1,d2: Double;
i, res: Integer;
s: Array Of Double;
Begin
s := New Double[25];
//значения s
s[00] := 4110;
s[01] := 4280;
s[02] := 4459;
s[03] := 4545;
s[04] := 4664;
s[05] := 4861;
s[06] := 5195;
s[07] := 5389;
s[08] := 5463;
s[09] := 5610;
s[10] := 5948;
s[11] := 6218;
s[12] := 6521;
s[13] := 6788;
s[14] := 7222;
s[15] := 7486;
s[16] := 7832;
s[17] := 8153;
s[18] := 8468;
s[19] := 9054;
s[20] := 9499;
s[21] := 9866;
s[22] := 10217;
s[23] := 10763;
s[24] := 10683;
AC := New SmAutoCorrelation.Create;
AC.Serie.Value := s;
AC.ModelPeriod.FirstPoint := 1;
AC.ModelPeriod.LastPoint := 25;
AC.DifferenceOrder := 3;
AC.LagOrder := 10;
res := AC.Execute;
If res <> 0 Then
Debug.WriteLine(AC.Errors);
Else
d0 := AC.StandardError;
Debug.WriteLine("Стандартная ошибка: " + d0.ToString);
Debug.WriteLine(" ACF, PACF");
For i := 1 To AC.AutoCorrelationFunction.Length Do
d1 := AC.AutoCorrelationFunction[i-1];
d2 := AC.PartialAutoCorrelationFunction[i-1];
Debug.WriteLine(i.ToString+", "+ d1.ToString+", "+d2.ToString);
End For;
End If;
End Sub Main;
После выполнения примера в окно консоли будут выведены результаты расчетов:
Module execution started
Стандартная ошибка: 0.42640143271122083
ACF, PACF
1, -0.38085733592993187, -0.38085733592993187
2, -0.021188501263441191, -0.19444559427907582
3, -0.1406504978990358, -0.27271969013828423
4, 0.30657420186473605, 0.16352685625620483
5, -0.074587100471571521, 0.11908571219793121
6, -0.099004686184726992, -0.044467099793853139
7, 0.073300255963341943, 0.10080613364658995
8, -0.1856887248511214, -0.28035569260864629
9, 0.24708446064478717, 0.076635166666028348
10, -0.090105509282288221, 0.076283789801394372
Module execution finished
См. также: