SortedModelList: Array;
Свойство SortedModelList возвращает список индексов форм зависимостей, отсортированный в порядке ухудшения значения критерия отбора лучшей зависимости.
Sub Main;
Var
trend: SmCurveEstimation;
d0: Double;
status, i, s: Integer;
ar: Array Of Double;
Forms: IDependenceForms;
Begin
trend := New SmCurveEstimation.Create;
ar := New Double[25];
ar[00] := 4110;
ar[01] := 4280;
ar[02] := 4459;
ar[03] := 4545;
ar[04] := 4664;
ar[05] := 4861;
ar[06] := 5195;
ar[07] := 5389;
ar[08] := 5463;
ar[09] := 5610;
ar[10] := 5948;
ar[11] := 6218;
ar[12] := 6521;
ar[13] := 6788;
ar[14] := 7222;
ar[15] := 7486;
ar[16] := 7832;
ar[17] := 8153;
ar[18] := 8468;
ar[19] := 9054;
ar[20] := 9499;
ar[21] := 9866;
ar[22] := 10217;
ar[23] := 10763;
ar[24] := 10683;
trend.Explained.Value := ar;
trend.Explanatory.IsTrend := True;
trend.ForecastLastPoint := 30;
trend.SeasonalComponent.Mode := SeasonalityType.additive;
trend.SeasonalComponent.Cycle := 4;
status := trend.Execute;
If status <> 0 Then
Debug.WriteLine(trend.Errors);
Else
Forms := trend.DependenceForms;
Debug.WriteLine("== Значения критерия для зависимостей ==");
For i := 0 To Forms.Count - 1 Do
s := trend.SortedModelList[i];
d0 := Forms.Item(s).CriterionValue;
Debug.WriteLine(Forms.Item(s).DisplayName + ": " + d0.ToString);
End For;
End If;
End Sub Main;
После выполнения примера в окно консоли будет выведен список значений критериев для форм зависимостей в порядке ухудшения критерия:
Module execution started
== Значения критерия для зависимостей ==
Полиномиальная: 0.99777939507337809
Квадратичная: 0.99744569123158477
Составная: 0.99596081517381241
Уравнение роста: 0.99596081517381241
Экспонентная: 0.9959608151738123
Линейная: 0.97202282709093801
Степенная: 0.82516346172184696
Логарифмическая: 0.73700572933709863
Гиперболическая: 0.38695114911737516
Обратная: 0.3382925221009736
Логистическая: 0.11491145080756759
Module execution finished
См. также: