MissingData: IMissingData;
MissingData: Prognoz.Platform.Interop.Stat.SlMissingData;
Свойство MissingData определяет параметры обработки пропусков.
Метод обработки пропусков MissingDataMethod.Casewise не может быть использован.
Добавьте ссылку на системную сборку Stat.
Sub UserProc;
Var
bpf: SmBandpassFilter;
can: Array[22] Of Double;
res, i: Integer;
Begin
bpf := New SmBandpassFilter.Create;
// Задаём значения переменной
can[00] := 6209; can[01] := 6385;
can[02] := 6752; can[03] := 6837;
can[04] := 6495; can[05] := 6907;
can[06] := 7349; can[07] := Double.Nan;
can[08] := 7180; can[09] := Double.Nan;
can[10] := 7132; can[11] := 7137;
can[12] := 7473; can[13] := 7722;
can[14] := 8088; can[15] := 8516;
can[16] := 8941; can[17] := Double.Nan;
can[18] := 9380; can[19] := 9746;
can[20] := 9907; can[21] := 10333;
// Определяем параметры периода идентификации
bpf.ModelPeriod.FirstPoint := 0;
bpf.ModelPeriod.LastPoint := 21;
// Определяем объясняемый ряд
bpf.Serie.Value := can;
// Определяем параметры обработки пропусков
bpf.MissingData.Method := MissingDataMethod.LinInterpolation;
// Задаём вес
bpf.Width := 2;
// Определяем верхнюю и нижнюю частоту отсечения
bpf.FrequencyHigh := 7;
bpf.FrequencyLow := 2;
// Выполняем расчёт метода и выводим результаты
res := bpf.Execute;
If res <> 0 Then
Debug.WriteLine(bpf.Errors);
Else
Debug.WriteLine("=== Модельный ряд ===");
Debug.Indent;
For i := 0 To bpf.Fitted.Length - 1 Do
Debug.WriteLine(bpf.Fitted[i]);
End For;
Debug.Unindent;
Debug.WriteLine("=== Остатки ===");
Debug.Indent;
For i := 0 To bpf.Residuals.Length - 1 Do
Debug.WriteLine(bpf.Residuals[i]);
End For;
Debug.Unindent;
Debug.WriteLine("=== Веса ===");
Debug.Indent;
For i := 0 To bpf.Weights.Length - 1 Do
Debug.WriteLine(bpf.Weights[i]);
End For;
Debug.Unindent;
Debug.WriteLine("=== Статистика Дарбина-Уотсона ===");
Debug.WriteLine(bpf.SummaryStatistics.DW);
Debug.WriteLine("=== Среднее остатков ===");
Debug.WriteLine(bpf.SummaryStatistics.ME);
End If;
End Sub UserProc;
После выполнения примера в окно консоли будет выведены модельный ряд, веса, остатки и статистические характеристики.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Sub Main(Params: StartParams);
Var
bpf: SmBandpassFilter;
can: Array[22] Of Double;
res, i: Integer;
Fitted, Residuals, Weights: System.Array;
Begin
bpf := New SmBandpassFilter.Create();
// Задаём значения переменной
can[00] := 6209; can[01] := 6385;
can[02] := 6752; can[03] := 6837;
can[04] := 6495; can[05] := 6907;
can[06] := 7349; can[07] := Double.Nan;
can[08] := 7180; can[09] := Double.Nan;
can[10] := 7132; can[11] := 7137;
can[12] := 7473; can[13] := 7722;
can[14] := 8088; can[15] := 8516;
can[16] := 8941; can[17] := Double.Nan;
can[18] := 9380; can[19] := 9746;
can[20] := 9907; can[21] := 10333;
// Определяем параметры периода идентификации
bpf.ModelPeriod.FirstPoint := 0;
bpf.ModelPeriod.LastPoint := 21;
// Определяем объясняемый ряд
bpf.Serie.Value := can;
// Определяем параметры обработки пропусков
bpf.MissingData.Method := MissingDataMethod.mdmLinInterpolation;
// Задаём вес
bpf.Width := 2;
// Определяем верхнюю и нижнюю частоту отсечения
bpf.FrequencyHigh := 7;
bpf.FrequencyLow := 2;
// Выполняем расчёт метода и выводим результаты
res := bpf.Execute();
If res <> 0 Then
System.Diagnostics.Debug.WriteLine(bpf.Errors);
Else
System.Diagnostics.Debug.WriteLine("=== Модельный ряд ===");
System.Diagnostics.Debug.Indent();
Fitted := bpf.Fitted;
For i := 0 To bpf.Fitted.Length - 1 Do
System.Diagnostics.Debug.WriteLine(Fitted[i]);
End For;
System.Diagnostics.Debug.Unindent();
System.Diagnostics.Debug.WriteLine("=== Остатки ===");
System.Diagnostics.Debug.Indent();
Residuals := bpf.Residuals;
For i := 0 To bpf.Residuals.Length - 1 Do
System.Diagnostics.Debug.WriteLine(Residuals[i]);
End For;
System.Diagnostics.Debug.Unindent();
System.Diagnostics.Debug.WriteLine("=== Веса ===");
System.Diagnostics.Debug.Indent();
Weights := bpf.Weights;
For i := 0 To bpf.Weights.Length - 1 Do
System.Diagnostics.Debug.WriteLine(Weights[i]);
End For;
System.Diagnostics.Debug.Unindent();
System.Diagnostics.Debug.WriteLine("=== Статистика Дарбина-Уотсона ===");
System.Diagnostics.Debug.WriteLine(bpf.SummaryStatistics.DW);
System.Diagnostics.Debug.WriteLine("=== Среднее остатков ===");
System.Diagnostics.Debug.WriteLine(bpf.SummaryStatistics.ME);
End If;
End Sub;
См. также: