ISmBinaryModel.CovarianceMatrix

Fore Syntax

CovarianceMatrix: Array;

Fore.NET Syntax

CovarianceMatrix: System.Array;

Description

The CovarianceMatrix property returns covariance matrix values.

Comments

It is required to use an array of the Double type.

Fore Example

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

Sub UserProc;
Var
    bm: SmBinaryModel;
    can: Array[9Of Double;
    bin2: Array[5Of Integer;
    i, j, res: Integer;
    str: String;
    Intercept: IIntercept;
    Explanatory: ISlSerie;
    OriginalValue, Value: Array;
Begin
    bm := New SmBinaryModel.Create;
    // Set values of explanatory series
    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;
    // Set explained series values
    bin2[00] := 1; bin2[03] := 0;
    bin2[01] := 1; bin2[04] := 0;
    bin2[02] := 0;
   // Set values for the first and the last points of the identification period
    bm.ModelPeriod.FirstPoint := 1;
    bm.ModelPeriod.LastPoint := 5;
    // Set value for the last forecast point
    bm.Forecast.LastPoint := 9;
    // Set model type
    bm.BinaryDistr := BinaryDistrType.Probit;
    // Set value of dividing into groups
    bm.ClassificationCutOff := 0.5;
    //Use initial values used by default
    bm.UseDefaultInitValues := False;
    // Set tolerance and maximum number of iterations
    bm.Tolerance := 0.001;
    bm.MaxIteration := 100;
    // Set optimization method
    bm.OptimizationMethod := BinaryOptimizationMethod.NewtonRaphson;
    // Set method of calculating the constant
    Intercept := bm.ModelCoefficients.Intercept;
    Intercept.Mode := InterceptMode.ManualEstimate;
    Intercept.InitValue := 5;
    // Set explained series
    bm.BinaryExplained := bin2;
    // Set explanatory series
    Explanatory := bm.Explanatories.Add;
    Explanatory.Id := "Explanatories_can";
    Explanatory.Name := "can";
    Explanatory.Value := can;
    Explanatory.Include := True;
    Explanatory.InitValue := 6.44;
    // Perform calculation and display error  messages
    res := bm.Execute;
    // Display calculation results
    If (res = 0Then
        Debug.WriteLine("Covariance matrix");
        For i := 0 To bm.CovarianceMatrix.GetUpperBound(2Do
            str := "";
            For j := 0 To bm.CovarianceMatrix.GetUpperBound(1Do
                str := str + "  " + (bm.CovarianceMatrix[j, i] As Double).ToString;
            End For;
            Debug.WriteLine(str);
        End For;
        Debug.WriteLine("Source series");
        For i := 0 To Explanatory.Value.Length - 1 Do
            Debug.WriteLine((i + 1).ToString + ". " + Explanatory.OriginalValue[i].ToString);
        End For;
    End If;
End Sub UserProc;

After executing the example the console window displays covariance matrix and source series.

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 UserProc();

Var
    bm: SmBinaryModel;
    can: Array[9Of Double;
    bin2: Array[5Of Integer;
    i, j, res: Integer;
    str: String;
    Intercept: IIntercept;
    Explanatory: ISlSerie;  
Begin
        bm := New SmBinaryModel.Create();
    // Set values of explanatory series
    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;
    // Set explained series values
    bin2[00] := 1; bin2[03] := 0;
    bin2[01] := 1; bin2[04] := 0;
    bin2[02] := 0;
   // Set values for the first and the last points of the identification period
    bm.ModelPeriod.FirstPoint := 1;
    bm.ModelPeriod.LastPoint := 5;
    // Set value for the last forecast point
    bm.Forecast.LastPoint := 9;
    // Set model type
    bm.BinaryDistr := BinaryDistrType.bdtProbit;
    // Set value of dividing into groups
    bm.ClassificationCutOff := 0.5;
    //Use initial values used by default
    bm.UseDefaultInitValues := False;
    // Set tolerance and maximum number of iterations
    bm.Tolerance := 0.001;
    bm.MaxIteration := 100;
    // Set optimization method
    bm.OptimizationMethod := BinaryOptimizationMethod.bomtNewtonRaphson;
    // Set method of calculating the constant
    Intercept := bm.ModelCoefficients.Intercept;
    Intercept.Mode := InterceptMode.imManualEstimate;
    Intercept.InitValue := 5;
    // Set explained series
    bm.BinaryExplained := bin2;
    // Set explanatory series
    Explanatory := bm.Explanatories.Add();
    Explanatory.Id := "Explanatories_can";
    Explanatory.Name := "can";
    Explanatory.Value := can;
    Explanatory.Include := True;
    Explanatory.InitValue := 6.44;
    // Perform calculation and display error  messages
    res:= bm.Execute();
    // Display calculation results
    If (res = 0Then
        System.Diagnostics.Debug.WriteLine("Covariance matrix");
        For i := 0 To bm.CovarianceMatrix.GetUpperBound(1Do
            str := "";
            For j := 0 To bm.CovarianceMatrix.GetUpperBound(1Do
                str := str + "  " + (bm.CovarianceMatrix.GetValue(j, i) As Double).ToString();
            End For;
            System.Diagnostics.Debug.WriteLine(str);
        End For;
        System.Diagnostics.Debug.WriteLine("Source series");
        For i := 0 To Explanatory.Value.Length - 1 Do
            System.Diagnostics.Debug.WriteLine((i + 1).ToString() + ". " + Explanatory.OriginalValue.GetValue(i).ToString());
        End For;
    End If;
End Sub UserProc;

See also:

ISmBinaryModel