ISmLinearRegress.GLSMatrix

Синтаксис Fore

GLSMatrix: Array;

Синтаксис Fore.NET

GLSMatrix: System.Array;

Описание

Свойство GLSMatrix определяет матрицу ковариаций для обобщенного метода наименьших квадратов.

Комментарии

Матрица ковариаций должна быть симметричной и положительно определенной.

Пример Fore

Добавьте ссылку на системную сборку Stat.

Sub UserProc;
Var
    OLS: ISmLinearRegress;
    can, fra, ger: Array[10Of Double;
    omega: Array[1010Of Double;
    res: Integer;
Begin
    OLS := New SmLinearRegress.Create;
    // задаем значения переменных
    can[0] := 6209; fra[0] := 4110; ger[0] := 3415;
    can[1] := 6385; fra[1] := 4280; ger[1] := 3673;
    can[2] := Double.Nan; fra[2] := 4459; ger[2] := 4013;
    can[3] := 6837; fra[3] := 4545; ger[3] := 4278;
    can[4] := 6495; fra[4] := 4664; ger[4] := 4577;
    can[5] := 6907; fra[5] := 4861; ger[5] := 5135;
    can[6] := 7349; fra[6] := 5195; ger[6] := 5388;
    can[7] := 7213; fra[7] := 5389; ger[7] := 5610;
    can[8] := 7061; fra[8] := 5463; ger[8] := 5787;
    can[9] := 7180; fra[9] := 5610; ger[9] := 6181;
    omega[11] := 0;
    omega[22] := 0;
    omega[55] := 0;
    // параметры периода идентификации
    OLS.ModelPeriod.FirstPoint := 1;
    OLS.ModelPeriod.LastPoint := 10;
    // выбор объясняемой переменной
    OLS.Explained.Value := can;
    // выбор регрессоров
    OLS.Explanatories.Clear;
    OLS.Explanatories.Add.Value := fra;
    OLS.Explanatories.Add.Value := ger;
    // параметры коэффициентов модели
    OLS.ModelCoefficients.Intercept.Mode := InterceptMode.AutoEstimate;
    // метод обработки пропусков
    OLS.MissingData.Method := MissingDataMethod.LinTrend;
    // признак использования весов
    OLS.UseWeights := True;
    // задание матрицы ковариаций для обобщенного МНК
    OLS.GLSMatrix := omega;
    // тип МНК
    OLS.LSType := LRLSType.GLS;
    res := OLS.Execute;
    Debug.WriteLine(OLS.Errors);
    Debug.WriteLine("Статистические характеристики");
    Debug.Indent;
    Debug.WriteLine("Статистика Фишера: " + OLS.SummaryStatistics.Fstat.ToString);
    Debug.WriteLine("Вероятность для статистики Фишера: " + OLS.SummaryStatistics.ProbFstat.ToString);
    Debug.Unindent;
End Sub UserProc;

В результате выполнения примера заданы настройки:

В окно консоли выведены статистические характеристики.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    OLS: ISmLinearRegress;
    PDLTerm: ISlPDLTerm;
    Explanatories: ISlSerie;
    can, fra, ger: Array[10Of Double;
    omega: Array[1010Of Double;
    arr: Array Of Double;
    res: Integer;
    str: String;
Begin
    OLS := New SmLinearRegress.Create();
    // задаем значения переменных
    can[0] := 6209; fra[0] := 4110; ger[0] := 3415;
    can[1] := 6385; fra[1] := 4280; ger[1] := 3673;
    can[2] := Double.Nan; fra[2] := 4459; ger[2] := 4013;
    can[3] := 6837; fra[3] := 4545; ger[3] := 4278;
    can[4] := 6495; fra[4] := 4664; ger[4] := 4577;
    can[5] := 6907; fra[5] := 4861; ger[5] := 5135;
    can[6] := 7349; fra[6] := 5195; ger[6] := 5388;
    can[7] := 7213; fra[7] := 5389; ger[7] := 5610;
    can[8] := 7061; fra[8] := 5463; ger[8] := 5787;
    can[9] := 7180; fra[9] := 5610; ger[9] := 6181;
    omega[11] := 0;
    omega[22] := 0;
    omega[55] := 0;
    // параметры периода идентификации
    OLS.ModelPeriod.FirstPoint := 1;
    OLS.ModelPeriod.LastPoint := 10;
    // выбор объясняемой переменной
    OLS.Explained.Value := can;
    // выбор регрессоров
    OLS.Explanatories.Clear();
    OLS.Explanatories.Add().Value := fra;
    OLS.Explanatories.Add().Value := ger;
    // параметры коэффициентов модели
    OLS.ModelCoefficients.Intercept.Mode := InterceptMode.imAutoEstimate;
    // метод обработки пропусков
    OLS.MissingData.Method := MissingDataMethod.mdmLinTrend;
    // признак использования весов
    OLS.UseWeights := True;
    // задание матрицы ковариаций для обобщенного МНК
    OLS.GLSMatrix := omega;
    // тип МНК
    OLS.LSType := LRLSType.lrlstGLS;
    res := OLS.Execute();
    System.Diagnostics.Debug.WriteLine(OLS.Errors);
    System.Diagnostics.Debug.WriteLine("Статистические характеристики");
    System.Diagnostics.Debug.Indent();
    System.Diagnostics.Debug.WriteLine("Статистика Фишера: " + OLS.SummaryStatistics.Fstat.ToString());
    System.Diagnostics.Debug.WriteLine("Вероятность для статистики Фишера: " + OLS.SummaryStatistics.ProbFstat.ToString());
    System.Diagnostics.Debug.Unindent();
    System.Diagnostics.Debug.WriteLine("Объясняемый ряд");
    System.Diagnostics.Debug.Indent();
End Sub;

См. также:

ISmLinearRegress | Метод наименьших квадратов