Подтверждение качества компактной модели карты показателей кредита
подтверждает качество Stats
= validatemodel(csc
,data
)compactCreditScorecard
модель для набора данных, заданного с помощью аргумента data
.
[
задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе, и возвращает выходы Stats
,T
]
= validatemodel(___,Name,Value
)Stats
и T
.
[
задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе, и возвращает выходы Stats
,T
,hf
]
= validatemodel(___,Name,Value
)Stats
и T
и указатель на рисунок hf
на графики CAP, ROC и KS.
Вычислите статистику валидации модели для компактной модели карты показателей кредита.
Как создать compactCreditScorecard
объект, необходимо сначала разработать модель карты показателей кредита с помощью creditscorecard
объект.
Создайте creditscorecard
объект с использованием CreditCardData.mat
файл для загрузки data
(использование набора данных из Refaat 2011).
load CreditCardData.mat 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]
Выполните автоматическое раскладывание, используя опции по умолчанию. По умолчанию autobinning
использует Monotone
алгоритм.
sc = autobinning(sc);
Подгонка модели.
sc = 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
Форматируйте немасштабированные точки.
sc = formatpoints(sc, 'PointsOddsAndPDO',[500,2,50]);
Преобразуйте creditscorecard
объект в compactCreditScorecard
объект. A compactCreditScorecard
объект является облегченной версией creditscorecard
объект, который используется в целях развертывания.
csc = compactCreditScorecard(sc);
Проверьте компактную модель карты показателей кредита путем создания графиков CAP, ROC и KS. Этот пример использует data
обучения. Однако можно использовать любые данные валидации, если:
Данные имеют те же имена предикторов и типы предикторов, что и данные, используемые для создания начальной creditscorecard
объект.
Данные имеют столбец отклика с таким же именем, как и 'ResponseVar'
свойство в начальной creditscorecard
объект.
Данные имеют столбец весов (если веса использовались для обучения модели) с таким же именем, как 'WeightsVar'
свойство в начальной creditscorecard
объект.
[Stats,T] = validatemodel(csc,data,'Plot',{'CAP','ROC','KS'});
disp(Stats)
Measure Value ________________________ _______ {'Accuracy Ratio' } 0.32258 {'Area under ROC curve'} 0.66129 {'KS statistic' } 0.2246 {'KS score' } 499.62
disp(T(1:15,:))
Scores ProbDefault TrueBads FalseBads TrueGoods FalseGoods Sensitivity FalseAlarm PctObs ______ ___________ ________ _________ _________ __________ ___________ __________ __________ 369.54 0.75313 0 1 802 397 0 0.0012453 0.00083333 378.19 0.73016 1 1 802 396 0.0025189 0.0012453 0.0016667 380.28 0.72444 2 1 802 395 0.0050378 0.0012453 0.0025 391.49 0.69234 3 1 802 394 0.0075567 0.0012453 0.0033333 395.57 0.68017 4 1 802 393 0.010076 0.0012453 0.0041667 396.14 0.67846 4 2 801 393 0.010076 0.0024907 0.005 396.45 0.67752 5 2 801 392 0.012594 0.0024907 0.0058333 398.61 0.67094 6 2 801 391 0.015113 0.0024907 0.0066667 398.68 0.67072 7 2 801 390 0.017632 0.0024907 0.0075 401.33 0.66255 8 2 801 389 0.020151 0.0024907 0.0083333 402.66 0.65842 8 3 800 389 0.020151 0.003736 0.0091667 404.25 0.65346 9 3 800 388 0.02267 0.003736 0.01 404.73 0.65193 9 4 799 388 0.02267 0.0049813 0.010833 405.53 0.64941 11 4 799 386 0.027708 0.0049813 0.0125 405.7 0.64887 11 5 798 386 0.027708 0.0062267 0.013333
Вычислите статистику валидации модели для компактной модели карты показателей кредита с весами.
Как создать compactCreditScorecard
объект, необходимо сначала разработать модель карты показателей кредита с помощью creditscorecard
объект.
Используйте CreditCardData.mat
файл для загрузки данных (dataWeights
), который содержит столбец (RowWeights
) для весов (использование набора данных из Refaat 2011).
load CreditCardData.mat
Создайте creditscorecard
объект с использованием необязательного аргумента пары "имя-значение" 'WeightsVar'
.
sc = creditscorecard(dataWeights,'IDVar','CustID','WeightsVar','RowWeights')
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: 'RowWeights' VarNames: {1x12 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x12 table]
Выполните автоматическое раскладывание. По умолчанию autobinning
использует Monotone
алгоритм.
sc = autobinning(sc)
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: 'RowWeights' VarNames: {1x12 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x12 table]
Подгонка модели.
sc = fitmodel(sc);
1. Adding CustIncome, Deviance = 764.3187, Chi2Stat = 15.81927, PValue = 6.968927e-05 2. Adding TmWBank, Deviance = 751.0215, Chi2Stat = 13.29726, PValue = 0.0002657942 3. Adding AMBalance, Deviance = 743.7581, Chi2Stat = 7.263384, PValue = 0.007037455 Generalized linear regression model: logit(status) ~ 1 + CustIncome + TmWBank + AMBalance Distribution = Binomial Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ __________ (Intercept) 0.70642 0.088702 7.964 1.6653e-15 CustIncome 1.0268 0.25758 3.9862 6.7132e-05 TmWBank 1.0973 0.31294 3.5063 0.0004543 AMBalance 1.0039 0.37576 2.6717 0.0075464 1200 observations, 1196 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 36.4, p-value = 6.22e-08
Форматируйте немасштабированные точки.
sc = formatpoints(sc,'PointsOddsAndPDO',[500,2,50]);
Преобразуйте creditscorecard
объект в compactCreditScorecard
объект. A compactCreditScorecard
объект является облегченной версией creditscorecard
объект, который используется в целях развертывания.
csc = compactCreditScorecard(sc);
Проверьте компактную модель карты показателей кредита путем создания графиков CAP, ROC и KS. Когда вы используете необязательный аргумент пары "имя-значение" 'WeightsVar'
для задания весов наблюдений (выборки) в исходной creditscorecard
объект, T
таблица для validatemodel
использует статистику, суммы и совокупные суммы, которые являются взвешенными счетчиками.
Этот пример использует обучающие данные (dataWeights
). Однако можно использовать любые данные валидации, если:
Данные имеют те же имена предикторов и типы предикторов, что и данные, используемые для создания начальной creditscorecard
объект.
Данные имеют столбец отклика с таким же именем, как и 'ResponseVar'
свойство в начальной creditscorecard
объект.
Данные имеют столбец весов (если веса использовались для обучения модели) с таким же именем, как и 'WeightsVar'
свойство в начальной creditscorecard
объект.
[Stats,T] = validatemodel(csc,dataWeights,'Plot',{'CAP','ROC','KS'});
Stats
Stats=4×2 table
Measure Value
________________________ _______
{'Accuracy Ratio' } 0.28972
{'Area under ROC curve'} 0.64486
{'KS statistic' } 0.23215
{'KS score' } 505.41
T(1:10,:)
ans=10×9 table
Scores ProbDefault TrueBads FalseBads TrueGoods FalseGoods Sensitivity FalseAlarm PctObs
______ ___________ ________ _________ _________ __________ ___________ __________ _________
401.34 0.66253 1.0788 0 411.95 201.95 0.0053135 0 0.0017542
407.59 0.64289 4.8363 1.2768 410.67 198.19 0.023821 0.0030995 0.0099405
413.79 0.62292 6.9469 4.6942 407.25 196.08 0.034216 0.011395 0.018929
420.04 0.60236 18.459 9.3899 402.56 184.57 0.090918 0.022794 0.045285
437.27 0.544 18.459 10.514 401.43 184.57 0.090918 0.025523 0.047113
442.83 0.52481 18.973 12.794 399.15 184.06 0.093448 0.031057 0.051655
446.19 0.51319 22.396 14.15 397.8 180.64 0.11031 0.034349 0.059426
449.08 0.50317 24.325 14.405 397.54 178.71 0.11981 0.034968 0.062978
449.73 0.50095 28.246 18.049 393.9 174.78 0.13912 0.043813 0.075279
452.44 0.49153 31.511 23.565 388.38 171.52 0.1552 0.057204 0.089557
BinMissingData'
ОпцияВычислите статистику валидации модели и присвойте точки для недостающих данных при использовании 'BinMissingData'
опция.
Предикторы в creditscorecard
объект, который имеет отсутствующие данные в наборе обучающих данных, имеет явное интервал для <missing>
с соответствующими точками в окончательной карте результатов. Эти точки вычисляются из значения веса доказательств (WOE) для <missing>
интервал и коэффициенты логистической модели. В целях оценки эти точки присваиваются отсутствующим значениям и значениям вне области допустимого значения и после преобразования creditscorecard
объект в compactCreditScorecard
объект, можно использовать окончательный счет для вычисления статистики валидации модели с validatemodel
.
Предикторы в creditscorecard
объект без отсутствующих данных в наборе обучающих данных не имеет <missing>
интервал, поэтому никакое ГОРЕ не может быть оценено из обучающих данных. По умолчанию точки для отсутствующих и вне области допустимого заданы равными NaN
в результате чего счет NaN
при запуске score
. Для предикторов в creditscorecard
объект, не имеющий явных <missing>
интервал, используйте аргумент имя-значение 'Missing'
в formatpoints
чтобы указать, как функция обрабатывает отсутствующие данные в целях оценки. После преобразования creditscorecard
объект в compactCreditScorecard
объект, можно использовать окончательный счет для вычисления статистики валидации модели с validatemodel
.
Как создать compactCreditScorecard
объект, необходимо сначала разработать модель карты показателей кредита с помощью creditscorecard
объект.
Создайте creditscorecard
объект с использованием CreditCardData.mat
файл для загрузки dataMissing
, таблица, содержащая отсутствующие значения.
load CreditCardData.mat
head(dataMissing,5)
ans=5×11 table
CustID CustAge TmAtAddress ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance UtilRate status
______ _______ ___________ ___________ _________ __________ _______ _______ _________ ________ ______
1 53 62 <undefined> Unknown 50000 55 Yes 1055.9 0.22 0
2 61 22 Home Owner Employed 52000 25 Yes 1161.6 0.24 0
3 47 30 Tenant Employed 37000 61 No 877.23 0.29 0
4 NaN 75 Home Owner Employed 53000 20 Yes 157.37 0.08 0
5 68 56 Home Owner Employed 53000 14 Yes 561.84 0.11 0
Использование creditscorecard
с аргументом имя-значение 'BinMissingData'
установлено на true
для ввода отсутствующих числовых или категорийных данных в отдельное интервал. Применить автоматическое раскладывание.
sc = creditscorecard(dataMissing,'IDVar','CustID','BinMissingData',true); sc = autobinning(sc); disp(sc)
creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: '' VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 1 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]
Чтобы сделать любую отрицательную информацию о возрасте или доходе недействительной или «вне области значений», установите минимальное значение нуля для 'CustAge'
и 'CustIncome'
. Для подсчета баллов и расчетов вероятности по умолчанию значениям вне области допустимого задаются те же точки, что и отсутствующим значениям.
sc = modifybins(sc,'CustAge','MinValue',0); sc = modifybins(sc,'CustIncome','MinValue',0);
Отображение информации о интервале для числовых данных для 'CustAge'
который включает отсутствующие данные в отдельном интервале, маркированном <missing>
.
bi = bininfo(sc,'CustAge');
disp(bi)
Bin Good Bad Odds WOE InfoValue _____________ ____ ___ ______ ________ __________ {'[0,33)' } 69 52 1.3269 -0.42156 0.018993 {'[33,37)' } 63 45 1.4 -0.36795 0.012839 {'[37,40)' } 72 47 1.5319 -0.2779 0.0079824 {'[40,46)' } 172 89 1.9326 -0.04556 0.0004549 {'[46,48)' } 59 25 2.36 0.15424 0.0016199 {'[48,51)' } 99 41 2.4146 0.17713 0.0035449 {'[51,58)' } 157 62 2.5323 0.22469 0.0088407 {'[58,Inf]' } 93 25 3.72 0.60931 0.032198 {'<missing>'} 19 11 1.7273 -0.15787 0.00063885 {'Totals' } 803 397 2.0227 NaN 0.087112
Отображение информации о интервале для категориальных данных для 'ResStatus'
который включает отсутствующие данные в отдельном интервале, маркированном <missing>
.
bi = bininfo(sc,'ResStatus');
disp(bi)
Bin Good Bad Odds WOE InfoValue ______________ ____ ___ ______ _________ __________ {'Tenant' } 296 161 1.8385 -0.095463 0.0035249 {'Home Owner'} 352 171 2.0585 0.017549 0.00013382 {'Other' } 128 52 2.4615 0.19637 0.0055808 {'<missing>' } 27 13 2.0769 0.026469 2.3248e-05 {'Totals' } 803 397 2.0227 NaN 0.0092627
Для 'CustAge'
и 'ResStatus'
предикторы, обучающие данные содержат отсутствующие данные (NaN
s и <undefined>
значения. Для отсутствующих данных в этих предикторах процесс раскладывания оценивает значения ГОРЕ -0.15787
и 0.026469
, соответственно.
Поскольку обучающие данные не содержат отсутствующих значений для 'EmpStatus'
и 'CustIncome'
предикторы, ни один предиктор не имеет явного интервала для отсутствующих значений.
bi = bininfo(sc,'EmpStatus');
disp(bi)
Bin Good Bad Odds WOE InfoValue ____________ ____ ___ ______ ________ _________ {'Unknown' } 396 239 1.6569 -0.19947 0.021715 {'Employed'} 407 158 2.5759 0.2418 0.026323 {'Totals' } 803 397 2.0227 NaN 0.048038
bi = bininfo(sc,'CustIncome');
disp(bi)
Bin Good Bad Odds WOE InfoValue _________________ ____ ___ _______ _________ __________ {'[0,29000)' } 53 58 0.91379 -0.79457 0.06364 {'[29000,33000)'} 74 49 1.5102 -0.29217 0.0091366 {'[33000,35000)'} 68 36 1.8889 -0.06843 0.00041042 {'[35000,40000)'} 193 98 1.9694 -0.026696 0.00017359 {'[40000,42000)'} 68 34 2 -0.011271 1.0819e-05 {'[42000,47000)'} 164 66 2.4848 0.20579 0.0078175 {'[47000,Inf]' } 183 56 3.2679 0.47972 0.041657 {'Totals' } 803 397 2.0227 NaN 0.12285
Использование fitmodel
для подбора логистической регрессионной модели с использованием данных о весе доказательств (WOE). fitmodel
внутренне преобразует все переменные предиктора в значения WOE с помощью интервалов, найденных в процессе автоматического раскладывания. fitmodel
затем подходит для логистической регрессионной модели с помощью пошагового метода (по умолчанию). Для предикторов, которые имеют отсутствующие данные, существует явное <missing>
интервал с соответствующим значением WOE, вычисленным из данных. Когда вы используете fitmodel
функция применяет соответствующее значение ГОРЕ для <missing>
интервал при выполнении преобразования ГОРЕ.
[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 = 1442.8477, Chi2Stat = 4.4974731, PValue = 0.033944979 6. Adding ResStatus, Deviance = 1438.9783, Chi2Stat = 3.86941, PValue = 0.049173805 7. Adding OtherCC, Deviance = 1434.9751, Chi2Stat = 4.0031966, PValue = 0.045414057 Generalized linear regression model: status ~ [Linear formula with 8 terms in 7 predictors] Distribution = Binomial Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ __________ (Intercept) 0.70229 0.063959 10.98 4.7498e-28 CustAge 0.57421 0.25708 2.2335 0.025513 ResStatus 1.3629 0.66952 2.0356 0.04179 EmpStatus 0.88373 0.2929 3.0172 0.002551 CustIncome 0.73535 0.2159 3.406 0.00065929 TmWBank 1.1065 0.23267 4.7556 1.9783e-06 OtherCC 1.0648 0.52826 2.0156 0.043841 AMBalance 1.0446 0.32197 3.2443 0.0011775 1200 observations, 1192 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 88.5, p-value = 2.55e-16
Масштабируйте точки карты показателей методом «баллы, шансы и баллы к удвоению шансов (PDO)» с помощью 'PointsOddsAndPDO'
аргумент formatpoints
. Предположим, что вы хотите, чтобы счет 500 точек имел шансы 2 (вдвое больше вероятности быть хорошим, чем быть плохим) и что шансы удваиваются каждые 50 точки (так что 550 точки будут иметь шансы 4).
Отобразите карту показателей, показывающую масштабированные точки для предикторов, сохраненных в модели аппроксимации.
sc = formatpoints(sc,'PointsOddsAndPDO',[500 2 50]);
PointsInfo = displaypoints(sc)
PointsInfo=38×3 table
Predictors Bin Points
_____________ ______________ ______
{'CustAge' } {'[0,33)' } 54.062
{'CustAge' } {'[33,37)' } 56.282
{'CustAge' } {'[37,40)' } 60.012
{'CustAge' } {'[40,46)' } 69.636
{'CustAge' } {'[46,48)' } 77.912
{'CustAge' } {'[48,51)' } 78.86
{'CustAge' } {'[51,58)' } 80.83
{'CustAge' } {'[58,Inf]' } 96.76
{'CustAge' } {'<missing>' } 64.984
{'ResStatus'} {'Tenant' } 62.138
{'ResStatus'} {'Home Owner'} 73.248
{'ResStatus'} {'Other' } 90.828
{'ResStatus'} {'<missing>' } 74.125
{'EmpStatus'} {'Unknown' } 58.807
{'EmpStatus'} {'Employed' } 86.937
{'EmpStatus'} {'<missing>' } NaN
⋮
Заметьте, что точки для <missing>
интервал для 'CustAge'
и 'ResStatus'
показаны явно (как 64.9836
и 74.1250
, соответственно). Функция вычисляет эти точки из значения ГОРЕ для <missing>
интервал и коэффициенты логистической модели.
Для предикторов, которые не имеют отсутствующих данных в наборе обучающих данных, нет явных <missing>
интервал во время обучения модели. По умолчанию displaypoints
сообщает о точках следующим NaN
для отсутствующих данных, что приводит к счету NaN
когда вы используете score
. Для этих предикторов используйте аргумент пары "имя-значение" 'Missing'
в formatpoints
чтобы указать, как отсутствующие данные должны обрабатываться в целях оценки.
Использование compactCreditScorecard
для преобразования creditscorecard
объект в compactCreditScorecard
объект. A compactCreditScorecard
объект является облегченной версией creditscorecard
объект, который используется в целях развертывания.
csc = compactCreditScorecard(sc);
Для целей рисунка берите несколько строк из исходных данных в качестве тестовых данных и вводите некоторые недостающие данные. Также введите некоторые недопустимые или вне области допустимого значения. Для числовых данных значения ниже минимума (или выше максимума) считаются недопустимыми, например, отрицательное значение для возраста (напомним, что на предыдущем шаге вы задаете 'MinValue'
на 0
для 'CustAge'
и 'CustIncome'
). Для категориальных данных недопустимыми значениями являются категории, явно не включенные в карту показателей, например, статус жилого объекта, ранее не сопоставленный с категориями карт показателей, такими как «Дом» или бессмысленная строка, такая как «abc123».
Этот пример использует очень небольшой набор данных валидации только для иллюстрации оценки строк с отсутствующими и вне области значений и связи между оценкой и валидацией модели.
tdata = dataMissing(11:200,mdl.PredictorNames); % Keep only the predictors retained in the model tdata.status = dataMissing.status(11:200); % Copy the response variable value, needed for validation purposes % Set some missing values tdata.CustAge(1) = NaN; tdata.ResStatus(2) = '<undefined>'; tdata.EmpStatus(3) = '<undefined>'; tdata.CustIncome(4) = NaN; % Set some invalid values tdata.CustAge(5) = -100; tdata.ResStatus(6) = 'House'; tdata.EmpStatus(7) = 'Freelancer'; tdata.CustIncome(8) = -1; disp(tdata(1:10,:))
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance status _______ ___________ ___________ __________ _______ _______ _________ ______ NaN Tenant Unknown 34000 44 Yes 119.8 1 48 <undefined> Unknown 44000 14 Yes 403.62 0 65 Home Owner <undefined> 48000 6 No 111.88 0 44 Other Unknown NaN 35 No 436.41 0 -100 Other Employed 46000 16 Yes 162.21 0 33 House Employed 36000 36 Yes 845.02 0 39 Tenant Freelancer 34000 40 Yes 756.26 1 24 Home Owner Employed -1 19 Yes 449.61 0 NaN Home Owner Employed 51000 11 Yes 519.46 1 52 Other Unknown 42000 12 Yes 1269.2 0
Использование validatemodel
для compactCreditScorecard
объект с набором данных валидации (tdata
).
[ValStats,ValTable] = validatemodel(csc,tdata,'Plot',{'CAP','ROC','KS'});
disp(ValStats)
Measure Value ________________________ _______ {'Accuracy Ratio' } 0.35376 {'Area under ROC curve'} 0.67688 {'KS statistic' } 0.32462 {'KS score' } 493.35
disp(ValTable(1:10,:))
Scores ProbDefault TrueBads FalseBads TrueGoods FalseGoods Sensitivity FalseAlarm PctObs ______ ___________ ________ _________ _________ __________ ___________ __________ _________ 597.33 NaN 0 1 135 54 0 0.0073529 0.0052632 598.54 NaN 0 2 134 54 0 0.014706 0.010526 601.18 NaN 1 2 134 53 0.018519 0.014706 0.015789 637.3 NaN 1 3 133 53 0.018519 0.022059 0.021053 NaN 0.69421 2 3 133 52 0.037037 0.022059 0.026316 NaN 0.65394 2 4 132 52 0.037037 0.029412 0.031579 NaN 0.64441 2 5 131 52 0.037037 0.036765 0.036842 NaN 0.62799 3 5 131 51 0.055556 0.036765 0.042105 390.86 0.58964 4 5 131 50 0.074074 0.036765 0.047368 404.09 0.57902 6 5 131 48 0.11111 0.036765 0.057895
csc
- Компактная модель карты показателей кредитаcompactCreditScorecard
объектКомпактная модель карты показателей кредита, заданная как compactCreditScorecard
объект.
Как создать compactCreditScorecard
объект, использование compactCreditScorecard
или compact
от Financial Toolbox™.
data
- Данные валидацииДанные валидации, заданные как MATLAB® таблица, где каждая строка таблицы соответствует отдельным наблюдениям. The data
должны содержать столбцы для каждого из предикторов в модели карты показателей кредита. Столбцы данных могут быть любым из следующих типов данных:
Числовой
Логичный
Массив ячеек из символьных векторов
Символьный массив
Категоричный
Строка
Строковые массивы
В сложении таблица должна содержать двоичную переменную отклика, а имя этого столбца должно совпадать с именем ResponseVar
свойство в compactCreditScorecard
объект. (The ResponseVar
свойство в compactCreditScorecard
копируется из ResponseVar
свойство исходного creditscorecard
объект.)
Примечание
Если другой набор данных валидации предоставляется с помощью дополнительного data
входы, веса наблюдений для данных валидации должны быть включены в столбец, имя которого совпадает WeightsVar
из исходного creditscorecard
объект, в противном случае для данных валидации используются модуля. Для получения дополнительной информации см. Использование валидатемодели с весами.
Типы данных: table
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
csc = validatemodel(csc,data,'Plot','CAP')
'Plot'
- Тип графика'None'
(по умолчанию) | символьный вектор со значениями 'None'
, 'CAP'
, 'ROC'
, 'KS'
| массив ячеек векторов символов со значениями 'None'
, 'CAP'
, 'ROC'
, 'KS'
Тип графика, заданный как разделенная разделенными запятой парами, состоящая из 'Plot'
и вектор символов с одним из следующих значений:
'None'
- График не отображается.
'CAP'
- Профиль кумулятивной точности. Строит графики части заемщиков до оценки «s» против фракции дефолтов до оценки «s» ('PctObs'
против 'Sensitivity'
столбцы T
необязательный выходной аргумент). Для получения дополнительной информации смотрите Профиль кумулятивной точности (CAP).
'ROC'
- Рабочая характеристика приемника. Строит графики части не-дефолтов до оценки «s» против части дефолтов до оценки «s» ('FalseAlarm'
против 'Sensitivity'
столбцы T
необязательный выходной аргумент). Для получения дополнительной информации смотрите Операционная характеристика приемника (ROC).
'KS'
- Колмогоров-Смирнов. Строит графики каждый счет «с» против части дефолтов до «с», а также против части недефолтеров до «с» ('Scores'
против обоих 'Sensitivity'
и 'FalseAlarm'
столбцы необязательного выходного аргумента T
). Для получения дополнительной информации см. статистику Колмогорова-Смирнова (КС).
Совет
Для опции статистики Колмогоров-Смирнов можно ввести любой 'KS'
или 'K-S'
.
Типы данных: char
| cell
Stats
- Меры валидацииМеры валидации, возвращенные как 4
-by- 2
таблица. Первый столбец 'Measure'
, содержит имена следующих мер:
Коэффициент точности (AR)
Площадь под кривой ROC (AUROC)
Статистика KS
KS- счета
Второй столбец, 'Value'
, содержит значения, соответствующие этим измерениям.
T
- Данные статистики валидацииДанные статистики валидации, возвращенные как N
-by- 9
таблица статистических данных валидации, отсортированная по счетам от самых рискованных до самых безопасных. N
равен общему количеству уникальных счетов, то есть счетов без дубликатов.
Таблица T
содержит следующие девять столбцов в этом порядке:
'Scores'
- Счета отсортированы от самых рискованных до самых безопасных. Данные в этой строке соответствуют всем наблюдениям до и включая счет в этой строке.
'ProbDefault'
- Вероятность дефолта для наблюдений в этой строке. Для децилов сообщается средняя вероятность дефолта для всех наблюдений в данном дециле.
'TrueBads'
- Совокупное количество «бадсов» до соответствующего счета включительно.
'FalseBads'
- Совокупное количество «товаров» до соответствующего счета включительно.
'TrueGoods'
- Совокупное число «товаров» выше соответствующего счета.
'FalseGoods'
- Совокупное число «бадсов» выше соответствующего счета.
'Sensitivity'
- Доля дефолтов (или совокупное число «бадсов», разделенных на общее число «бадов»). Это распределение «бадсов» до соответствующего счета включительно.
'FalseAlarm'
- Доля недефейтеров (или совокупное число «товаров», разделенных на общее число «товаров»). Это распределение «товаров» до соответствующего счета включительно.
'PctObs'
- Доля заемщиков, или совокупное количество наблюдений, разделенных на общее количество наблюдений до соответствующего счета включительно.
Примечание
При создании creditscorecard
объект с creditscorecard
, если необязательный аргумент пары "имя-значение" WeightsVar
использовался для задания весов наблюдений (выборки), затем T
таблица использует статистику, суммы и совокупные суммы, которые являются взвешенными счетчиками.
hf
- Указатель на нанесенные на график мерыУказатель на рисунок для нанесенных измерений, возвращенный как указатель на фигуру или массив указателей. Когда Plot
установлено в 'None'
, hf
- пустой массив.
ПРОПИСНАЯ БУКВА, как правило, является вогнутой кривой и также известен как кривая Джини, кривая Степени или кривая Лоренца.
Счета заданных наблюдений сортируются от самых рискованных до самых безопасных. Для заданной дроби M
(от 0% до 100%) от общего числа заемщиков, высота кривой ПРОПИСНАЯ БУКВА является долей дефолтов, счетов которых меньше или равны максимальному счету дроби M
. Эта часть дефолтов также известна как «Чувствительность»..
Область под кривой ПРОПИСНАЯ БУКВА, известная как AUCAP, затем сравнивается с областью идеальной или «идеальной» модели, что приводит к определению итогового индекса, известного как коэффициент точности (AR) или коэффициент Джини:
где A R - область между кривой ПРОПИСНОЙ БУКВОЙ и диагональю, и A P - область между совершенной моделью и диагональю. Это представляет собой «случайную» модель, где счета присваиваются случайным образом, и, следовательно, доля дефолтов и недефавторов не зависит от счета. Идеальной моделью является модель, для которой всем дефолтерам присваиваются самые низкие счета, и поэтому прекрасно различается дефолтерам и недефейтерам. Таким образом, чем ближе к AR unity, тем лучше модель скоринга.
Чтобы найти приемник кривую рабочей характеристики (ROC), вычисляется доля дефолтов до заданных счетов «s» или «Sensitivity».
Эта доля известна как истинная положительная скорость (TPR). Кроме того, вычисляется доля недефейтеров до «s», или «False Alarm Rate». Эта доля также известна как ложноположительная частота (FPR). Кривая ROC является графиком «Чувствительности» по сравнению с «Частотой ложных предупреждений». Вычисление кривой ROC подобно вычислению эквивалента матрицы неточностей на каждом уровне счета.
Подобно CAP, ROC имеет сводную статистическую величину, известную как площадь под кривой ROC (AUROC). Чем ближе к единству, тем лучше модель скоринга. Коэффициент точности (AR) связан с площадью под кривой по следующей формуле:
График Колмогорова-Смирнова (KS), также известный как график рыбий глаз, является общей статистикой для измерения прогнозирующей степени карт результатов.
График KS показывает распределение дефолтов и распределение недефейтеров на том же графике. Для распределения дефолтов каждый счет «s» строится с учетом доли дефолтов до «s» или «Sensitivity». Для распределения лиц, не являющихся дефолтерами, каждый счет «s» строится с учетом доли недефакторов до «s» или «False Alarm». Интересующая статистика называется KS statistic и является максимальным различием между этими двумя распределениями («Sensitivity» минус «False Alarm»). Счет, при котором достигается этот максимум, также представляет интерес.
validatemodel
с весамиЕсли вы предоставляете веса наблюдений, validatemodel
функция включает веса наблюдений при вычислении статистики валидации модели.
Если вы не предоставляете веса, статистика валидации основана на том, сколько хороших и плохих наблюдений падает ниже определенного счета. Если вы предоставляете веса, вес (не счет) накапливается для хороших и плохих наблюдений, которые падают ниже определенного балла.
Когда вы задаете веса наблюдений, используя необязательную WeightsVar
аргумент пары "имя-значение" при создании creditscorecard
объект, веса, сохраненные в WeightsVar
столбец используется при проверке модели на обучающих данных. Когда другой набор данных валидации предоставляется с помощью дополнительного data
входы, веса наблюдений для данных валидации должны быть включены в столбец, имя которого совпадает WeightsVar
. В противном случае веса модулей используются для набора данных валидации.
Веса наблюдений обучающих данных влияют не только на статистику валидации, но и на сами счета кредитных показателей. Для получения дополнительной информации смотрите Использование fitmodel с весами и Моделирование кредитной карты показателей с использованием весов наблюдений.
[1] «Базельский комитет по банковскому надзору: исследования по валидации внутренних рейтинговых систем». Рабочий документ № 14, февраль 2005 года.
[2] Refaat, M. Кредитные карты оценки риска: Разработка и реализация с использованием SAS. lulu.com, 2011.
[3] Лоффлер, Г. и П. Н. Пош. Моделирование кредитного риска с использованием Excel и VBA. Wiley Finance, 2007.
compactCreditScorecard
| displaypoints
| probdefault
| score
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.