Возвратите точки на предиктор на интервал
возвращает таблицу точек для всех интервалов всех переменных предикторов, используемых в PointsInfo
= displaypoints(sc
)creditscorecard
объект после линейной модели логистической регрессии является подходящим использованием fitmodel
к Весу данных о Доказательстве. PointsInfo
таблица показывает информацию об имени предиктора, метках интервала и соответствующих точках на интервал.
[
возвращает таблицу точек для всех интервалов всех переменных предикторов, используемых в PointsInfo
,MinScore
,MaxScore
]
= displaypoints(sc
)creditscorecard
объект после линейной модели логистической регрессии является подходящим (fitmodel
) к Весу данных о Доказательстве. PointsInfo
таблица показывает информацию об имени предиктора, метках интервала и соответствующих точках на интервал и displaypoints
. Кроме того, дополнительный MinScore
и MaxScore
значения возвращены.
[
задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. PointsInfo
,MinScore
,MaxScore
]
= displaypoints(___,Name,Value
)
В этом примере показано, как использовать displaypoints
после того, как модель подбирается, чтобы вычислить немасштабированные точки на интервал для данного предиктора в creditscorecard
модель.
Создайте creditscorecard
объект с помощью CreditCardData.mat
файл, чтобы загрузить data
(использование набора данных от Refaat 2011). Используйте 'IDVar'
аргумент в creditscorecard
функция, чтобы указать на тот 'CustID'
содержит информацию о ID и не должен быть включен как переменный предиктор.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое раскладывание к интервалу для всех предикторов.
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
Отобразите немасштабированные точки для предикторов, сохраненных в подходящей модели.
PointsInfo = displaypoints(sc)
PointsInfo=37×3 table
Predictors Bin Points
______________ ________________ _________
{'CustAge' } {'[-Inf,33)' } -0.15894
{'CustAge' } {'[33,37)' } -0.14036
{'CustAge' } {'[37,40)' } -0.060323
{'CustAge' } {'[40,46)' } 0.046408
{'CustAge' } {'[46,48)' } 0.21445
{'CustAge' } {'[48,58)' } 0.23039
{'CustAge' } {'[58,Inf]' } 0.479
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.031252
{'ResStatus' } {'Home Owner' } 0.12696
{'ResStatus' } {'Other' } 0.37641
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.076317
{'EmpStatus' } {'Employed' } 0.31449
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} -0.45716
⋮
displaypoints
всегда отображает '<missing>'
интервал для каждого предиктора. Значение '<missing>'
интервал прибывает из начального creditscorecard
объект и '<missing>'
интервал установлен в NaN
каждый раз, когда модель протокола результатов не имеет никакой информации о том, как присвоить точки недостающим данным.
Сконфигурировать точки для '<missing>'
интервал, необходимо использовать начальный creditscorecard
объект. Для предикторов, которые имеют отсутствующие значения в наборе обучающих данных, точках для '<missing>'
интервал оценивается из данных если 'BinMissingData'
аргумент пары "имя-значение" установлен в true
использование creditscorecard
. Когда 'BinMissingData'
параметр устанавливается на false
, или когда данные не содержат отсутствующих значений в наборе обучающих данных, используйте 'Missing'
аргумент пары "имя-значение" в formatpoints
указать, как присвоить точки недостающим данным.
Создайте creditscorecard
объект с помощью CreditCardData.mat
файл, чтобы загрузить data
с отсутствующими значениями.
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
fprintf('Number of rows: %d\n',height(dataMissing))
Number of rows: 1200
fprintf('Number of missing values CustAge: %d\n',sum(ismissing(dataMissing.CustAge)))
Number of missing values CustAge: 30
fprintf('Number of missing values ResStatus: %d\n',sum(ismissing(dataMissing.ResStatus)))
Number of missing values ResStatus: 40
Используйте 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'
это включает недостающие данные в отдельный интервал, пометил <missing>
.
[bi,cp] = bininfo(sc,'CustAge');
disp(bi)
Bin Good Bad Odds WOE InfoValue _____________ ____ ___ ______ ________ __________ {'[-Inf,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
plotbins(sc,'CustAge')
Отобразите и постройте информацию об интервале для категориальных данных для 'ResStatus'
это включает недостающие данные в отдельный интервал, пометил <missing>
.
[bi,cg] = 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
plotbins(sc,'ResStatus')
Для 'CustAge'
и 'ResStatus'
предикторы, там пропускает данные (NaNs
и <undefined>
) в обучающих данных и процессе раскладывания оценивает значение WOE -0.15787
и 0.026469
соответственно для недостающих данных в этих предикторах, как показано выше.
Используйте fitmodel
подбирать модель логистической регрессии использование данных о Весе доказательства (WOE). fitmodel
внутренне преобразовывает все переменные предикторы в значения WOE, с помощью интервалов, найденных с автоматическим процессом раскладывания. fitmodel
затем подбирает модель логистической регрессии использование пошагового метода (по умолчанию). Для предикторов, которые имеют недостающие данные, существует явный <missing>
интервал, с соответствующим значением WOE, вычисленным из данных. При использовании fitmodel
, соответствующее значение WOE для <недостающего> интервала применяется при выполнении преобразования WOE.
[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
Отобразите немасштабированные точки для предикторов, сохраненных в подходящей модели (чтобы масштабироваться, точки используют formatpoints
).
PointsInfo = displaypoints(sc)
PointsInfo=38×3 table
Predictors Bin Points
_____________ ______________ _________
{'CustAge' } {'[-Inf,33)' } -0.14173
{'CustAge' } {'[33,37)' } -0.11095
{'CustAge' } {'[37,40)' } -0.059244
{'CustAge' } {'[40,46)' } 0.074167
{'CustAge' } {'[46,48)' } 0.1889
{'CustAge' } {'[48,51)' } 0.20204
{'CustAge' } {'[51,58)' } 0.22935
{'CustAge' } {'[58,Inf]' } 0.45019
{'CustAge' } {'<missing>' } 0.0096749
{'ResStatus'} {'Tenant' } -0.029778
{'ResStatus'} {'Home Owner'} 0.12425
{'ResStatus'} {'Other' } 0.36796
{'ResStatus'} {'<missing>' } 0.1364
{'EmpStatus'} {'Unknown' } -0.075948
{'EmpStatus'} {'Employed' } 0.31401
{'EmpStatus'} {'<missing>' } NaN
⋮
Заметьте что точки для <missing>
интервал для CustAge
и ResStatus
явным образом показаны. Эти точки вычисляются из значения WOE для <недостающего> интервала и логистических коэффициентов модели.
Для предикторов, которые не имеют никаких недостающих данных в наборе обучающих данных, нет никакого явного <missing>
интервал, и по умолчанию точки установлены в NaN
для недостающих данных, и они приводят к счету NaN
при выполнении score
. Для предикторов, которые не имеют никакого явного <missing>
интервал, используйте аргумент 'Missing'
значения имени в
formatpoints
указать, как недостающие данные нужно лечить от выигрыша целей.
В этом примере показано, как использовать formatpoints
после того, как модель подбирается, чтобы отформатировать масштабируемые точки, и затем использовать displaypoints
отобразить масштабированные точки на интервал, для данного предиктора в creditscorecard
модель.
Точки становятся масштабированными, когда область значений задана. А именно, линейное преобразование от немасштабированного до масштабированных точек необходимо. Это преобразование задано или путем предоставления сдвига и наклона или путем определения худших и лучших возможных баллов. (Для получения дополнительной информации смотрите formatpoints
.)
Создайте creditscorecard
объект с помощью CreditCardData.mat
файл, чтобы загрузить data
(использование набора данных от Refaat 2011). Используйте 'IDVar'
аргумент в creditscorecard
функция, чтобы указать на тот 'CustID'
содержит информацию о ID и не должен быть включен как переменный предиктор.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое раскладывание к интервалу для всех предикторов.
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
Используйте formatpoints
функционируйте, чтобы масштабировать обеспечение 'Worst'
и 'Best'
значения баллов. Спектр, предоставленный ниже, является общей областью значений счета.
sc = formatpoints(sc,'WorstAndBestScores',[300 850]);
Отобразите информацию о точках снова, чтобы проверить, что точки теперь масштабируются и также отображают масштабированные минимальные и максимальные баллы.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
Predictors Bin Points
______________ ________________ ______
{'CustAge' } {'[-Inf,33)' } 46.396
{'CustAge' } {'[33,37)' } 48.727
{'CustAge' } {'[37,40)' } 58.772
{'CustAge' } {'[40,46)' } 72.167
{'CustAge' } {'[46,48)' } 93.256
{'CustAge' } {'[48,58)' } 95.256
{'CustAge' } {'[58,Inf]' } 126.46
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } 62.421
{'ResStatus' } {'Home Owner' } 82.276
{'ResStatus' } {'Other' } 113.58
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } 56.765
{'EmpStatus' } {'Employed' } 105.81
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} 8.9706
⋮
MinScore = 300.0000
MaxScore = 850
Заметьте что, как ожидалось, значения MinScore
и MaxScore
соответствуйте худшим и самым лучшим баллам.
В этом примере показано, как использовать displaypoints
после того, как модель подбирается, чтобы разделить базисные точки от остальной части точек, присвоенных каждому переменному предиктору. Аргумент пары "имя-значение" 'BasePoints'
в formatpoints
функция является булевской переменной, которая служит этой цели. По умолчанию базисные точки распространены через все переменные в протоколе результатов.
Создайте creditscorecard
объект с помощью CreditCardData.mat
файл, чтобы загрузить data
(использование набора данных от Refaat 2011). Используйте 'IDVar'
аргумент в creditscorecard
функция, чтобы указать на тот 'CustID'
содержит информацию о ID и не должен быть включен как переменный предиктор.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое раскладывание к интервалу для всех предикторов.
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
Используйте formatpoints
функционируйте, чтобы разделить базисные точки путем обеспечения 'BasePoints'
аргумент пары "имя-значение".
sc = formatpoints(sc,'BasePoints',true);
Отобразите базисные точки, выделенные от других точек, для предикторов, сохраненных в подходящей модели.
PointsInfo = displaypoints(sc)
PointsInfo=38×3 table
Predictors Bin Points
______________ ______________ _________
{'BasePoints'} {'BasePoints'} 0.70239
{'CustAge' } {'[-Inf,33)' } -0.25928
{'CustAge' } {'[33,37)' } -0.24071
{'CustAge' } {'[37,40)' } -0.16066
{'CustAge' } {'[40,46)' } -0.053933
{'CustAge' } {'[46,48)' } 0.11411
{'CustAge' } {'[48,58)' } 0.13005
{'CustAge' } {'[58,Inf]' } 0.37866
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.13159
{'ResStatus' } {'Home Owner'} 0.026616
{'ResStatus' } {'Other' } 0.27607
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.17666
{'EmpStatus' } {'Employed' } 0.21415
{'EmpStatus' } {'<missing>' } NaN
⋮
В этом примере показано, как использовать displaypoints
после того, как модель подбирается и modifybins
функция используется, чтобы обеспечить пользовательские метки интервала для числового предиктора.
Создайте creditscorecard
объект с помощью CreditCardData.mat
файл, чтобы загрузить data
(использование набора данных от Refaat 2011). Используйте 'IDVar'
аргумент в creditscorecard
функция, чтобы указать на тот 'CustID'
содержит информацию о ID и не должен быть включен как переменный предиктор.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое раскладывание к интервалу для всех предикторов.
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
Используйте displaypoints
функционируйте, чтобы отобразить информацию о точке.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
Predictors Bin Points
______________ ________________ _________
{'CustAge' } {'[-Inf,33)' } -0.15894
{'CustAge' } {'[33,37)' } -0.14036
{'CustAge' } {'[37,40)' } -0.060323
{'CustAge' } {'[40,46)' } 0.046408
{'CustAge' } {'[46,48)' } 0.21445
{'CustAge' } {'[48,58)' } 0.23039
{'CustAge' } {'[58,Inf]' } 0.479
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.031252
{'ResStatus' } {'Home Owner' } 0.12696
{'ResStatus' } {'Other' } 0.37641
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.076317
{'EmpStatus' } {'Employed' } 0.31449
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} -0.45716
⋮
MinScore = -1.3100
MaxScore = 3.0726
Используйте modifybins
функция, чтобы задать пользовательский интервал помечает для 'CustAge'
так, чтобы области значений интервала были описаны на естественном языке.
labels = {'Up to 32','33 to 36','37 to 39','40 to 45','46 to 47','48 to 57','At least 58'}; sc = modifybins(sc,'CustAge','BinLabels',labels);
Повторно выполните displaypoints
проверять обновленные метки интервала.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
Predictors Bin Points
______________ ________________ _________
{'CustAge' } {'Up to 32' } -0.15894
{'CustAge' } {'33 to 36' } -0.14036
{'CustAge' } {'37 to 39' } -0.060323
{'CustAge' } {'40 to 45' } 0.046408
{'CustAge' } {'46 to 47' } 0.21445
{'CustAge' } {'48 to 57' } 0.23039
{'CustAge' } {'At least 58' } 0.479
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.031252
{'ResStatus' } {'Home Owner' } 0.12696
{'ResStatus' } {'Other' } 0.37641
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.076317
{'EmpStatus' } {'Employed' } 0.31449
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} -0.45716
⋮
MinScore = -1.3100
MaxScore = 3.0726
В этом примере показано, как использовать протокол результатов кредита, чтобы вычислить веса предикторов. Веса предикторов определяются из области значений точек каждого предиктора, разделенного на общую область значений точек для протокола результатов. Точки для протокола результатов не только учитывают беты, но также и неявно раскладывание значений предиктора и соответствующие веса доказательства.
Создайте протокол результатов.
load CreditCardData.mat sc = creditscorecard(data,'IDVar','CustID'); 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
Вычислите точки протокола результатов и MinPts
и MaxPts
баллы.
sc = formatpoints(sc,'PointsOddsAndPDO',[500 2 50]);
[PointsTable,MinPts,MaxPts] = displaypoints(sc);
PtsRange = MaxPts-MinPts;
disp(PointsTable(1:10,:));
Predictors Bin Points _____________ ______________ ______ {'CustAge' } {'[-Inf,33)' } 52.821 {'CustAge' } {'[33,37)' } 54.161 {'CustAge' } {'[37,40)' } 59.934 {'CustAge' } {'[40,46)' } 67.633 {'CustAge' } {'[46,48)' } 79.755 {'CustAge' } {'[48,58)' } 80.905 {'CustAge' } {'[58,Inf]' } 98.838 {'CustAge' } {'<missing>' } NaN {'ResStatus'} {'Tenant' } 62.031 {'ResStatus'} {'Home Owner'} 73.444
fprintf('Min points: %g, Max points: %g\n',MinPts,MaxPts);
Min points: 355.505, Max points: 671.64
Вычислите веса предиктора.
Predictor = unique(PointsTable.Predictors,'stable'); NumPred = length(Predictor); Weight = zeros(NumPred,1); for ii=1:NumPred Ind = cellfun(@(x)strcmpi(Predictor{ii},x),PointsTable.Predictors); MaxPtsPred = max(PointsTable.Points(Ind)); MinPtsPred = min(PointsTable.Points(Ind)); Weight(ii) = 100*(MaxPtsPred-MinPtsPred)/PtsRange; end PredictorWeights = table(Predictor,Weight); PredictorWeights(end+1,:) = PredictorWeights(end,:); PredictorWeights.Predictor{end} = 'Total'; PredictorWeights.Weight(end) = sum(Weight); disp(PredictorWeights)
Predictor Weight ______________ ______ {'CustAge' } 14.556 {'ResStatus' } 9.302 {'EmpStatus' } 8.9174 {'CustIncome'} 20.401 {'TmWBank' } 25.884 {'OtherCC' } 7.9885 {'AMBalance' } 12.951 {'Total' } 100
Веса заданы как область значений точек для предиктора, разделенного на область значений точек для протокола результатов.
creditscorecard
Объект, который содержит Недостающие данныеСоздать creditscorecard
объект с помощью CreditCardData.mat
файл, загрузите data
(использование набора данных от Refaat 2011). Используя dataMissing
набор данных, набор 'BinMissingData'
индикатор to true
.
load CreditCardData.mat sc = creditscorecard(dataMissing,'BinMissingData',true);
Используйте autobinning
с creditscorecard
объект.
sc = autobinning(sc);
Карта раскладывания или правила для категориальных данных получены в итоге в "таблице" группировки категории, возвращенной как дополнительный выход. По умолчанию каждая категория помещается в отдельный интервал. Вот является информация для предиктора ResStatus
.
[bi,cg] = bininfo(sc,'ResStatus')
bi=5×6 table
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
cg=3×2 table
Category BinNumber
______________ _________
{'Tenant' } 1
{'Home Owner'} 2
{'Other' } 3
К категориям группы 'Tenant'
и 'Other'
, измените таблицу cg
группировки категории, так номер интервала для
'Other'
совпадает с номером интервала для 'Tenant'
. Затем используйте modifybins
обновить creditscorecard
объект.
cg.BinNumber(3) = 2; sc = modifybins(sc,'ResStatus','Catg',cg);
Отобразите обновленную информацию об интервале с помощью bininfo
. Обратите внимание на то, что метки интервала были обновлены и что информация о членстве в интервале содержится в категории, группирующей cg
.
[bi,cg] = bininfo(sc,'ResStatus')
bi=4×6 table
Bin Good Bad Odds WOE InfoValue
_____________ ____ ___ ______ _________ __________
{'Group1' } 296 161 1.8385 -0.095463 0.0035249
{'Group2' } 480 223 2.1525 0.062196 0.0022419
{'<missing>'} 27 13 2.0769 0.026469 2.3248e-05
{'Totals' } 803 397 2.0227 NaN 0.00579
cg=3×2 table
Category BinNumber
______________ _________
{'Tenant' } 1
{'Home Owner'} 2
{'Other' } 2
Используйте formatpoints
с 'Missing'
аргумент пары "имя-значение", чтобы указать, что недостающими данными является присвоенный 'maxpoints'
.
sc = formatpoints(sc,'BasePoints',true,'Missing','maxpoints','WorstAndBest',[300 800]);
Используйте fitmodel
подбирать модель.
sc = fitmodel(sc,'VariableSelection','fullmodel','Display','Off');
Затем используйте displaypoints
(Risk Management Toolbox) с creditscorecard
возразите, чтобы возвратить таблицу точек для всех интервалов всех переменных предикторов, используемых в compactCreditScorecard
объект. Путем установки displaypoints
Аргумент пары "имя-значение" (Risk Management Toolbox) для 'ShowCategoricalMembers'
к true
, все члены, содержавшиеся в каждой отдельной группе, отображены.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc,'ShowCategoricalMembers',true)
PointsInfo=51×3 table
Predictors Bin Points
_______________ ______________ _______
{'BasePoints' } {'BasePoints'} 535.25
{'CustID' } {'[-Inf,121)'} 12.085
{'CustID' } {'[121,241)' } 5.4738
{'CustID' } {'[241,1081)'} -1.4061
{'CustID' } {'[1081,Inf]'} -7.2217
{'CustID' } {'<missing>' } 12.085
{'CustAge' } {'[-Inf,33)' } -25.973
{'CustAge' } {'[33,37)' } -22.67
{'CustAge' } {'[37,40)' } -17.122
{'CustAge' } {'[40,46)' } -2.8071
{'CustAge' } {'[46,48)' } 9.5034
{'CustAge' } {'[48,51)' } 10.913
{'CustAge' } {'[51,58)' } 13.844
{'CustAge' } {'[58,Inf]' } 37.541
{'CustAge' } {'<missing>' } -9.7271
{'TmAtAddress'} {'[-Inf,23)' } -9.3683
⋮
MinScore = 300.0000
MaxScore = 800.0000
sc
— Модель протокола результатов кредитаcreditscorecard
объектМодель протокола результатов кредита в виде creditscorecard
объект. Используйте creditscorecard
создать creditscorecard
объект.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc,‘ShowCategoricalMembers’,true)
'ShowCategoricalMembers'
— Индикатор для того, как отобразить метки интервалов категорий, которые группировалисьfalse
(значение по умолчанию) | true
или false
Индикатор для того, как отобразить метки интервалов категорий, которые группировались в виде разделенной запятой пары, состоящей из 'ShowCategoricalMembers'
и логический скаляр со значением true
или false
.
По умолчанию, когда 'ShowCategoricalMembers'
false
, метки интервала отображены как Group1
, Group2
, …, Group
n, или если метки интервала были изменены в creditscorecard
, затем пользовательские имена метки интервала отображены.
Если 'ShowCategoricalMembers'
true
, все члены, содержавшиеся в каждой отдельной группе, отображены.
Типы данных: логический
PointsInfo
— Одна строка на интервал, на предиктор, с соответствующими точкамиОдна строка на интервал, на предиктор, с соответствующими точками, возвратилась как таблица. Например:
Предикторы | Интервал | 'points' |
---|---|---|
Predictor_1 | Bin_11 | Points_11 |
Predictor_1 | Bin_12 | Points_12 |
Predictor_1 | Bin_13 | Points_13 |
... | ... | |
Predictor_1 | '<missing>' | NaN (Значение по умолчанию) |
Predictor_2 | Bin_21 | Points_21 |
Predictor_2 | Bin_22 | Points_22 |
Predictor_2 | Bin_23 | Points_23 |
... | ... | |
Predictor_2 | '<missing>' | NaN (Значение по умолчанию) |
Predictor_j | Bin_ji | Points_ji |
... | ... | |
Predictor_j | '<missing>' | NaN (Значение по умолчанию) |
displaypoints
всегда отображает '<missing>'
интервал для каждого предиктора. Значение '<missing>'
интервал прибывает из начального creditscorecard
объект и '<missing>'
интервал установлен в NaN
каждый раз, когда модель протокола результатов не имеет никакой информации о том, как присвоить точки недостающим данным.
Сконфигурировать точки для '<missing>'
интервал, необходимо использовать начальный creditscorecard
объект. Для предикторов, которые имеют отсутствующие значения в наборе обучающих данных, точках для '<missing>'
интервал оценивается из данных если 'BinMissingData'
аргумент пары "имя-значение" для установлен в true
использование creditscorecard
. Когда 'BinMissingData'
параметр устанавливается на false
, или когда данные не содержат отсутствующих значений в наборе обучающих данных, используйте 'Missing'
аргумент пары "имя-значение" в formatpoints
указать, как присвоить точки недостающим данным.
Другая опция должна использовать fillmissing
чтобы задать замену "заполняют" значения для предикторов с NaN
или <undefined>
значение. Если вы используете fillmissing
, затем displaypoints
'<missing>'
строка имеет те же точки как интервал, сопоставленный со значением заливки.
Когда о базисных точках сообщат отдельно (см. formatpoints
), первая строка возвращенного PointsInfo
таблица содержит базисные точки.
MinScore
— Минимальный возможный общий счетМинимальный возможный общий счет, возвращенный как скаляр.
Примечание
Минимальный счет является самым низким общим счетом в математическом смысле, независимо от того, означает ли низкий балл высокий риск или низкий риск.
MaxScore
— Максимальный возможный общий счетМаксимальный возможный общий счет, возвращенный как скаляр.
Примечание
Максимальный счет является максимально возможным общим счетом в математическом смысле, независимо от того, означает ли высокий счет высокий риск или низкий риск.
Точками для предиктора j и интервал i, по умолчанию, дают
Points_ji = (Shift + Slope*b0)/p + Slope*(bj*WOEj(i))
Shift
и Slope
масштабируют константы.Когда о базисных точках сообщат отдельно (см. formatpoints
аргумент пары "имя-значение" BasePoints
), базисными точками дают
Base Points = Shift + Slope*b0,
Points_ji = Slope*(bj*WOEj(i))).
По умолчанию о базисных точках не сообщают отдельно.
Минимальные и максимальные баллы:
MinScore = Shift + Slope*b0 + min(Slope*b1*WOE1) + ... +min(Slope*bp*WOEp)), MaxScore = Shift + Slope*b0 + max(Slope*b1*WOE1) + ... +max(Slope*bp*WOEp)).
Использование formatpoints
чтобы управлять путем, точки масштабируются, округляются, и сообщают ли о базисных точках отдельно. Смотрите formatpoints
для получения дополнительной информации о параметрах формата и для деталей и формул на этих параметрах форматирования.
[1] Андерсон, R. Инструментарий рейтинга кредитоспособности. Издательство Оксфордского университета, 2007.
[2] Refaat, M. Протоколы результатов Кредитного риска: Разработка и Реализация Используя SAS. lulu.com, 2011.
autobinning
| bindata
| bininfo
| creditscorecard
| fillmissing
| fitmodel
| formatpoints
| modifybins
| modifypredictor
| plotbins
| predictorinfo
| probdefault
| score
| setmodel
| validatemodel
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.