Установите предикторы модели и коэффициенты
устанавливает предикторы и коэффициенты линейной модели логистической регрессии, подбиравшей вне 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
{'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=41×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
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.043826
{'ResStatus' } {'Home Owner' } 0.11442
{'ResStatus' } {'Other' } 0.36394
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.088843
{'EmpStatus' } {'Employed' } 0.30193
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} -0.46956
⋮
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
, но используйте значение не по умолчанию для 'PEnter'
и 'PRemove'
дополнительные аргументы. Предикторы '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
{'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=30×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
{'CustAge' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.035716
{'EmpStatus' } {'Employed' } 0.35417
{'EmpStatus' } {'<missing>' } NaN
{'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
⋮
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.
creditscorecard
| autobinning
| bininfo
| predictorinfo
| modifypredictor
| plotbins
| modifybins
| bindata
| displaypoints
| formatpoints
| score
| stepwiseglm
| fitglm
| fitmodel
| probdefault
| validatemodel
| GeneralizedLinearModel
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.