ISmCensus1.RatioDifferences

Синтаксис

RatioDifferences: Array;

Описание

Свойство RatioDifferences возвращает отношение/разность. Свойство возвращает разности для аддитивной модели, а отношения для мультипликативной.

Пример

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.RatioDifferences);

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---

---empty---

---empty---

---empty---

---empty---

---empty---

---empty---

6, 120.5561

7, 128.4657

8, 124.0473

9, 93.9082

10, 79.3561

11, 79.0172

12, 81.4291

13, 76.6643

14, 89.7650

15, 93.4456

16, 103.6853

17, 116.7409

18, 126.7933

19, 121.1679

20, 113.5183

21, 97.8437

22, 86.7540

23, 79.7906

24, 86.5199

25, 79.4496

26, 96.7108

27, 105.9215

28, 114.4951

29, 112.7723

30, 121.9374

31, 112.1142

32, 112.0573

33, 100.6015

34, 86.0886

35, 82.4073

36, 83.0901

37, 80.3495

38, 86.0738

---empty---

---empty---

---empty---

---empty---

---empty---

---empty---

---End---

Module execution finished

См. также:

ISmCensus1