Установите образцовые предикторы и коэффициенты
sc = setmodel(sc,ModelPredictors,ModelCoefficients)
устанавливает предикторы и коэффициенты линейной модели логистической регрессии, адаптированной вне объекта sc
= setmodel(sc
,ModelPredictors
,ModelCoefficients
)creditscorecard
, и возвращает обновленный объект creditscorecard
. Предикторы и коэффициенты используются для вычисления точек протокола результатов. Используйте setmodel
вместо fitmodel
, который соответствует линейной модели логистической регрессии, потому что setmodel
предлагает увеличенную гибкость. Например, когда модель, снабженная fitmodel
, должна быть изменена, можно использовать setmodel
. Для получения дополнительной информации смотрите Рабочие процессы для Использования setmodel.
При использовании setmodel
применяются следующие предположения:
Коэффициенты модели соответствуют линейной модели логистической регрессии (где только линейные члены включены в модель и нет никаких взаимодействий или любых других условий высшего порядка).
Модель была ранее адаптирована с помощью данных о Весе доказательства (WOE) с ответом, сопоставленным так, чтобы 'Хороший' был 1
и 'Плохо' был 0
.
fitmodel
Этот пример показывает, как использовать setmodel
, чтобы сделать модификации к модели логистической регрессии, первоначально соответствовал использованию функции fitmodel
, и затем установил новые предикторы модели логистической регрессии и коэффициенты назад в объект creditscorecard
.
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить data
(использующий набор данных от Refaat 2011).
load CreditCardData sc = creditscorecard(data,'IDVar','CustID')
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: '' VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]
Выполните автоматическое раскладывание.
sc = autobinning(sc);
Стандартный рабочий процесс должен использовать функцию fitmodel
, чтобы соответствовать модели логистической регрессии использование пошагового метода. Однако fitmodel
только поддерживает ограниченные опции относительно пошаговой процедуры. Можно использовать дополнительный выходной аргумент mdl
от fitmodel
, чтобы получить копию подходящего объекта GeneralizedLinearModel
, позже изменить.
[sc,mdl] = fitmodel(sc);
1. Adding CustIncome, Deviance = 1490.8527, Chi2Stat = 32.588614, PValue = 1.1387992e-08 2. Adding TmWBank, Deviance = 1467.1415, Chi2Stat = 23.711203, PValue = 1.1192909e-06 3. Adding AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601 4. Adding EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257 5. Adding CustAge, Deviance = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306 6. Adding ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078 7. Adding OtherCC, Deviance = 1433.707, Chi2Stat = 4.1686018, PValue = 0.041179769 Generalized linear regression model: status ~ [Linear formula with 8 terms in 7 predictors] Distribution = Binomial Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ __________ (Intercept) 0.70239 0.064001 10.975 5.0538e-28 CustAge 0.60833 0.24932 2.44 0.014687 ResStatus 1.377 0.65272 2.1097 0.034888 EmpStatus 0.88565 0.293 3.0227 0.0025055 CustIncome 0.70164 0.21844 3.2121 0.0013179 TmWBank 1.1074 0.23271 4.7589 1.9464e-06 OtherCC 1.0883 0.52912 2.0569 0.039696 AMBalance 1.045 0.32214 3.2439 0.0011792 1200 observations, 1192 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 89.7, p-value = 1.4e-16
Предположим, что вы хотите включать, или "обеспечить", предиктор 'UtilRate'
в модели логистической регрессии, даже при том, что пошаговый метод не включал его в подобранную модель. Можно добавить 'UtilRate'
в модель логистической регрессии использование объекта GeneralizedLinearModel
mdl
непосредственно.
mdl = mdl.addTerms('UtilRate')
mdl = Generalized linear regression model: status ~ [Linear formula with 9 terms in 8 predictors] Distribution = Binomial Estimated Coefficients: Estimate SE tStat pValue ________ ________ ________ __________ (Intercept) 0.70239 0.064001 10.975 5.0538e-28 CustAge 0.60843 0.24936 2.44 0.014687 ResStatus 1.3773 0.6529 2.1096 0.034896 EmpStatus 0.88556 0.29303 3.0221 0.0025103 CustIncome 0.70146 0.2186 3.2089 0.0013324 TmWBank 1.1071 0.23307 4.7503 2.0316e-06 OtherCC 1.0882 0.52918 2.0563 0.03975 AMBalance 1.0413 0.36557 2.8483 0.004395 UtilRate 0.013157 0.60864 0.021618 0.98275 1200 observations, 1191 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 89.7, p-value = 5.26e-16
Используйте setmodel
, чтобы обновить образцовые предикторы и коэффициенты модели в объекте creditscorecard
. Входной параметр ModelPredictors
явным образом не включает строку для прерывания. Однако входной параметр ModelCoefficients
действительно имеет информацию о прерывании как свой первый элемент.
ModelPredictors = mdl.PredictorNames
ModelPredictors = 8x1 cell array
{'CustAge' }
{'ResStatus' }
{'EmpStatus' }
{'CustIncome'}
{'TmWBank' }
{'OtherCC' }
{'AMBalance' }
{'UtilRate' }
ModelCoefficients = mdl.Coefficients.Estimate
ModelCoefficients = 9×1
0.7024
0.6084
1.3773
0.8856
0.7015
1.1071
1.0882
1.0413
0.0132
sc = setmodel(sc,ModelPredictors,ModelCoefficients);
Проверьте, что 'UtilRate'
является частью предикторов протокола результатов путем отображения точек протокола результатов.
pi = displaypoints(sc)
pi=33×3 table
Predictors Bin Points
____________ _______________ _________
'CustAge' '[-Inf,33)' -0.17152
'CustAge' '[33,37)' -0.15295
'CustAge' '[37,40)' -0.072892
'CustAge' '[40,46)' 0.033856
'CustAge' '[46,48)' 0.20193
'CustAge' '[48,58)' 0.21787
'CustAge' '[58,Inf]' 0.46652
'ResStatus' 'Tenant' -0.043826
'ResStatus' 'Home Owner' 0.11442
'ResStatus' 'Other' 0.36394
'EmpStatus' 'Unknown' -0.088843
'EmpStatus' 'Employed' 0.30193
'CustIncome' '[-Inf,29000)' -0.46956
'CustIncome' '[29000,33000)' -0.11715
'CustIncome' '[33000,35000)' 0.039798
'CustIncome' '[35000,40000)' 0.069073
⋮
creditscorecard
Этот пример показывает, как использовать setmodel
, чтобы соответствовать модели логистической регрессии непосредственно, не используя функцию fitmodel
, и затем задержать новые образцовые предикторы и коэффициенты в объект creditscorecard
. Этот подход дает больше гибкости относительно опций, чтобы управлять пошаговой процедурой. Этот пример соответствует модели логистической регрессии значением не по умолчанию для параметра 'PEnter'
, критерий, чтобы допустить новый предиктор в модели логистической регрессии во время пошаговой процедуры.
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить data
(использующий набор данных от Refaat 2011). Используйте аргумент 'IDVar'
, чтобы указать, что 'CustID'
содержит информацию о ID и не должен быть включен как переменная прогноза.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID')
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: '' VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]
Выполните автоматическое раскладывание.
sc = autobinning(sc);
Модель логистической регрессии должна быть подходящей с данными о Весе доказательства (WOE). Преобразование WOE является особым случаем раскладывания, поскольку данные сначала должны быть сгруппированы, и затем сгруппированная информация сопоставлена с соответствующими значениями WOE. Это преобразование сделано с помощью функции bindata
. bindata
имеет аргумент, который готовит данные к модели, соответствующей шагу. Путем установки аргумента пары "имя-значение" bindata
для 'OutputType'
к WOEModelInput'
:
Все предикторы преобразованы в значения WOE.
Вывод содержит только предикторы и ответ (никакой 'IDVar'
или любые неиспользуемые переменные).
Предикторы с бесконечным или неопределенным (NaN
) WOE значения отбрасываются.
Значения ответа сопоставлены так, чтобы "Хороший" был 1
и "Плохо" был 0
(это подразумевает, что выше немасштабированные очки соответствуют лучше, менее опасные клиенты).
bd = bindata(sc,'OutputType','WOEModelInput');
Например, первые десять строк в исходных данных для переменных 'CustAge'
, 'ResStatus'
, 'CustIncome'
и 'status'
(переменная отклика) выглядят так:
data(1:10,{'CustAge' 'ResStatus' 'CustIncome' 'status'})
ans=10×4 table
CustAge ResStatus CustIncome status
_______ __________ __________ ______
53 Tenant 50000 0
61 Home Owner 52000 0
47 Tenant 37000 0
50 Home Owner 53000 0
68 Home Owner 53000 0
65 Home Owner 48000 0
34 Home Owner 32000 1
50 Other 51000 0
50 Tenant 52000 1
49 Home Owner 53000 1
Вот то, как те же десять строк заботятся о вызове bindata
с набором аргумента пары "имя-значение" 'OutputType'
к 'WOEModelInput'
:
bd(1:10,{'CustAge' 'ResStatus' 'CustIncome' 'status'})
ans=10×4 table
CustAge ResStatus CustIncome status
________ _________ __________ ______
0.21378 -0.095564 0.47972 1
0.62245 0.019329 0.47972 1
0.18758 -0.095564 -0.026696 1
0.21378 0.019329 0.47972 1
0.62245 0.019329 0.47972 1
0.62245 0.019329 0.47972 1
-0.39568 0.019329 -0.29217 0
0.21378 0.20049 0.47972 1
0.21378 -0.095564 0.47972 0
0.21378 0.019329 0.47972 0
Соответствуйте логистической модели линейной регрессии использование пошагового метода с функцией Statistics and Machine Learning Toolbox™ stepwiseglm
, но используйте значение не по умолчанию для дополнительных аргументов 'PRemove'
и 'PEnter'
. Предикторы 'ResStatus'
и 'OtherCC'
обычно включались бы в логистическую модель линейной регрессии, использующую опции по умолчанию для пошаговой процедуры.
mdl = stepwiseglm(bd,'constant','Distribution','binomial',... 'Upper','linear','PEnter',0.025,'PRemove',0.05)
1. Adding CustIncome, Deviance = 1490.8527, Chi2Stat = 32.588614, PValue = 1.1387992e-08 2. Adding TmWBank, Deviance = 1467.1415, Chi2Stat = 23.711203, PValue = 1.1192909e-06 3. Adding AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601 4. Adding EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257 5. Adding CustAge, Deviance = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306
mdl = Generalized linear regression model: logit(status) ~ 1 + CustAge + EmpStatus + CustIncome + TmWBank + AMBalance Distribution = Binomial Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ __________ (Intercept) 0.70263 0.063759 11.02 3.0544e-28 CustAge 0.57265 0.2482 2.3072 0.021043 EmpStatus 0.88356 0.29193 3.0266 0.002473 CustIncome 0.70399 0.21781 3.2321 0.001229 TmWBank 1.1 0.23185 4.7443 2.0924e-06 AMBalance 1.0313 0.32007 3.2221 0.0012724 1200 observations, 1194 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 81.4, p-value = 4.18e-16
Используйте setmodel
, чтобы обновить образцовые предикторы и коэффициенты модели в объекте creditscorecard
. Входной параметр ModelPredictors
явным образом не включает строку для прерывания. Однако входной параметр ModelCoefficients
действительно имеет информацию о прерывании как свой первый элемент.
ModelPredictors = mdl.PredictorNames
ModelPredictors = 5x1 cell array
{'CustAge' }
{'EmpStatus' }
{'CustIncome'}
{'TmWBank' }
{'AMBalance' }
ModelCoefficients = mdl.Coefficients.Estimate
ModelCoefficients = 6×1
0.7026
0.5726
0.8836
0.7040
1.1000
1.0313
sc = setmodel(sc,ModelPredictors,ModelCoefficients);
Проверьте, что желаемые образцовые предикторы являются частью предикторов протокола результатов путем отображения точек протокола результатов.
pi = displaypoints(sc)
pi=25×3 table
Predictors Bin Points
____________ _______________ _________
'CustAge' '[-Inf,33)' -0.10354
'CustAge' '[33,37)' -0.086059
'CustAge' '[37,40)' -0.010713
'CustAge' '[40,46)' 0.089757
'CustAge' '[46,48)' 0.24794
'CustAge' '[48,58)' 0.26294
'CustAge' '[58,Inf]' 0.49697
'EmpStatus' 'Unknown' -0.035716
'EmpStatus' 'Employed' 0.35417
'CustIncome' '[-Inf,29000)' -0.41884
'CustIncome' '[29000,33000)' -0.065161
'CustIncome' '[33000,35000)' 0.092353
'CustIncome' '[35000,40000)' 0.12173
'CustIncome' '[40000,42000)' 0.13259
'CustIncome' '[42000,47000)' 0.2854
'CustIncome' '[47000,Inf]' 0.47824
⋮
sc
— Модель протокола результатов кредитаcreditscorecard
Модель протокола результатов кредита, заданная как объект creditscorecard
. Используйте creditscorecard
, чтобы создать объект creditscorecard
.
ModelPredictors
— Имена предиктора включены в подобранную модель{'PredictorName1','PredictorName2',...}
Имена предиктора включены в подобранную модель, заданную как массив ячеек из символьных векторов как {'PredictorName1','PredictorName2',...}
. Имена предиктора должны совпадать с именами переменной прогноза в объекте creditscorecard
.
Не включайте вектор символов для постоянного термина в ModelPredictors
, setmodel
внутренне обрабатывает термин '(Intercept)'
на основе количества коэффициентов модели (см. ModelCoefficients
).
Типы данных: cell
ModelCoefficients
— Соответствие коэффициентов модели образцовым предикторам[coeff1,coeff2,..]
Коэффициенты модели, соответствующие образцовым предикторам, заданным как числовой массив коэффициентов модели, [coeff1,coeff2,..]
. Если N является количеством имен предиктора, обеспеченных в ModelPredictors
, размером ModelCoefficients
может быть N или N +1. Если ModelCoefficients
имеет N +1 элемент, то первый коэффициент используется в качестве '(Intercept)'
подобранной модели. В противном случае '(Intercept)'
установлен в 0
.
Типы данных: double
sc
— Модель протокола результатов кредитаcreditscorecard
Модель протокола результатов кредита, возвращенная как обновленный объект creditscorecard
. Объект creditscorecard
содержит информацию об образцовых предикторах и коэффициентах подобранной модели. Для получения дополнительной информации об использовании объекта creditscorecard
смотрите creditscorecard
.
setmodel
При использовании setmodel
существует два возможных рабочих процесса, чтобы установить итоговые образцовые предикторы и коэффициенты модели в объект creditscorecard
.
Первый рабочий процесс:
Используйте fitmodel
, чтобы получить дополнительный выходной аргумент mdl
. Это - объект GeneralizedLinearModel
, и можно добавить и удалить условия или изменить параметры пошаговой процедуры. Только линейные члены могут быть в модели (никакие взаимодействия или любые другие условия высшего порядка).
Если объект GeneralizedLinearModel
является удовлетворительным, установите итоговые образцовые предикторы и коэффициенты модели в объект creditscorecard
с помощью входных параметров setmodel
для ModelPredictors
и ModelCoefficients
.
Альтернативный рабочий процесс:
Получите данные о Весе доказательства (WOE) с помощью bindata
. Используйте опцию 'WOEModelInput'
для аргумента пары "имя-значение" 'OutputType'
в bindata
, чтобы гарантировать что:
Данные о предикторах преобразовываются к WOE.
Только предикторы, интервалы которых имеют конечные значения WOE, включены.
Переменная отклика помещается в последний столбец.
Переменная отклика сопоставлена (“Хороший”, 1
и “Плохо” 0
).
Используйте данные из предыдущего шага, чтобы соответствовать линейной модели логистической регрессии (только линейные члены в модели, никаких взаимодействиях или любых других условиях высшего порядка). Смотрите, например, stepwiseglm
.
Если объект GeneralizedLinearModel
является удовлетворительным, установите итоговые образцовые предикторы и коэффициенты модели в объект creditscorecard
с помощью входных параметров setmodel
для ModelPredictors
и ModelCoefficients
.
[1] Андерсон, R. Инструментарий рейтинга кредитоспособности. Издательство Оксфордского университета, 2007.
[2] Refaat, M. Протоколы результатов кредитного риска: разработка и реализация Используя SAS. lulu.com, 2011.
GeneralizedLinearModel
| autobinning
| bindata
| bininfo
| creditscorecard
| displaypoints
| fitglm
| fitmodel
| formatpoints
| modifybins
| modifypredictor
| plotbins
| predictorinfo
| probdefault
| score
| stepwiseglm
| validatemodel
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.