AsymmetryParam: Double;
Свойство AsymmetryParam определяет параметр асимметрии.
Свойство устарело.
На входе свойство задает его начальное приближение, на выходе возвращает найденную оценку для него. По умолчанию в качестве начального приближения используется ноль.
Параметр асимметрии используется только для моделей «Тип1» и «»Тип2» (GARCHModelType).
Sub Main;
Var
GARCH: ISmGARCH;
x,y1,y2: Array Of Double;
Res: Integer;
d: Double;
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
x := New Double[11];
y1 := New Double[16];
y2 := New Double[16];
//значения x, y1, y2
x[0] := 100; y1[0] := 120; y2[0] := 122;
x[1] := 111; y1[1] := 125; y2[1] := 127;
x[2] := 123; y1[2] := 124; y2[2] := 130;
x[3] := 113; y1[3] := 130; y2[3] := 135;
x[4] := 119; y1[4] := 133; y2[4] := 140;
x[5] := 121; y1[5] := 129; y2[5] := 149;
x[6] := 125; y1[6] := 139; y2[6] := 150;
x[7] := 131; y1[7] := 140; y2[7] := 155;
x[8] := 131; y1[8] := 140; y2[8] := 155;
x[9] := 131; y1[9] := 140; y2[9] := 155;
x[10] := 142; y1[10] := 129; y2[10] := 149;
y1[11] := 139; y2[11] := 150;
y1[12] := 140; y2[12] := 155;
y1[13] := 134; y2[13] := 145;
y1[14] := 140; y2[14] := 165;
y1[15] := 129; y2[15] := 149;
GARCH := New SmGARCH.Create;
GARCH.Explained.Value := x;
GARCH.Explanatories.Add.Value := y1;
GARCH.Explanatories.Add.Value := y2;
GARCH.ModelPeriod.FirstPoint := 1;
GARCH.ModelPeriod.LastPoint := 11;
GARCH.Forecast.LastPoint := 15;
GARCH.Intercept.Mode := InterceptMode.AutoEstimate;
GARCH.ModelType := GARCHModelType.TypeI;
GARCH.AutoRegressionOrder := 3;
GARCH.MovingAverageOrder := 2;
GARCH.StationarityCondition := False;
GARCH.MaxIteration := 150;
GARCH.Tolerance := 0.03;
GARCH.AsymmetryParam := 2;
res := GARCH.Execute;
If res <> 0 Then
Debug.WriteLine(GARCH.Errors);
Else
d := GARCH.LikelihoodFunctionValue;
Debug.WriteLine("Оптимальное значение функции правдоподобия: " + d.ToString);
d := GARCH.AsymmetryParam;
Debug.WriteLine("Параметр асимметрии: " + d.ToString);
Debug.WriteLine("== Сглаженный ряд ==");
Print(GARCH.Fitted);
End If;
End Sub Main;
После выполнения примера в окно консоли будет выведен оптимальное значение функции правдоподобия, оцененный параметр асимметрии и сглаженный ряд:
Module execution started
Оптимальное значение функции правдоподобия: -24.862257501360023
Параметр асимметрии: 1.9562210630771983
== Сглаженный ряд ==
---Begin---
0, 107.2166
1, 109.3737
2, 113.5574
3, 114.9921
4, 118.5938
5, 131.8673
6, 125.7974
7, 130.8439
8, 130.8439
9, 130.8439
10, 131.8673
---End---
Module execution finished
См. также: