ISmLRXFilter.DPrior

Fore Syntax

DPrior: ISlSerie;

Fore.NET Syntax

DPrior: Prognoz.Platform.Interop.Stat.ISlSerie;

Description

The DPrior property determines prior differences.

Comments

To specify a priory values use the ISmLRXFilter.Prior property.

Fore Example

To execute the example, add a link to the Stat system assembly.

Sub UserProc;
Var
    lrx: SmLRXFilter;
    status, i: Integer;
    can, w1, w2, w3, P, Dp: Array[15Of Double;
    SumStat: ISummaryStatistics;
Begin
    // Specify values of can, P variables
    can[00] := 6209; P[00] := 4110;
    can[01] := 6385; P[01] := 4280;
    can[02] := 6752; P[02] := 4459;
    can[03] := Double.Nan; P[03] := 4545;
    can[04] := 6495; P[04] := 4664;
    can[05] := 6907; P[05] := 4861;
    can[06] := 7349; P[06] := 5195;
    can[07] := 7213; P[07] := 5389;
    can[08] := 7061; P[08] := 5463;
    can[09] := 7180; P[09] := 5610;
    can[10] := 7132; P[10] := 5948;
    can[11] := 7137; P[11] := 6218;
    can[12] := 7473; P[12] := 6521;
    can[13] := 7722; P[13] := 6788;
    can[14] := 8088; P[14] := 7222;
    // Specify values of w1, w2,w3 variables
    w1[0] := 1; w2[0] := 15; w3[0] := 1;
    w1[1] := 2; w2[1] := 14; w3[1] := 2;
    w1[2] := 3; w2[2] := 13; w3[2] := 3;
    w1[3] := 4; w2[3] := 12; w3[3] := 4;
    w1[4] := 5; w2[4] := 11; w3[4] := 5;
    w1[5] := 6; w2[5] := 10; w3[5] := 6;
    w1[6] := 7; w2[6] := 9; w3[6] := 7;
    w1[7] := 8; w2[7] := 8; w3[7] := 8;
    w1[8] := 9; w2[8] := 7; w3[8] := 7;
    w1[9] := 10; w2[9] := 6; w3[9] := 6;
    w1[10] := 11; w2[10] := 5; w3[10] := 5;
    w1[11] := 12; w2[11] := 4; w3[11] := 4;
    w1[12] := 13; w2[12] := 3; w3[12] := 3;
    w1[13] := 14; w2[13] := 2; w3[13] := 2;
    w1[14] := 15; w2[14] := 1; w3[14] := 1;
    // Create a method
    lrx := New SmLRXFilter.Create;
    // Specify source series
    lrx.Serie.Value := can;
    // Specify prior values
    lrx.Prior.Value := P;
    // Specify weights
    lrx.w1.Value := w1;
    lrx.w2.Value := w2;
    lrx.w3.Value := w3;
    //Specify prior differences
    Dp[0] := 0;
    For i := 1 To 14 Do
        DP[i] := P[i] - P[i - 1];
    End For;
    lrx.DPrior.Value := Dp;
    // Specify missing data treatment method
    lrx.MissingData.Method := MissingDataMethod.SampleAverage;
    // Specify calculation period parameters
    lrx.ModelPeriod.FirstPoint := 1;
    lrx.ModelPeriod.LastPoint := 15;
    // Specify series smoothing degree
    lrx.SmoothingParameter := 110;
    // Run calculation and output the results to console window
    status := lrx.Execute;
    Debug.WriteLine(lrx.Errors);
    If status = 0 Then
        Debug.WriteLine(""); Debug.WriteLine("Summary statistics:");
        SumStat := lrx.SummaryStatistics;
        Debug.WriteLine(" - Durbin-Watson statistic: " + SumStat.DW.ToString);
        Debug.WriteLine(" - Sum of squared residuals: " + SumStat.SSR.ToString);
        Debug.WriteLine(""); Debug.WriteLine("Modeling series");
        Print(lrx.Fitted);
        Debug.WriteLine(""); Debug.WriteLine("Residual series");
        Print(lrx.Residuals);
    End If;
End Sub UserProc;

// Data output procedure
Sub Print(Data: Array Of Double);
Var
    i: Integer;
Begin
    Debug.Indent;
    For i := 0 To Data.Length - 1 Do
        Debug.WriteLine(i.ToString + " " + Data[i].ToString);
    End For;
    Debug.Unindent;
End Sub Print;

Example execution result: the LRX filter is set up and calculated, calculation results are output to the console window.

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore example.

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    lrx: SmLRXFilter;
    status, i: Integer;
    can, w1, w2, w3, P, Dp: Array[15Of Double;
    SumStat: ISummaryStatistics;
Begin
    // Specify values of can, P variables
    can[00] := 6209; P[00] := 4110;
    can[01] := 6385; P[01] := 4280;
    can[02] := 6752; P[02] := 4459;
    can[03] := Double.Nan; P[03] := 4545;
    can[04] := 6495; P[04] := 4664;
    can[05] := 6907; P[05] := 4861;
    can[06] := 7349; P[06] := 5195;
    can[07] := 7213; P[07] := 5389;
    can[08] := 7061; P[08] := 5463;
    can[09] := 7180; P[09] := 5610;
    can[10] := 7132; P[10] := 5948;
    can[11] := 7137; P[11] := 6218;
    can[12] := 7473; P[12] := 6521;
    can[13] := 7722; P[13] := 6788;
    can[14] := 8088; P[14] := 7222;
    // Specify values of w1, w2,w3 variables
    w1[0] := 1; w2[0] := 15; w3[0] := 1;
    w1[1] := 2; w2[1] := 14; w3[1] := 2;
    w1[2] := 3; w2[2] := 13; w3[2] := 3;
    w1[3] := 4; w2[3] := 12; w3[3] := 4;
    w1[4] := 5; w2[4] := 11; w3[4] := 5;
    w1[5] := 6; w2[5] := 10; w3[5] := 6;
    w1[6] := 7; w2[6] := 9; w3[6] := 7;
    w1[7] := 8; w2[7] := 8; w3[7] := 8;
    w1[8] := 9; w2[8] := 7; w3[8] := 7;
    w1[9] := 10; w2[9] := 6; w3[9] := 6;
    w1[10] := 11; w2[10] := 5; w3[10] := 5;
    w1[11] := 12; w2[11] := 4; w3[11] := 4;
    w1[12] := 13; w2[12] := 3; w3[12] := 3;
    w1[13] := 14; w2[13] := 2; w3[13] := 2;
    w1[14] := 15; w2[14] := 1; w3[14] := 1;
    // Create a method
    lrx := New SmLRXFilter.Create();
    // Specify source series
    lrx.Serie.Value := can;
    // Specify prior values
    lrx.Prior.Value := P;
    // Specify weights
    lrx.w1.Value := w1;
    lrx.w2.Value := w2;
    lrx.w3.Value := w3;
    //Specify prior differences
    Dp[0] := 0;
    For i := 1 To 14 Do
        DP[i] := P[i] - P[i - 1];
    End For;
    lrx.DPrior.Value := Dp;
    // Specify missing data treatment method
    lrx.MissingData.Method := MissingDataMethod.mdmSampleAverage;
    // Specify calculation period parameters
    lrx.ModelPeriod.FirstPoint := 1;
    lrx.ModelPeriod.LastPoint := 15;
    // Specify series smoothing degree
    lrx.SmoothingParameter := 110;
    // Run calculation and output the results to console window
    status := lrx.Execute();
    System.Diagnostics.Debug.WriteLine(lrx.Errors);
    If status = 0 Then
        System.Diagnostics.Debug.WriteLine(""); System.Diagnostics.Debug.WriteLine("Summary statistic:");
        SumStat := lrx.SummaryStatistics;
        System.Diagnostics.Debug.WriteLine(" - Durbin-Watson statistic: " + SumStat.DW.ToString());
        System.Diagnostics.Debug.WriteLine(" - sum of squared residuals: " + SumStat.SSR.ToString());
        System.Diagnostics.Debug.WriteLine(""); System.Diagnostics.Debug.WriteLine("Modeling series");
        Print(lrx.Fitted);
        System.Diagnostics.Debug.WriteLine(""); System.Diagnostics.Debug.WriteLine("Residual series");
        Print(lrx.Residuals);
    End If;
End Sub;

// Data output procedure
Public Shared Sub Print(Data: System.Array);
Var
    i: Integer;
Begin
    System.Diagnostics.Debug.Indent();
    For i := 0 To Data.Length - 1 Do
        System.Diagnostics.Debug.WriteLine(i.ToString() + " " + Data[i].ToString());
    End For;
    System.Diagnostics.Debug.Unindent();
End Sub Print;

See also:

ISmLRXFilter