TrendCycle: Array;
Свойство TrendCycle возвращает тренд-циклическую составляющую.
Sub Main;
Var
s: Array Of Double;
census1: SmCensus1;
res: Integer;
Sub Print(Data: Array Of Double);
Var
i: Integer;
CI: ICultureInfo;
Begin
CI := CultureInfo.Current;
Debug.WriteLine("---Begin---");
For i := 0 To Data.Length - 1 Do
If Double.IsNan(Data[i]) Then
Debug.WriteLine("---empty---");
Else
Debug.WriteLine(i.ToString + ", " + CI.FormatDoublePrec(Data[i], 4));
End If;
End For;
Debug.WriteLine("---End---");
End Sub Print;
Begin
//значения s
s := New Double[45];
s[0] := 670.2000183;
s[1] := 576.0680563;
s[2] := 717.6484268;
s[3] := 856.9105808;
s[4] := 885.4609516;
s[5] := 1011.846431;
s[6] := 995.4496292;
s[7] := 1064.74221;
s[8] := 1033.324656;
s[9] := 780.8584552;
s[10] := 657.5033113;
s[11] := 654.5472579;
s[12] := 678.2380139;
s[13] := 642.4128544;
s[14] := 751.9611194;
s[15] := 786.7090365;
s[16] := 884.5042879;
s[17] := 1008.308908;
s[18] := 1108.363628;
s[19] := 1072.737175;
s[20] := 1019.183752;
s[21] := 895.5601672;
s[22] := 811.0306101;
s[23] := 756.601764;
s[24] := 826.6160466;
s[25] := 762.3903317;
s[26] := 931.5707266;
s[27] := 1026.666524;
s[28] := 1114.124119;
s[29] := 1099.626392;
s[30] := 1189.16892;
s[31] := 1092.343791;
s[32] := 1087.503861;
s[33] := 971.6522721;
s[34] := 826.2502823;
s[35] := 789.6322825;
s[36] := 797.0210578;
s[37] := 770.0206;
s[38] := 832.1481674;
s[39] := 1014.565844;
s[40] := 980.4343089;
s[41] := 1195.843135;
s[42] := 1117.405835;
s[43] := 1142.834834;
s[44] := 1239.704489;
census1 := New SmCensus1.Create;
census1.Serie.Value := s;
census1.ModelPeriod.FirstPoint := 1;
census1.ModelPeriod.LastPoint := 45;
census1.SeasonalComponent.Mode := SeasonalityType.Multiplicative;
census1.CenterMovingAverage := True;
census1.SeasonalComponent.Cycle := 12;
res := census1.Execute;
If res<>0 Then
Debug.WriteLine(census1.Errors);
Else
Debug.WriteLine("=== Сглаженный ряд ===");
Print(census1.MovingAverage);
Debug.WriteLine("=== Тренд-циклическая составляющая ===");
Print(census1.TrendCycle);
End If;
End Sub Main;
После выполнения примера в окно консоли будут выведены сглаженный ряд и его тренд-циклическая составляющая:
Module execution started
=== Сглаженный ряд ===
---Begin---
---empty---
---empty---
---empty---
---empty---
---empty---
---empty---
6, 825,7149
7, 828,8142
8, 833,0083
9, 831,5129
10, 828,5480
11, 828,3607
12, 832,9181
13, 837,9559
14, 837,6999
15, 841,8899
16, 853,0661
17, 863,7153
18, 874,1500
19, 885,3315
20, 897,8143
21, 915,2963
22, 934,8620
23, 948,2344
24, 955,4062
25, 959,5900
26, 963,2536
27, 969,2708
28, 973,0754
29, 975,0859
30, 975,2290
31, 974,3138
32, 970,4891
33, 965,8423
34, 959,7677
35, 958,2063
36, 959,2252
37, 958,3389
38, 966,7844
---empty---
---empty---
---empty---
---empty---
---empty---
---empty---
---End---
=== Тренд-циклическая составляющая ===
---Begin---
0, 763,9048
1, 774,5750
2, 795,9154
3, 820,4923
4, 834,4026
5, 846,1478
6, 851,9431
7, 860,5047
8, 848,9042
9, 824,1815
10, 803,5009
11, 800,5202
12, 809,4248
13, 813,3161
14, 812,4885
15, 814,2728
16, 832,3182
17, 858,3723
18, 882,0135
19, 893,0926
20, 902,2031
21, 914,7754
22, 935,4565
23, 951,7898
24, 972,4574
25, 988,2003
26, 1 008,8381
27, 1 010,7449
28, 1 002,7079
29, 974,5718
30, 955,2228
31, 943,9073
32, 952,3098
33, 964,2410
34, 970,4487
35, 971,2482
36, 961,6106
37, 962,2072
38, 953,9561
39, 965,3801
40, 959,0861
41, 965,5184
42, 964,7477
43, 980,7473
44, 988,7471
---End---
Module execution finished
См. также: