IMsChowTestSettings.GroupSeparator

Синтаксис Fore

GroupSeparator: Array;

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

GroupSeparator: System.Array;

Описание

Свойство GroupSeparator определяет разделение наблюдений объясняемого ряда на группы.

Комментарии

GroupSeparator является массивом, который может содержать лишь нули и единицы. Каждому элементу массива соответствует наблюдение, содержащееся в периоде идентификации объясняемого ряда. Если значение элемента массива - ноль, то наблюдение включается в первую группу, если единица - то во вторую группу.

Пример Fore

Для выполнения примера в репозитории должен присутствовать контейнер моделирования с идентификатором «CONT_MODEL», содержащий модель линейной регрессии (оценка МНК) с идентификатором «MODEL». Модель содержит более одного фактора.

Добавьте ссылки на системные сборки «Metabase», «Ms», «Stat».

Sub UserProc;
Var
    mb: IMetabase;
    ContModelDescr: IMetabaseObjectDescriptor;
    ModelObj: IMetabaseObject;
    pModel: IMsModel;
    pTransform: IMsFormulaTransform;
    pFormula: IMsFormula;
    pRegress: IMsLinearRegressionTransform;
    pTestList: IMsDiagnosticTestList;
    Test: IMsDiagnosticTest;
    TestSettings: IMsChowTestSettings;
    VarTrans: IMsFormulaTransformVariable;
    Calc: IMsMethodCalculation;
    Coord: IMsFormulaTransformCoord;
    Res: IMsDiagnosticTestResults;
    Stat: IChowTestLinRegress;
    Coef: ICoefficients;
    i: Integer;
    arr: Array Of Integer;
Begin
    mb := MetabaseClass.Active;
    ContModelDescr := mb.ItemById("CONT_MODEL");
    ModelObj := mb.ItemByIdNamespace("MODEL", ContModelDescr.Key).Edit;
    pModel := ModelObj As IMsModel;
    pTransform := pModel.Transform;
    pFormula := pTransform.FormulaItem(0);
    pRegress := pFormula.Method As IMsLinearRegressionTransform;
// получаем набор диагностических тестов
    pTestList := pRegress.DiagnosticTests;
// находим тесты Чоу
    Test := pTestList.FindByType(MsDiagnosticTestType.Chow);
    TestSettings := Test.Settings As IMsChowTestSettings;
// задаем тип теста
    TestSettings.TestType := ChowTestType.Forecast;
// задаем разделение на группы  
    Arr := New Integer[19];
    Arr[0] := 1; Arr[1] := 1; Arr[2] := 1; Arr[3] := 1; Arr[4] := 0;
    Arr[5] := 0; Arr[6] := 0; Arr[7] := 0; Arr[8] := 0; Arr[9] := 0;
    Arr[10] := 0; Arr[11] := 0; Arr[12] := 0; Arr[13] := 0; Arr[14] := 0;
    Arr[15] := 0; Arr[16] := 0; Arr[17] := 0; Arr[18] := 0;
    TestSettings.GroupSeparator := Arr;
// задаем параметры тестирования
    VarTrans := pTransform.Outputs.Item(0);
    Coord := pTransform.CreateCoord(VarTrans);
    Calc := pModel.CreateCalculation As IMsMethodCalculation;
    Calc.Period.IdentificationStartDate := DateTime.ComposeDay(19900101);
    Calc.Period.IdentificationEndDate := DateTime.ComposeDay(20071231);
    Calc.Period.ForecastStartDate := DateTime.ComposeDay(20080101);
    Calc.Period.ForecastEndDate := DateTime.ComposeDay(20101231);
// выполняем тестирование   
    Res := Test.Execute(Calc As IMsMethodCalculation, Coord);
// выводим результаты
    If Res.FTestResult Then
        Debug.WriteLine("Выборки однородные, гипотеза об отсутствии структурных изменений принимается");
    Else
        Debug.WriteLine("Выборки неоднородные, гипотеза об отсутствии структурных изменений не принимается");
    End If;
    Stat := Res.LR0;
    Coef := Stat.ModelCoefficients.Coefficients;
    Debug.WriteLine("-- Коэффициенты первой группы --");
    For i := 0 To Coef.Estimate.Length - 1 Do
        Debug.WriteLine("   Коэффициент " + i.ToString);
        Debug.Write("     Значение: ");
        Debug.WriteLine(Coef.Estimate[i]);
        Debug.Write("     Вероятность: ");
        Debug.WriteLine(Coef.Probability[i]);
    End For;
    Stat := Res.LR1;
    Coef := Stat.ModelCoefficients.Coefficients;
    Debug.WriteLine("-- Коэффициенты второй группы --");
    For i := 0 To Coef.Estimate.Length - 1 Do
        Debug.WriteLine("   Коэффициент " + i.ToString);
        Debug.Write("     Значение: ");
        Debug.WriteLine(Coef.Estimate[i]);
        Debug.Write("     Вероятность: ");
        Debug.WriteLine(Coef.Probability[i]);
    End For;
End Sub UserProc;

В примере описана настройка параметров диагностического теста Чоу:

После выполнения тестирования результаты выводятся в окно консоли.

См. также:

IMsChowTestSettings