SeasonalAdjustment: Array;
Свойство SeasonalAdjustment возвращает сезонную корректировку.
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("=== Cезонная составляющая ===");
Print(census1.Seasonal);
Debug.WriteLine("=== Cезонная корректировка ===");
Print(census1.SeasonalAdjustment);
End If;
End Sub Main;
После выполнения примера в окно консоли будут выведены сезонная составляющая и сезонная корректировка:
Module execution started
=== Cезонная составляющая ===
---Begin---
0, 83.3553
1, 79.7032
2, 90.0515
3, 100.0018
4, 109.4385
5, 115.1229
6, 122.3267
7, 121.5546
8, 113.8807
9, 98.1561
10, 86.3634
11, 80.0453
12, 83.3553
13, 79.7032
14, 90.0515
15, 100.0018
16, 109.4385
17, 115.1229
18, 122.3267
19, 121.5546
20, 113.8807
21, 98.1561
22, 86.3634
23, 80.0453
24, 83.3553
25, 79.7032
26, 90.0515
27, 100.0018
28, 109.4385
29, 115.1229
30, 122.3267
31, 121.5546
32, 113.8807
33, 98.1561
34, 86.3634
35, 80.0453
36, 83.3553
37, 79.7032
38, 90.0515
39, 100.0018
40, 109.4385
41, 115.1229
42, 122.3267
43, 121.5546
44, 113.8807
---End---
=== Cезонная корректировка ===
---Begin---
0, 804.0278
1, 722.7664
2, 796.9308
3, 856.8953
4, 809.0948
5, 878.9271
6, 813.7635
7, 875.9371
8, 907.3747
9, 795.5273
10, 761.3219
11, 817.7211
12, 813.6709
13, 806.0062
14, 835.0342
15, 786.6950
16, 808.2206
17, 875.8543
18, 906.0688
19, 882.5143
20, 894.9574
21, 912.3837
22, 939.0908
23, 945.2170
24, 991.6775
25, 956.5365
26, 1 034.4863
27, 1 026.6482
28, 1 018.0370
29, 955.1760
30, 972.1258
31, 898.6442
32, 954.9501
33, 989.9053
34, 956.7137
35, 986.4818
36, 956.1729
37, 966.1098
38, 924.0800
39, 1 014.5478
40, 895.8772
41, 1 038.7535
42, 913.4606
43, 940.1819
44, 1 088.5993
---End---
Module execution finished
См. также: