BinaryDistr: BinaryDistrType;
BinaryDistr: Prognoz.Platform.Interop.Stat.BinaryDistrType;
Свойство BinaryDistr определяет модель бинарной регрессии.
По умолчанию BinaryDistr = BinaryDistrType.Logit. Используется Logit-модель, т.е. рассматривается логистическое нормальное распределение.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MODEL_SPACE», содержащего модель бинарной регрессии с идентификатором «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("BINARY_REGR").Key;
// Получаем модель, рассчитываемую методом бинарной регрессии
Model := Mb.ItemByIdNamespace("MODEL_BINARY", 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;
// Задаём начальные значения объясняющих переменных
Explanatories := BinaryRegr.Explanatories;
For i := 0 To Explanatories.Count - 1 Do
Factor := Explanatories.Item(i);
Factor.InitValue := 0.1;
End For;
// Указываем тип значений, выгружаемых в модельные и прогнозные ряды
BinaryRegr.OutputType := MsBinaryRegressionOutputType.Probability;
// Сохраняем модель
(Model As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера будут изменены следующие параметры расчета модели:
модель бинарной регрессии - Probit;
пороговое значение вероятности - «0,7»;
точность оптимизации функции правдоподобия - «0,00001»;
начальные значения всех объясняющих переменных - «0,1»;
в моделируемый и прогнозные ряды выгружаются вероятностные значения.
Необходимые требования и результат выполнения примера 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["BINARY_REGR"].Key;
// Получаем модель, рассчитываемую методом бинарной регрессии
Model := Mb.ItemByIdNamespace["MODEL_BINARY", 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;
// Задаём начальные значения объясняющих переменных
Explanatories := BinaryRegr.Explanatories;
For i := 0 To Explanatories.Count - 1 Do
Factor := Explanatories.Item[i];
Factor.InitValue := 0.1;
End For;
// Указываем тип значений, выгружаемых в модельные и прогнозные ряды
BinaryRegr.OutputType := MsBinaryRegressionOutputType.mbrotProbability;
// Сохраняем модель
(Model As IMetabaseObject).Save();
End Sub;
См. также: