ISmSingularSpectrumAnalysis.Fitted

Fore Syntax

Fitted: Array;

Fore.NET Syntax

Fitted: System.Array;

Description

The Fitted property returns a fitted series.

Comments

Use the ISmSingularSpectrumAnalysis.Residuals property to get residual series.

Fore Example

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

Sub UserSSA;
Var
    ssa: ISmSingularSpectrumAnalysis;
    d0, d1, d2: Double;
    i, res: Integer;
    can: Array[18Of double;
    incl: Array[2Of Integer;
Begin
    ssa := New SmSingularSpectrumAnalysis.Create;
     // Set missing data treatment method
    ssa.MissingData.Method := MissingDataMethod.AnyValue;
    // Set input series values
    can[00] := Double.Nan; can[06] := 7349; can[12] := 7473;
    can[01] := 6385; can[07] := 7213; can[13] := 7722;
    can[02] := 6752; can[08] := 7061; can[14] := 8088;
    can[03] := 6837; can[09] := 7180; can[15] := 8516;
    can[04] := 6495; can[10] := 7132; can[16] := 8941;
    can[05] := 6907; can[11] := 7137; can[17] := Double.Nan;
    // Set input series
    ssa.Serie.Value := can;
    // Set window width
    ssa.Width := 4;
    // Set the number of principal components
    ssa.PCCount := 3;
    // Set principal components to be used
    incl[0] := 0;
    incl[1] := 2;
    ssa.IncludedComponents := incl;
    // Define matrix centering type
    ssa.MatrixAlignmentType := AlignmentType.SingleAlignment;
    // Set sample period
    ssa.ModelPeriod.FirstPoint := 3;
    ssa.ModelPeriod.LastPoint := 15;
    // Run calculation and output the results to console window
    res := ssa.Execute;
    If res <> 0 Then
        Debug.WriteLine(ssa.Errors);
    Else
        Debug.WriteLine("Statistics:");
        For i := 1 To ssa.PCCount + 1 Do
            Debug.WriteLine("Principal component №" + i.ToString);
            d0 := ssa.Statistics[i - 10];
            Debug.WriteLine("  - eigenvalue: " + d0.ToString);
            d0 := ssa.Statistics[i - 11];
            Debug.WriteLine("  - variance:" + d0.ToString);
            d0 := ssa.Statistics[i - 12];
            Debug.WriteLine("  - cumulative variance: " + d0.ToString);
            d0 := ssa.Statistics[i - 13];
            Debug.WriteLine("  - chi-square statistic: " + d0.ToString);
            d0 := ssa.Statistics[i - 14];
            Debug.WriteLine("  - number of degrees of freedom for chi-square statistics: " + d0.ToString);
            d0 := ssa.Statistics[i - 15];
            Debug.WriteLine("  - probability for chi-square statistics: " + d0.ToString);
        End For;
        Debug.WriteLine("Eigenvectors: ");
        For i := 1 To ssa.PCCount Do
            d0 := ssa.P[0, i - 1];
            d1 := ssa.P[1, i - 1];
            d2 := ssa.P[2, i - 1];
            Debug.WriteLine("Principal component №" +
                i.ToString + ": " + d0.ToString +
                " " + d1.ToString + " " + d2.ToString);
        End For;
        Debug.WriteLine("================================");
        Debug.WriteLine("Values of principal components: ");
        Debug.WriteLine("Principal component №1, №2, №3");
        For i := 1 To ssa.v.GetUpperBound(1) + 1 Do
            d0 := ssa.V[i - 11];
            d1 := ssa.V[i - 12];
            d2 := ssa.V[i - 13];
            Debug.WriteLine("Observation №" +
                i.ToString + ": " + d0.ToString +
                " " + d1.ToString + " " + d2.ToString);
        End For;
        d0 := ssa.V[00];
        Debug.WriteLine("================================");
        Debug.WriteLine("Total average: " + d0.ToString);
        Debug.WriteLine("================================");
        Debug.WriteLine("Fitted series");
        For i := 0 To ssa.Fitted.Length - 1 Do
            Debug.WriteLine(ssa.Fitted[i]);
        End For;
        Debug.WriteLine("================================");
        Debug.WriteLine("Residual series");
        For i := 0 To ssa.Residuals.Length - 1 Do
            Debug.WriteLine(ssa.Residuals[i]);
        End For;
    End If;
End Sub UserSSA;

Result of example execution: singular spectrum analysis is configured and performed, execution results are displayed to the console window.

Fore.NET Example

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

Public Shared Sub UserSSA();
Var
    ssa: SmSingularSpectrumAnalysis;
    d0, d1, d2: Double;
    i, res: Integer;
    can: Array[18Of double;
    incl: Array[2Of Integer;
Begin
    ssa := New SmSingularSpectrumAnalysis.Create();
     // Set missing data treatment method
    ssa.MissingData.Method := MissingDataMethod.mdmAnyValue;
    // Set input series values
    can[00] := Double.Nan; can[06] := 7349; can[12] := 7473;
    can[01] := 6385; can[07] := 7213; can[13] := 7722;
    can[02] := 6752; can[08] := 7061; can[14] := 8088;
    can[03] := 6837; can[09] := 7180; can[15] := 8516;
    can[04] := 6495; can[10] := 7132; can[16] := 8941;
    can[05] := 6907; can[11] := 7137; can[17] := Double.Nan;
    // Set input series
    ssa.Serie.Value := can;
    // Set window width
    ssa.Width := 4;
    // Set the number of principal components
    ssa.PCCount := 3;
    // Set principal components to be used
    incl[0] := 0;
    incl[1] := 2;
    ssa.IncludedComponents := incl;
    // Define matrix centering type
    ssa.MatrixAlignmentType := AlignmentType.atSingleAlignment;
    // Set sample period
    ssa.ModelPeriod.FirstPoint := 3;
    ssa.ModelPeriod.LastPoint := 15;
    // Run calculation and output the results to console window
    res := ssa.Execute();
    If res <> 0 Then
        System.Diagnostics.Debug.WriteLine(ssa.Errors);
    Else
        System.Diagnostics.Debug.WriteLine("Statistics:");
        For i := 1 To ssa.PCCount + 1 Do
            System.Diagnostics.Debug.WriteLine("Principal component №" + i.ToString());
            d0 := ssa.Statistics.GetValue(0, i - 1As double;
            System.Diagnostics.Debug.WriteLine("  - eigenvalue: " + d0.ToString());
            d0 := ssa.Statistics.GetValue(1, i - 1As double;
            System.Diagnostics.Debug.WriteLine("  - variance:" + d0.ToString());
            d0 := ssa.Statistics.GetValue(2, i - 1As double;
            System.Diagnostics.Debug.WriteLine("  - cumulative variance: " + d0.ToString());
            d0 := ssa.Statistics.GetValue(3, i - 1As double;
            System.Diagnostics.Debug.WriteLine("  - chi-square statistic: " + d0.ToString());
            d0 := ssa.Statistics.GetValue(4, i - 1As double;
            System.Diagnostics.Debug.WriteLine("  - number of degrees of freedom for chi-square statistics: " + d0.ToString());
            d0 := ssa.Statistics.GetValue(5, i - 1As double;
            System.Diagnostics.Debug.WriteLine("  - probability for chi-square statistics: " + d0.ToString());
        End For;
        System.Diagnostics.Debug.WriteLine("Eigenvectors: ");
        For i := 1 To ssa.PCCount Do
            d0 := ssa.P.GetValue(i - 10As double;
            d1 := ssa.P.GetValue(i - 11As double;
            d2 := ssa.P.GetValue(i - 12As double;
            System.Diagnostics.Debug.WriteLine("Principal component №" +
                i.ToString() + ": " + d0.ToString() +
                " " + d1.ToString() + " " + d2.ToString());
        End For;
        System.Diagnostics.Debug.WriteLine("================================");
        System.Diagnostics.Debug.WriteLine("Values of principal components: ");
        System.Diagnostics.Debug.WriteLine("Principal component №1, №2, №3");
        For i := 1 To ssa.v.GetUpperBound(1) + 1 Do
            d0 := ssa.V.GetValue(1, i - 1As double;
            d1 := ssa.V.GetValue(2, i - 1As double;
            d2 := ssa.V.GetValue(3, i - 1As double;
            System.Diagnostics.Debug.WriteLine("Observation №" +
                i.ToString() + ": " + d0.ToString() +
                " " + d1.ToString() + " " + d2.ToString());
        End For;
        d0 := ssa.V.GetValue(00As double;
        System.Diagnostics.Debug.WriteLine("================================");
        System.Diagnostics.Debug.WriteLine("Total average: " + d0.ToString());
        System.Diagnostics.Debug.WriteLine("================================");
        System.Diagnostics.Debug.WriteLine("Fitted series");
        For i := 0 To ssa.Fitted.Length - 1 Do
            System.Diagnostics.Debug.WriteLine(ssa.Fitted.GetValue(i) As double);
        End For;
        System.Diagnostics.Debug.WriteLine("================================");
        System.Diagnostics.Debug.WriteLine("Residuals series");
        For i := 0 To ssa.Residuals.Length - 1 Do
            System.Diagnostics.Debug.WriteLine(ssa.Residuals.GetValue(i) As double);
        End For;
    End If;
End Sub UserSSA;

See also:

ISmSingularSpectrumAnalysis