fitConstrainedModel

Подгонка логистической регрессионной модели к данным о весе доказательств (WOE) с учетом ограничений на коэффициенты модели

Описание

пример

[sc,mdl] = fitConstrainedModel(sc) подбирает логистическую регрессионую модель к данным о весе доказательств (WOE), удовлетворяющим равенствам, неравенствам или связанным ограничениям коэффициентов модели. fitConstrainedModel сохраняет имена предикторов модели и соответствующие коэффициенты в обновленном creditscorecard sc объекта и возвращает GeneralizedLinearModel mdl объекта который содержит подобранную модель.

пример

[sc,mdl] = fitConstrainedModel(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

Чтобы вычислить счета для creditscorecard объект с ограничениями на равенство, неравенство или ограничения коэффициентов логистической регрессионой модели, используйте fitConstrainedModel. В отличие от fitmodel, fitConstrainedModel решает как задачу без ограничений, так и задачу с ограничениями. Текущий решатель, используемый для минимизации целевой функции для fitConstrainedModel является fmincon, из Optimization Toolbox™.

Этот пример имеет три основных раздела. Во-первых, fitConstrainedModel используется для решения коэффициентов в модели без ограничений. Затем, fitConstrainedModel демонстрирует, как использовать несколько типов ограничений. Наконец, fitConstrainedModel использует bootstrapping для анализа значимости, чтобы определить, какие предикторы отклонить из модели.

Создайте creditscorecard Данные объекта и интервала

load CreditCardData.mat
sc = creditscorecard(data,'IDVar','CustID');
sc = autobinning(sc);

Модель без ограничений с использованием fitConstrainedModel

Решить для коэффициентов без ограничений используя fitConstrainedModel с значениями по умолчанию для входных параметров. fitConstrainedModel использует внутренний решатель оптимизации fmincon из Optimization Toolbox™. Если вы не устанавливаете никаких ограничений, fmincon рассматривает модель как задачу оптимизации без ограничений. Параметры по умолчанию для LowerBound и UpperBound являются -Inf и +Inf, соответственно. Для ограничений равенства и неравенства по умолчанию является пустым числовым массивом.

[sc1,mdl1] = fitConstrainedModel(sc);
coeff1 = mdl1.Coefficients.Estimate;
disp(mdl1.Coefficients);
                   Estimate 
                   _________

    (Intercept)      0.70246
    CustAge           0.6057
    TmAtAddress       1.0381
    ResStatus         1.3794
    EmpStatus        0.89648
    CustIncome       0.70179
    TmWBank           1.1132
    OtherCC           1.0598
    AMBalance         1.0572
    UtilRate       -0.047597

В отличие от fitmodel что дает p-значения, при использовании fitConstrainedModelнеобходимо использовать bootstrapping, чтобы выяснить, какие предикторы отклоняются из модели, когда они удовлетворяют ограничениям. Это показано в разделе «Загрузка значения».

Использование fitmodel Сравнение результатов и калибровка модели

fitmodel подходит для логистической регрессионной модели к данным о весе доказательств (WOE), и нет никаких ограничений. Можно сравнить результаты из раздела «Без ограничений Модель с использованием fitConstrainedModel» с результатами fitmodel чтобы убедиться, что модель хорошо калибрована.

Теперь решите задачу без ограничений, используя fitmodel. Обратите внимание, что fitmodel и fitConstrainedModel использовать другие решатели. Пока fitConstrainedModel использует fmincon, fitmodel использует stepwiseglm по умолчанию. Чтобы включить все предикторы с самого начала, установите 'VariableSelection' Аргумент пары "имя-значение" из fitmodel на 'fullmodel'.

[sc2,mdl2] = fitmodel(sc,'VariableSelection','fullmodel','Display','off');
coeff2 = mdl2.Coefficients.Estimate;
disp(mdl2.Coefficients);
                   Estimate        SE         tStat        pValue  
                   _________    ________    _________    __________

    (Intercept)      0.70246    0.064039       10.969    5.3719e-28
    CustAge           0.6057     0.24934       2.4292      0.015131
    TmAtAddress       1.0381     0.94042       1.1039       0.26963
    ResStatus         1.3794      0.6526       2.1137      0.034538
    EmpStatus        0.89648     0.29339       3.0556     0.0022458
    CustIncome       0.70179     0.21866       3.2095     0.0013295
    TmWBank           1.1132     0.23346       4.7683    1.8579e-06
    OtherCC           1.0598     0.53005       1.9994      0.045568
    AMBalance         1.0572     0.36601       2.8884     0.0038718
    UtilRate       -0.047597     0.61133    -0.077858       0.93794
figure
plot(coeff1,'*')
hold on
plot(coeff2,'s')
xticklabels(mdl1.Coefficients.Properties.RowNames)
ylabel('Model Coefficients')
title('Unconstrained Model Coefficients')
legend({'Calculated by fitConstrainedModel with defaults','Calculated by fimodel'},'Location','best')
grid on

Figure contains an axes. The axes with title Unconstrained Model Coefficients contains 2 objects of type line. These objects represent Calculated by fitConstrainedModel with defaults, Calculated by fimodel.

Как показывают и таблицы, и график, коэффициенты модели совпадают. Можно быть уверенным, что эта реализация fitConstrainedModel хорошо калиброван.

Ограниченная модель

В подходе с ограничениями модели вы решаете для значений коэффициентов bi логистической модели, удовлетворяющей ограничениям. Поддерживаемые ограничения являются связанными, равенством или неравенством. Коэффициенты максимизируют определенную функцию правдоподобия по умолчанию для наблюдения i, как:

Li=p(Defaulti)yi×(1-p(Defaulti))1-yi                    

где:

  • p(Defaulti)=1    1+e-bxi

  • b=[b1b2...bK] является неизвестным коэффициентом модели

  • xi=[xi1x2...xiK] - значения предиктора при наблюдении i

  • yi - значение отклика; значение 1 представляет собой значение по умолчанию, а значение 0 представляет собой значение, отличное от значения по умолчанию

Эта формула предназначена для невзвешенных данных. Когда наблюдение i имеет вес wi, это означает, что есть wi Как много наблюдений i. Поэтому вероятность того, что дефолт происходит при наблюдении i, является продуктом вероятностей дефолта:

pi=p(Defaulti)yi*p(Defaulti)yi*...*p(Defaulti)yiwitimes=p(Defaulti)wi*yi

Точно так же вероятность ненападения для взвешенного наблюдения i равна:

pˆi=p(~Defaulti)1-yi*p(~Defaulti)1-yi*...*p(~Defaulti)1-yiwitimes=(1-p(Defaulti))wi*(1-yi)

Для взвешенных данных, если существует значение по умолчанию при заданном наблюдении i, чей вес является wi, это как если бы был wi отсчет этого наблюдения, и все они либо все по умолчанию, либо все не по умолчанию. wi может быть или не быть целым числом.

Поэтому для взвешенных данных функция правдоподобия по умолчанию для наблюдения i в первом уравнении становится

Li=p(Defaulti)wi*yi×(1-p(Defaulti))wi*(1-yi)

По предположению, все значения по умолчанию являются независимыми событиями, поэтому целевая функция является

L=L1×L2×...×LN

или, в более удобных логарифмических терминах:

log(L)=i=1Nwi*[yilog(p(Defaulti))+(1-yi)log(1-p(Defaulti))]

Применить ограничения к коэффициентам

После калибровки модели без ограничений, как описано в разделе «Модель без ограничений с использованием fitConstrainedModel», можно решить для коэффициентов модели, удовлетворяющих ограничениям. Можно выбрать нижнюю и верхнюю границы, такие что 0bi1,i=1...K, кроме точки пересечения. Кроме того, поскольку возраст клиента и доход клиента несколько коррелируются, можно также использовать дополнительные ограничения на их коэффициенты, например, |bCusAge-bCustIncome|<0.1. Коэффициенты, соответствующие предикторам 'CustAge' и 'CustIncome' в этом примере b2 и b6, соответственно.

K  = length(sc.PredictorVars);
lb = [-Inf;zeros(K,1)];
ub = [Inf;ones(K,1)];
AIneq = [0 -1 0 0 0 1 0 0 0 0;0 -1 0 0 0 -1 0 0 0 0];
bIneq = [0.05;0.05];
Options = optimoptions('fmincon','SpecifyObjectiveGradient',true,'Display','off');
[sc3,mdl] = fitConstrainedModel(sc,'AInequality',AIneq,'bInequality',bIneq,...
    'LowerBound',lb,'UpperBound',ub,'Options',Options);

figure
plot(coeff1,'*','MarkerSize',8)
hold on
plot(mdl.Coefficients.Estimate,'.','MarkerSize',12)
line(xlim,[0 0],'color','k','linestyle',':')
line(xlim,[1 1],'color','k','linestyle',':')
text(1.1,0.1,'Lower bound')
text(1.1,1.1,'Upper bound')
grid on

xticklabels(mdl.Coefficients.Properties.RowNames)
ylabel('Model Coefficients')
title('Comparison Between Unconstrained and Constrained Solutions')
legend({'Unconstrained','Constrained'},'Location','best')

Figure contains an axes. The axes with title Comparison Between Unconstrained and Constrained Solutions contains 6 objects of type line, text. These objects represent Unconstrained, Constrained.

Загрузка значения

Для задачи без ограничений стандартные формулы доступны для вычисления p-значений, которые вы используете, чтобы вычислить, какие коэффициенты значительны, а какие должны быть отклонены. Однако для ограниченной задачи стандартные формулы недоступны, и вывод формул для анализа значимости сложен. Практической альтернативой является выполнение анализа значимости посредством начальной загрузки.

В подходе bootstrapping при использовании fitConstrainedModel, вы устанавливаете аргумент имя-значение 'Bootstrap' на true и выберите значение для аргумента имя-значение 'BootstrapIter'. Загрузка означает, что NIter выбирают выборки (с заменой) из исходных наблюдений. В каждой итерации fitConstrainedModel решает ту же задачу с ограничениями, что и раздел «Ограниченная модель». fitConstrainedModel получает несколько значений (решений) для каждого коэффициента bi и вы можете построить их как boxplot или histogram. Используя boxplot или гистограмму, можно изучить медианные значения, чтобы оценить, отдалены ли коэффициенты от нуля и насколько коэффициенты отклоняются от их средств.

lb = [-Inf;zeros(K,1)];
ub = [Inf;ones(K,1)];
AIneq = [0 -1 0 0 0 1 0 0 0 0;0 1 0 0 0 -1 0 0 0 0];
bIneq = [0.05;0.05];
c0 = zeros(K,1);
NIter = 100;
Options = optimoptions('fmincon','SpecifyObjectiveGradient',true,'Display','off');
rng('default')

[sc,mdl] = fitConstrainedModel(sc,'AInequality',AIneq,'bInequality',bIneq,...
    'LowerBound',lb,'UpperBound',ub,'Bootstrap',true,'BootstrapIter',NIter,'Options',Options);

figure
boxplot(mdl.Bootstrap.Matrix,mdl.Coefficients.Properties.RowNames)
hold on
line(xlim,[0 0],'color','k','linestyle',':')
line(xlim,[1 1],'color','k','linestyle',':')
title('Bootstrapping with N = 100 Iterations')
ylabel('Model Coefficients')

Figure contains an axes. The axes with title Bootstrapping with N = 100 Iterations contains 72 objects of type line.

Твердые красные линии в прямоугольном графике указывают, что средние значения и нижний и верхние края для 25th и 75th процентили. «Усы» - это минимальное и максимальное значения, не включая выбросы. Пунктирные линии представляют нижнее и верхнее ограничения на коэффициенты. В этом примере коэффициенты не могут быть отрицательными, по конструкции.

Чтобы помочь решить, какие предикторы сохранить в модели, оцените долю раз, когда каждый коэффициент равен нулю.

Tol = 1e-6;
figure
bar(100*sum(mdl.Bootstrap.Matrix<= Tol)/NIter)
ylabel('% of Zeros')
title('Percentage of Zeros Over Bootstrap Iterations')
xticklabels(mdl.Coefficients.Properties.RowNames)
grid on

Figure contains an axes. The axes with title Percentage of Zeros Over Bootstrap Iterations contains an object of type bar.

Исходя из графика, можно отклонить 'UtilRate' поскольку это самое большое число нулевых значений. Можно также принять решение об отклонении 'TmAtAddress' поскольку он показывает пик, хотя и небольшой.

Установите соответствующие коэффициенты равными Нулями

Чтобы установить соответствующие коэффициенты равными нулю, установите их верхнюю границу равной нулю и снова решите модель, используя исходный набор данных.

ub(3) = 0;
ub(end) = 0;
[sc,mdl] = fitConstrainedModel(sc,'AInequality',AIneq,'bInequality',bIneq,'LowerBound',lb,'UpperBound',ub,'Options',Options);
Ind = (abs(mdl.Coefficients.Estimate) <= Tol);
ModelCoeff = mdl.Coefficients.Estimate(~Ind);
ModelPreds = mdl.Coefficients.Properties.RowNames(~Ind)';

figure
hold on
plot(ModelCoeff,'.','MarkerSize',12)
ylim([0.2 1.2])
ylabel('Model Coefficients')
xticklabels(ModelPreds)
title('Selected Model Coefficients After Bootstrapping')
grid on

Figure contains an axes. The axes with title Selected Model Coefficients After Bootstrapping contains an object of type line.

Установите ограниченные коэффициенты назад в creditscorecard

Теперь, когда вы решили для ограниченных коэффициентов, используйте setmodel задать коэффициенты и предикторы модели. Затем можно вычислить (не масштабированные) точки.

ModelPreds = ModelPreds(2:end);
sc = setmodel(sc,ModelPreds,ModelCoeff);
p = displaypoints(sc);

disp(p)
      Predictors               Bin              Points  
    ______________    _____________________    _________

    {'CustAge'   }    {'[-Inf,33)'        }     -0.16725
    {'CustAge'   }    {'[33,37)'          }     -0.14811
    {'CustAge'   }    {'[37,40)'          }    -0.065607
    {'CustAge'   }    {'[40,46)'          }     0.044404
    {'CustAge'   }    {'[46,48)'          }      0.21761
    {'CustAge'   }    {'[48,58)'          }      0.23404
    {'CustAge'   }    {'[58,Inf]'         }      0.49029
    {'CustAge'   }    {'<missing>'        }          NaN
    {'ResStatus' }    {'Tenant'           }    0.0044307
    {'ResStatus' }    {'Home Owner'       }      0.11932
    {'ResStatus' }    {'Other'            }      0.30048
    {'ResStatus' }    {'<missing>'        }          NaN
    {'EmpStatus' }    {'Unknown'          }    -0.077028
    {'EmpStatus' }    {'Employed'         }      0.31459
    {'EmpStatus' }    {'<missing>'        }          NaN
    {'CustIncome'}    {'[-Inf,29000)'     }     -0.43795
    {'CustIncome'}    {'[29000,33000)'    }    -0.097814
    {'CustIncome'}    {'[33000,35000)'    }     0.053667
    {'CustIncome'}    {'[35000,40000)'    }     0.081921
    {'CustIncome'}    {'[40000,42000)'    }     0.092364
    {'CustIncome'}    {'[42000,47000)'    }      0.23932
    {'CustIncome'}    {'[47000,Inf]'      }      0.42477
    {'CustIncome'}    {'<missing>'        }          NaN
    {'TmWBank'   }    {'[-Inf,12)'        }     -0.15547
    {'TmWBank'   }    {'[12,23)'          }    -0.031077
    {'TmWBank'   }    {'[23,45)'          }    -0.021091
    {'TmWBank'   }    {'[45,71)'          }      0.36703
    {'TmWBank'   }    {'[71,Inf]'         }      0.86888
    {'TmWBank'   }    {'<missing>'        }          NaN
    {'OtherCC'   }    {'No'               }     -0.16832
    {'OtherCC'   }    {'Yes'              }      0.15336
    {'OtherCC'   }    {'<missing>'        }          NaN
    {'AMBalance' }    {'[-Inf,558.88)'    }      0.34418
    {'AMBalance' }    {'[558.88,1254.28)' }    -0.012745
    {'AMBalance' }    {'[1254.28,1597.44)'}    -0.057879
    {'AMBalance' }    {'[1597.44,Inf]'    }     -0.19896
    {'AMBalance' }    {'<missing>'        }          NaN

Используя немасштабированные точки, можно следовать оставшейся части рабочего процесса моделирования карты показателей кредита, чтобы вычислить счета и вероятности дефолта и подтвердить модель.

Входные параметры

свернуть все

Модель карты показателей кредита, заданная как creditscorecard объект. Использование creditscorecard для создания creditscorecard объект.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: [sc,mdl] = fitConstrainedModel(sc,'LowerBound',2,'UpperBound',100)

Переменные предиктора для подбора кривой creditscorecard объект, заданный как разделенная разделенными запятой парами, состоящая из 'PredictorVars' и массив ячеек из векторов символов. Если вы предоставляете переменные предиктора, то функция обновляет creditscorecard свойство объекта PredictorsVars. Порядок предикторов в исходном наборе данных принудительно, независимо от порядка, в котором 'PredictorVars' предоставляется. Когда это не предусмотрено, предикторы использовали для создания creditscorecard объект (при помощи creditscorecard) используются.

Типы данных: cell

Нижняя граница, заданная как разделенная разделенными запятой парами, состоящая из 'LowerBound' и скаляр или вектор действительных чисел длины N+ 1, где N - количество коэффициентов модели в creditscorecard объект.

Типы данных: double

Верхняя граница, заданная как разделенная разделенными запятой парами, состоящая из 'UpperBound' и скаляр или вектор действительных чисел длины N+ 1, где N - количество коэффициентов модели в creditscorecard объект.

Типы данных: double

Матрица линейных ограничений неравенства, заданная как разделенная разделенными запятой парами, состоящая из 'AInequality' и настоящий M-by- N+ 1 матрица, где M количество ограничений и N - количество коэффициентов модели в creditscorecard объект.

Типы данных: double

Вектор линейных ограничений неравенства, заданный как разделенная разделенными запятой парами, состоящая из 'bInequality' и настоящий M-by- 1 вектор, где M количество ограничений.

Типы данных: double

Матрица линейных ограничений равенства, заданная как разделенная разделенными запятой парами, состоящая из 'AEquality' и настоящий M-by- N+ 1 матрица, где M количество ограничений и N - количество коэффициентов модели в creditscorecard объект.

Типы данных: double

Вектор линейных ограничений равенства, заданный как разделенная разделенными запятой парами, состоящая из 'bEquality' и настоящий M-by- 1 вектор, где M количество ограничений.

Типы данных: double

Индикатор того, что загрузка определяет точность решения, заданную как разделенная разделенными запятой парами, состоящая из 'Bootstrap' и логический со значением true или false.

Типы данных: logical

Количество итераций начальной загрузки, заданное как разделенная разделенными запятой парами, состоящая из 'BootstrapIter' и положительное целое число.

Типы данных: double

optimoptions объект, заданный как разделенная разделенными запятой парами, состоящая из 'Options' и optimoptions объект. Вы можете создать объект при помощи optimoptions из Optimization Toolbox™.

Типы данных: object

Выходные аргументы

свернуть все

Модель карты показателей кредита, возвращенная как обновленная creditscorecard объект. The creditscorecard объект содержит информацию о предикторах модели и коэффициентах, которые соответствуют данным WOE. Для получения дополнительной информации об использовании creditscorecard объект, см. creditscorecard.

Подобранная логистическая модель, переделанная как GeneralizedLinearModel объект, содержащий подобранную модель. Для получения дополнительной информации о GeneralizedLinearModel объект, см. GeneralizedLinearModel.

Примечание

Если вы задаете необязательную WeightsVar аргумент при создании creditscorecard объект, затем mdl использует взвешенные счетчики с stepwiseglm и fitglm.

The mdl структура имеет следующие поля:

  • Coefficients - таблица, в которой RowNames свойство содержит имена коэффициентов модели и имеет один столбец, 'Estimate', содержащего решение.

  • Bootstrap существует, когда 'Bootstrap' установлено в true, и имеет два поля:

    • CI содержит 95% доверительный интервал для решения.

    • Matrix а NИтер-бай- N матрица коэффициентов, где NИтер - это количество итераций и N загрузочных стропов - количество коэффициентов модели.

  • Solver имеет три поля:

    • Options дополнительная информация об алгоритме и решении.

    • ExitFlag содержит целое число, которое кодирует причину остановки решателя. Для получения дополнительной информации см. fmincon.

    • Output является структурой с дополнительной информацией о процессе оптимизации.

Подробнее о

свернуть все

Моделируйте коэффициенты

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

Первый коэффициент соответствует точке пересечения. Если вы предоставляете переменные предиктора, используя 'PredictorVars' необязательный входной параметр, затем fitConstrainedModel обновляет creditscorecard свойство объекта PredictorsVars. Порядок предикторов в исходном наборе данных принудительно, независимо от порядка, в котором 'PredictorVars' предоставляется. Когда это не предусмотрено, предикторы использовали для создания creditscorecard объект (при помощи creditscorecard) используются.

Калибровка

Модель с ограничениями сначала калибруется таким образом, что, когда она не ограничена, решение идентично, в пределах определенного допуска, решению, заданному как fitmodel, с 'fullmodel' выбор аргумента имя-значение 'VariableSelection'.

В качестве упражнения можно протестировать калибровку, оставив все параметры имя-значение fitConstrainedModel к их значениям по умолчанию. Решения идентичны в 10-6 к 10-5 допуск.

Калибровка с весами и отсутствующими данными

Если кредитная карта результатов data содержит веса наблюдений, fitConstrainedModel функция использует веса, чтобы калибровать коэффициенты модели.

Для карты показателей кредита data без отсутствующих данных и без весов, функция правдоподобия для i наблюдений

Li=p(Дефолтi)yi×(1p(Дефолтi))1yiгде p(По умолчаниюi)=1(1+ebxi)

где:

  • b = [b 1 b 2... b K] для неизвестных коэффициентов модели

  • <reservedrangesplaceholder8> <reservedrangesplaceholder7> = [<reservedrangesplaceholder6> <reservedrangesplaceholder5> 1 <reservedrangesplaceholder4> <reservedrangesplaceholder3> 2... <reservedrangesplaceholder2> <reservedrangesplaceholder1>] является значениями предсказателя при наблюдении i

  • y i является значением отклика 1 (значение по умолчанию) или значение 0.

Когда i наблюдения имеют wi веса, это означает, что наблюдений wi. Из-за независимости дефолтов между наблюдениями вероятность того, что существует дефолт при i наблюдений, является продуктом вероятностей дефолта

pi=p(Дефолтi)yip(Дефолтi)yi...p(Дефолтi)yi=p(Дефолтi)wiyi                                                      wi времена

Точно так же вероятность не-по умолчанию для взвешенных i наблюдения

p^i=p(~Дефолтi)1yip(~Дефолтi)1yi...p(~Дефолтi)1yi=(1p(Дефолтi)wi(1yi)                                                      wi времена

Для взвешенных данных, если существует значение по умолчанию в заданное наблюдение i чей вес w i, это как если бы было wi значения по умолчанию этого наблюдения, и все они либо все по умолчанию, либо все не по умолчанию. w i может быть или не быть целым числом. Поэтому функция правдоподобия для i наблюдения становится

Li=p(Defaulti)wiyi×(1p(Defaulti))wi(1yi)

Аналогично, для данных с отсутствующими наблюдениями (NaN, <undefined>, или “Missing”), модель калибруется путем сравнения случая без ограничений с результатами, полученными fitglm. Где данные содержат отсутствующие наблюдения, входная матрица WOE имеет NaN значения. The NaN значения не представляют никакой проблемы для fitglm (без ограничений), или fmincon (ограниченный). Единственный краевой случай, если все наблюдения данного предиктора отсутствуют, в этом случае этот предиктор отбрасывается из модели.

Самонастройка

Bootstrapping является методом для оценки точности решения, полученного после итерации целевой функции NВремя итер.

Когда 'Bootstrap' установлено в true, а fitConstrainedModel функция выполняет выборку с заменой значений ГОРЕ и передается в целевую функцию. В конце итерационного процесса решения сохраняются в NИтер-бай- N+ 1 матрица, где N - количество коэффициентов модели.

Интервал 95% доверия (CI) вернулся в структуру output mdl.Bootstrap содержит значения коэффициентов в 25-м и 97,5-м процентилях.

Модели

Логистическая регрессионая модель используется в creditscorecard объект.

Для модели вероятность быть «Плохой» задается ProbBad = exp(-s) / (1 + exp(-s)).

Ссылки

[1] Anderson, R. The Credit Scoring Toolkit. Oxford University Press, 2007.

[2] Refaat, M. Кредитные карты оценки риска: Разработка и реализация с использованием SAS. lulu.com, 2011.

Введенный в R2019a