BinaryForecast: Array;
BinaryForecast: System.Array;
Свойство BinaryForecast возвращает бинарный прогнозный ряд.
Для получения бинарного модельного ряда используйте свойство ISmBinaryModel.BinaryFitted.
Для получения прогнозного ряда используйте свойство ISmBinaryModel.Forecast.
Для выполнения примера добавьте ссылку на системную сборку Stat.
Sub UserProc;
Var
bm: SmBinaryModel;
can: Array[9] Of Double;
bin2: Array[5] Of Integer;
i, res: Integer;
Intercept: IIntercept;
Explanatories: ISlSeries;
Begin
bm := New SmBinaryModel.Create;
// Задаем значения объясняющего ряда
can[00] := 6.209; can[05] := 5;
can[01] := 6.385; can[06] := 6;
can[02] := 6.29; can[07] := 7;
can[03] := 6.25; can[08] := 8;
can[04] := 6.1;
// Задаем значения объясняемого ряда
bin2[00] := 1; bin2[03] := 0;
bin2[01] := 1; bin2[04] := 0;
bin2[02] := 0;
// Задаем значения первой и последней точек периода идентификации
bm.ModelPeriod.FirstPoint := 1;
bm.ModelPeriod.LastPoint := 5;
// Задаем значение последней точки прогноза
bm.Forecast.LastPoint := 9;
// Задаем тип модели
bm.BinaryDistr := BinaryDistrType.Probit;
// Задаем значение деления на группы и точность
bm.ClassificationCutOff := 0.5;
bm.Tolerance := 0.001;
// Задаем объясняемый ряд
bm.BinaryExplained := bin2;
// Задаем объясняющий ряд
Explanatories := bm.Explanatories;
Explanatories.Add.Value := can;
// Задаем способ оценки константы
Intercept := bm.ModelCoefficients.Intercept;
Intercept.Mode := InterceptMode.AutoEstimate;
// Производим расчет и выводим сообщения об ошибках
res:=bm.Execute;
// Выводим результаты расчетов
If (res = 0) Then
Debug.WriteLine(" === Сглаженный ряд ===");
For i := 0 To bm.Fitted.Length - 1 Do
Debug.WriteLine(bm.Fitted[i]);
End For;
Debug.WriteLine(" === Бинарный модельный ряд ===");
For i := 0 To bm.BinaryFitted.Length - 1 Do
Debug.WriteLine(bm.BinaryFitted[i]);
End For;
Debug.WriteLine(" === Вероятностный модельный ряд ===");
For i := 0 To bm.ProbabilityFitted.Length - 1 Do
Debug.WriteLine(bm.ProbabilityFitted[i]);
End For;
Debug.WriteLine(" === Прогнозный ряд ===");
For i := 0 To bm.Forecast.Value.Length - 1 Do
Debug.WriteLine(bm.Forecast.Value[i]);
End For;
Debug.WriteLine(" === Бинарный прогнозный ряд ===");
For i := 0 To bm.BinaryForecast.Length - 1 Do
Debug.WriteLine(bm.BinaryForecast[i]);
End For;
Debug.WriteLine(" === Вероятностный прогнозный ряд ===");
For i := 0 To bm.ProbabilityForecast.Length - 1 Do
Debug.WriteLine(bm.ProbabilityForecast[i]);
End For;
Else
Debug.WriteLine(bm.Errors);
End If;
End Sub UserProc;
После выполнения примера в окно консоли будут выведены: сглаженный ряд, бинарный модельный ряд, вероятностный модельный ряд, прогнозный ряд, бинарный прогнозный ряд и вероятностный прогнозный ряд.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Sub Main(Params: StartParams);
Var
bm: SmBinaryModel;
can: Array[9] Of Double;
bin2: Array[5] Of Integer;
i, res: Integer;
Intercept: IIntercept;
Explanatories: ISlSeries;
Fitted, BinFitted, ProbFitted, Forecast, BinForecast, ProbForecast: System.Array;
Begin
bm := New SmBinaryModel.Create();
// Задаем значения объясняющего ряда
can[00] := 6.209; can[05] := 5;
can[01] := 6.385; can[06] := 6;
can[02] := 6.29; can[07] := 7;
can[03] := 6.25; can[08] := 8;
can[04] := 6.1;
// Задаем значения объясняемого ряда
bin2[00] := 1; bin2[03] := 0;
bin2[01] := 1; bin2[04] := 0;
bin2[02] := 0;
// Задаем значения первой и последней точек периода идентификации
bm.ModelPeriod.FirstPoint := 1;
bm.ModelPeriod.LastPoint := 5;
// Задаем значение последней точки прогноза
bm.Forecast.LastPoint := 9;
// Задаем тип модели
bm.BinaryDistr := BinaryDistrType.bdtProbit;
// Задаем значение деления на группы и точность
bm.ClassificationCutOff := 0.5;
bm.Tolerance := 0.001;
// Задаем объясняемый ряд
bm.BinaryExplained := bin2;
// Задаем объясняющий ряд
Explanatories := bm.Explanatories;
Explanatories.Add().Value := can;
// Задаем способ оценки константы
Intercept := bm.ModelCoefficients.Intercept;
Intercept.Mode := InterceptMode.imAutoEstimate;
// Производим расчет и выводим сообщения об ошибках
res:=bm.Execute();
// Выводим результаты расчетов
If (res = 0) Then
System.Diagnostics.Debug.WriteLine(" === Сглаженный ряд ===");
Fitted := bm.Fitted;
For i := 0 To bm.Fitted.Length - 1 Do
System.Diagnostics.Debug.WriteLine(Fitted[i]);
End For;
System.Diagnostics.Debug.WriteLine(" === Бинарный модельный ряд ===");
BinFitted := bm.BinaryFitted;
For i := 0 To bm.BinaryFitted.Length - 1 Do
System.Diagnostics.Debug.WriteLine(BinFitted[i]);
End For;
System.Diagnostics.Debug.WriteLine(" === Вероятностный модельный ряд ===");
ProbFitted := bm.ProbabilityFitted;
For i := 0 To bm.ProbabilityFitted.Length - 1 Do
System.Diagnostics.Debug.WriteLine(ProbFitted[i]);
End For;
System.Diagnostics.Debug.WriteLine(" === Прогнозный ряд ===");
Forecast := bm.Forecast.Value;
For i := 0 To bm.Forecast.Value.Length - 1 Do
System.Diagnostics.Debug.WriteLine(Forecast[i]);
End For;
System.Diagnostics.Debug.WriteLine(" === Бинарный прогнозный ряд ===");
BinForecast := bm.BinaryForecast;
For i := 0 To bm.BinaryForecast.Length - 1 Do
System.Diagnostics.Debug.WriteLine(BinForecast[i]);
End For;
System.Diagnostics.Debug.WriteLine(" === Вероятностный прогнозный ряд ===");
ProbForecast := bm.ProbabilityForecast;
For i := 0 To bm.ProbabilityForecast.Length - 1 Do
System.Diagnostics.Debug.WriteLine(ProbForecast[i]);
End For;
Else
System.Diagnostics.Debug.WriteLine(bm.Errors);
End If;
End Sub;
См. также: