IMsBinaryRegressionTransform.BinaryDistr

Синтаксис Fore

BinaryDistr: BinaryDistrType;

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

BinaryDistr: Prognoz.Platform.Interop.Stat.BinaryDistrType;

Описание

Свойство BinaryDistr определяет модель бинарной регрессии.

Комментарии

По умолчанию BinaryDistr = BinaryDistrType.Logit. Используется Logit-модель, то есть рассматривается логистическое нормальное распределение.

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS», содержащего модель бинарного выбора (оценка методом максимального правдоподобия) с идентификатором «BCHOICE_MODEL».

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

Sub UserProc;
Var
    Mb: IMetabase;
    MsKey: Integer;
    Model: IMsModel;
    ModelTransform: IMsFormulaTransform;
    ModelFormula: IMsFormula;
    BinaryRegr: IMsBinaryRegressionTransform;
    Explanatories: IMsCompositeFormulaTermSetList;
    i: Integer;
    Factor: IMsCompositeFormulaTermSet;
Begin
    Mb := MetabaseClass.Active;
    // Получаем ключ контейнера моделирования
    MsKey := Mb.ItemById("MS").Key;
    // Получаем модель, рассчитываемую методом бинарной регрессии
    Model := Mb.ItemByIdNamespace("BCHOICE_MODEL", MsKey).Edit As IMsModel;
    // Получаем параметры расчёта модели
    ModelTransform := Model.Transform;
    ModelFormula := ModelTransform.FormulaItem(0);
    // Получаем параметры расчёта бинарной регрессии
    BinaryRegr := ModelFormula.Method As IMsBinaryRegressionTransform;
    // Задаём модель бинарной регрессии
    BinaryRegr.BinaryDistr := BinaryDistrType.Probit;
    // Задаём пороговое значение вероятности для отнесения объектов к группе «0» или «1»
    BinaryRegr.ClassificationCutOff := 0.7;
    // Задаём точность оптимизации функции правдоподобия
    BinaryRegr.Tolerance := 0.00001;
    // Задаём начальные значения объясняющих переменных вручную
    BinaryRegr.UseDefaultInitValues := False;
    Explanatories := BinaryRegr.Explanatories;
    For i := 0 To Explanatories.Count - 1 Do
        Factor := Explanatories.Item(i);
        Factor.InitValue := 0.1;
    End For;
    // Указываем, что значение константы будет оценено
    BinaryRegr.ConstantMode := InterceptMode.AutoEstimate;
    // Задаем начальное значение константы вручную
    BinaryRegr.ConstantInitValue := 0.4;
    // Указываем тип значений, выгружаемых в модельные и прогнозные ряды
    BinaryRegr.OutputType := MsBinaryRegressionOutputType.Probability;
    // Сохраняем модель
    (Model As IMetabaseObject).Save;
End Sub UserProc;

В результате выполнения примера будут изменены следующие параметры расчета модели:

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    MsKey: uinteger;
    Model: IMsModel;
    ModelTransform: IMsFormulaTransform;
    ModelFormula: IMsFormula;
    BinaryRegr: IMsBinaryRegressionTransform;
    Explanatories: IMsCompositeFormulaTermSetList;
    i: Integer;
    Factor: IMsCompositeFormulaTermSet;
Begin
    Mb := Params.Metabase;
    // Получаем ключ контейнера моделирования
    MsKey := Mb.ItemById["MS"].Key;
    // Получаем модель, рассчитываемую методом бинарной регрессии
    Model := Mb.ItemByIdNamespace["BCHOICE_MODEL", MsKey].Edit() As IMsModel;
    // Получаем параметры расчёта модели
    ModelTransform := Model.Transform;
    ModelFormula := ModelTransform.FormulaItem[0];
    // Получаем параметры расчёта бинарной регрессии
    BinaryRegr := ModelFormula.Method As IMsBinaryRegressionTransform;
    // Задаём модель бинарной регрессии
    BinaryRegr.BinaryDistr := BinaryDistrType.bdtProbit;
    // Задаём пороговое значение вероятности для отнесения объектов к группе «0» или «1»
    BinaryRegr.ClassificationCutOff := 0.7;
    // Задаём точность оптимизации функции правдоподобия
    BinaryRegr.Tolerance := 0.00001;
    // Задаём начальные значения объясняющих переменных вручную
    BinaryRegr.UseDefaultInitValues := False;
    Explanatories := BinaryRegr.Explanatories;
    For i := 0 To Explanatories.Count - 1 Do
        Factor := Explanatories.Item[i];
        Factor.InitValue := 0.1;
    End For;
    // Указываем, что значение константы будет оценено
    BinaryRegr.ConstantMode := InterceptMode.imAutoEstimate;
    // Задаем начальное значение константы вручную
    BinaryRegr.ConstantInitValue := 0.4;
    // Указываем тип значений, выгружаемых в модельные и прогнозные ряды
    BinaryRegr.OutputType := MsBinaryRegressionOutputType.mbrotProbability;
    // Сохраняем модель
    (Model As IMetabaseObject).Save();
End Sub;

См. также:

IMsBinaryRegressionTransform