Возвращаемые точки на предиктор на интервал
возвращает таблицу точек для всех интервалов всех переменных предиктора, используемых в PointsInfo
= displaypoints(sc
)creditscorecard
объект после того, как линейная логистическая регрессионая модель подходит с помощью fitmodel
к данным о весе доказательств. The PointsInfo
таблица отображает информацию об имени предиктора, метках интервала и соответствующих точках на интервал.
[
возвращает таблицу точек для всех интервалов всех переменных предиктора, используемых в PointsInfo
,MinScore
,MaxScore
]
= displaypoints(sc
)creditscorecard
объект после того, как линейная логистическая регрессионая модель подобрана (fitmodel
) к данным о весе доказательств. The PointsInfo
таблица отображает информацию об имени предиктора, метках интервала и соответствующих точках на интервал и displaypoints
. В сложение необязательный MinScore
и MaxScore
возвращаются значения.
[
задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. PointsInfo
,MinScore
,MaxScore
]
= displaypoints(___,Name,Value
)
В этом примере показано, как использовать displaypoints
после того, как модель подобрана для вычисления немасштабированных точек на интервал, для заданного предиктора в creditscorecard
модель.
Создайте creditscorecard
объект с использованием CreditCardData.mat
файл для загрузки data
(использование набора данных из Refaat 2011). Используйте 'IDVar'
аргумент в creditscorecard
функция, указывающая, что 'CustID'
содержит идентификационную информацию и не должен включаться в качестве переменной предиктора.
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>
) в обучающих данных и процессе раскладывания оценивает значение ГОРЕ -0.15787
и 0.026469
соответственно для отсутствующих данных в этих предикторах, как показано выше.
Использование fitmodel
для подбора логистической регрессионной модели с использованием данных о весе доказательств (WOE). fitmodel
внутренне преобразует все переменные предиктора в значения WOE, используя интервалы, найденные в процессе автоматического раскладывания. fitmodel
затем подходит для логистической регрессионной модели с помощью пошагового метода (по умолчанию). Для предикторов, которые имеют отсутствующие данные, существует явное <missing>
интервал с соответствующим значением WOE, вычисленным из данных. При использовании fitmodel
соответствующее значение ГОРЕ для < отсутствующего > интервала применяется при выполнении преобразования ГОРЕ.
[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'
содержит идентификационную информацию и не должен включаться в качестве переменной предиктора.
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
MaxScore = 850.0000
Заметьте, что, как и ожидалось, значения MinScore
и MaxScore
соответствуют наихудшим и наилучшим счетам.
В этом примере показано, как использовать displaypoints
после того, как модель подобрана, чтобы отделить базовые точки от остальных точек, назначенных каждой переменной предиктора. Область аргумента пары "имя-значение" 'BasePoints'
в formatpoints
функция является логической, которая служит этой цели. По умолчанию базовые точки распределяются по всем переменным в карте показателей.
Создайте creditscorecard
объект с использованием CreditCardData.mat
файл для загрузки data
(использование набора данных из Refaat 2011). Используйте 'IDVar'
аргумент в creditscorecard
функция, указывающая, что 'CustID'
содержит идентификационную информацию и не должен включаться в качестве переменной предиктора.
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'
содержит идентификационную информацию и не должен включаться в качестве переменной предиктора.
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'
индикатор для true
.
load CreditCardData.mat sc = creditscorecard(dataMissing,'BinMissingData',true);
Использование autobinning
с creditscorecard
объект.
sc = autobinning(sc);
binning map или правила для категориальных данных суммируются в таблице «группировка категорий», возвращаемой как необязательный выход. По умолчанию каждая категория помещается в отдельный интервал. Вот информация для предиктора 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
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
отображаются все представители, содержащиеся в каждой отдельной группе.
Типы данных: logical
PointsInfo
- Одна строка на интервал, на предиктор, с соответствующими точкамиОдна строка на интервал, на предиктор, с соответствующими точками, возвращается как таблица. Для примера:
Предсказатели | Интервал | Точки |
---|---|---|
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_<reservedrangesplaceholder0 > | Bin_<reservedrangesplaceholder1><reservedrangesplaceholder0 > | Points_<reservedrangesplaceholder1><reservedrangesplaceholder0 > |
... | ... | |
Predictor_<reservedrangesplaceholder0 > | '<missing>' | NaN (По умолчанию) |
displaypoints
всегда отображает '<missing>'
интервал для каждого предиктора. Значение '<missing>'
интервал происходит от начального creditscorecard
объект и '<missing>'
интервал установлено в NaN
всякий раз, когда модель карты показателей не имеет информации о том, как назначить точки отсутствующим данным.
Чтобы сконфигурировать точки для '<missing>'
интервал, необходимо использовать начальный creditscorecard
объект. Для предикторов, которые имеют отсутствующие значения в наборе обучающих данных, точки для '<missing>'
интервал оцениваются из данных, если 'BinMissingData'
аргумент пары "имя-значение" для установлен в true
использование creditscorecard
. Когда 'BinMissingData'
параметру задано значение false
, или когда данные не содержат отсутствующих значений в наборе обучающих данных, используйте 'Missing'
аргумент пары "имя-значение" в formatpoints
чтобы указать, как назначить точки отсутствующим данным.
Другая опция - использовать fillmissing
задать замену значений «fill» для предикторов на 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] Anderson, R. The Credit Scoring Toolkit. Oxford University Press, 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.