exponenta event banner

Пример примера выполнения Binning Explorer

В этом примере показано, как создать кредитную карту показателей с помощью приложения Binning Explorer. Используйте Binning Explorer для хранения данных, вывода на график связанной информации и экспорта creditscorecard объект. Затем используйте creditscorecard объект с функциями из Финансового Toolbox™ для соответствия модели логистической регрессии, определения балла для данных, определения вероятностей дефолта и проверки модели кредитной карты показателей с использованием трех различных метрик.

Шаг 1. Загрузить кредитную карту показателей data в рабочую область MATLAB.

Используйте CreditCardData.mat для загрузки файла data в рабочую область MATLAB ® (с использованием набора данных из Refaat 2011 ).

load CreditCardData
disp(data(1:10,:))
  CustID    CustAge    TmAtAddress    ResStatus     EmpStatus    CustIncome    TmWBank    OtherCC    AMBalance    UtilRate    status
    ______    _______    ___________    __________    _________    __________    _______    _______    _________    ________    ______

     1        53         62             Tenant        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        50         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     
     6        65         13             Home Owner    Employed     48000         59         Yes        968.18       0.15        0     
     7        34         32             Home Owner    Unknown      32000         26         Yes        717.82       0.02        1     
     8        50         57             Other         Employed     51000         33         No         3041.2       0.13        0     
     9        50         10             Tenant        Unknown      52000         25         Yes        115.56       0.02        1     
    10        49         30             Home Owner    Unknown      53000         23         Yes         718.5       0.17        1     

Шаг 2. Импорт data в Binning Explorer.

Откройте Binning Explorer на панели инструментов MATLAB: на вкладке Приложения в разделе Вычислительные финансы щелкните значок приложения. Кроме того, можно ввести binningExplorer в командной строке MATLAB. Дополнительные сведения о запуске Binning Explorer из командной строки см. в разделе Запуск из командной строки MATLAB с использованием данных или существующего объекта creditscorecard.

На панели инструментов Binning Explorer выберите Импорт данных, чтобы открыть окно Импорт данных.

Import Data dialog box

В разделе Шаг 1 выберите data.

На шаге 2 дополнительно задайте тип переменной для каждого из предикторов. По умолчанию последний столбец в данных ('status' в этом примере) имеет значение 'Response'. Значение ответа с наибольшим числом (0 в этом примере) имеет значение 'Good'. Все остальные переменные считаются предикторами. Однако в этом примере, потому что 'CustID' не является предиктором, установите столбец Variable Type для 'CustID' не включать.

Примечание

Если входная таблица MATLAB содержит столбец для weights, на панели 2 шага, используя столбец Тип переменной (Variable Type), щелкните раскрывающийся список, чтобы выбрать Вес (Weights). Для получения дополнительной информации об использовании весов наблюдения с creditscorecard см. Моделирование кредитной карты показателей с использованием весов наблюдения.

Если данные содержат отсутствующие значения, на панели Шаг 2 установите значение Bin missing data: Yes. Для получения дополнительной информации о работе с отсутствующими данными см. Моделирование кредитной карты показателей с отсутствующими значениями.

В разделе Шаг 3 оставьте Monotone в качестве алгоритма начального объединения по умолчанию.

Щелкните Импорт данных (Import Data), чтобы завершить операцию импорта. Автоматическое связывание с использованием выбранного алгоритма применяется ко всем предикторам при их импорте в Binning Explorer.

Ячейки наносятся на график и отображаются для каждого предсказателя. Щелкнув, чтобы выбрать отдельный график предиктора на панели Обзор, подробности для этого графика предиктора отображаются в главной панели и на панелях Информация о корзине и Информация о предикторе в нижней части приложения.

Predictor plots display after binning

Binning Explorer выполняет автоматическое binning для каждой переменной предиктора, используя значение по умолчанию 'Monotone' с параметрами алгоритма по умолчанию. Монотонная, в идеале линейная тенденция в весе доказательств (WOE) часто желательна для кредитных карт показателей, потому что это переводится в линейные точки для данного предиктора. Тенденции WOE визуализируются на графиках для каждого предиктора в Binning Explorer.

Выполните некоторые первоначальные исследования данных. Запрос о статистике предикторов для 'ResStatus' категориальная переменная.

Щелкните на графике ResStatus. Панель Bin Information содержит частоты «Хорошо» и «Плохо» и другую статистику ячеек, такую как вес доказательств (WOE).

Bin information display

Для числовых данных отображается та же статистика. Щелкните график CustIncome. Информация о ячейке обновляется с помощью информации о CustIncome.

Bin information for CustIncome predictor

Шаг 3. Выполните тонкую настройку ячеек с помощью ручной настройки в Binning Explorer.

Щелкните график предиктора CustAge. Обратите внимание, что ячейки 1 и 2 имеют аналогичные WOE, как и ячейки 5 и 6.

Plot for CustAge predictor

Чтобы объединить ячейки 1 и 2, на главной панели нажмите Ctrl + щелкните или Shift + щелкните, чтобы выбрать несколько ячеек 1 и 2 для отображения с синими контурами для объединения.

Plot for CustAge predictor with two bins selected

На панели инструментов Binning Explorer в текстовых полях «Кромки» отображаются значения кромок выбранных ячеек для объединения.

Use Edges text box to merge selected bins for CustAge predictor

Щелкните Объединить (Merge), чтобы завершить объединение ячеек 1 и 2. График предиктора CustAge обновляется для новой информации ячейки, а также обновляются детали в областях информации ячейки и информации предиктора.

Plot for CustAge predictor with the two selected bins merged

Затем объедините ячейки 4 и 5, поскольку они также имеют аналогичные WOE.

Plot for CustAge predictor with bins 4 and 5 selected for merging

График предиктора CustAge обновляется новой информацией о ячейке. Также обновляются сведения на панелях Информация о ячейках и Информация о предикторе.

Повторите эту операцию объединения для следующих ячеек, имеющих аналогичные WOE:

  • Для CustIncome объедините ячейки 3, 4 и 5.

  • Для TmWBank объедините ячейки 2 и 3.

  • Для AMBalance объедините ячейки 2 и 3.

Теперь бункеры для всех предикторов имеют близкие к линейным тенденции WOE.

Шаг 4. Экспорт creditscorecard из Binning Explorer.

После завершения назначений Binning Explorer выберите Экспорт, затем Экспорт карты показателей и укажите creditscorecard имя объекта. creditscorecard объект (sc) сохраняется в рабочей области MATLAB.

Шаг 5. Подберите модель логистической регрессии.

Используйте fitmodel функция для соответствия модели логистической регрессии данным WOE. fitmodel внутренне складывает обучающие данные, преобразует их в значения WOE, отображает переменную ответа так, чтобы 'Good' является 1и подходит под модель линейной логистической регрессии. По умолчанию fitmodel использует пошаговую процедуру, чтобы определить, какие предикторы принадлежат в модели.

sc = fitmodel(sc);
1. Adding CustIncome, Deviance = 1490.8954, Chi2Stat = 32.545914, PValue = 1.1640961e-08
2. Adding TmWBank, Deviance = 1467.3249, Chi2Stat = 23.570535, PValue = 1.2041739e-06
3. Adding AMBalance, Deviance = 1455.858, Chi2Stat = 11.466846, PValue = 0.00070848829
4. Adding EmpStatus, Deviance = 1447.6148, Chi2Stat = 8.2432677, PValue = 0.0040903428
5. Adding CustAge, Deviance = 1442.06, Chi2Stat = 5.5547849, PValue = 0.018430237
6. Adding ResStatus, Deviance = 1437.9435, Chi2Stat = 4.1164321, PValue = 0.042468555
7. Adding OtherCC, Deviance = 1433.7372, Chi2Stat = 4.2063597, PValue = 0.040272676

Generalized Linear regression model:
    logit(status) ~ 1 + CustAge + ResStatus + EmpStatus + CustIncome + TmWBank + OtherCC + AMBalance
    Distribution = Binomial

Estimated Coefficients:
                   Estimate      SE       tStat       pValue  
                   ________    _______    ______    __________

    (Intercept)     0.7024       0.064    10.975    5.0407e-28
    CustAge        0.61562     0.24783    2.4841      0.012988
    ResStatus       1.3776     0.65266    2.1107      0.034799
    EmpStatus      0.88592     0.29296     3.024     0.0024946
    CustIncome     0.69836     0.21715     3.216     0.0013001
    TmWBank          1.106     0.23266    4.7538    1.9958e-06
    OtherCC         1.0933     0.52911    2.0662      0.038806
    AMBalance       1.0437     0.32292    3.2322     0.0012285


1200 observations, 1192 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 89.7, p-value = 1.42e-16

Шаг 6. Просмотр и форматирование точек карты показателей.

После подгонки логистической модели точки по умолчанию не масштабируются и поступают непосредственно из комбинации значений WOE и коэффициентов модели. Используйте displaypoints функция для суммирования точек карты показателей.

p1 = displaypoints(sc);
disp(p1)
    Predictors            Bin             Points  
    ____________    __________________    _________

    'CustAge'       '[-Inf,37)'            -0.15314
    'CustAge'       '[37,40)'             -0.062247
    'CustAge'       '[40,46)'              0.045763
    'CustAge'       '[46,58)'               0.22888
    'CustAge'       '[58,Inf]'              0.48354
    'ResStatus'     'Tenant'              -0.031302
    'ResStatus'     'Home Owner'            0.12697
    'ResStatus'     'Other'                 0.37652
    'EmpStatus'     'Unknown'             -0.076369
    'EmpStatus'     'Employed'              0.31456
    'CustIncome'    '[-Inf,29000)'         -0.45455
    'CustIncome'    '[29000,33000)'         -0.1037
    'CustIncome'    '[33000,42000)'        0.077768
    'CustIncome'    '[42000,47000)'         0.24406
    'CustIncome'    '[47000,Inf]'           0.43536
    'TmWBank'       '[-Inf,12)'            -0.18221
    'TmWBank'       '[12,45)'             -0.038279
    'TmWBank'       '[45,71)'               0.39569
    'TmWBank'       '[71,Inf]'              0.95074
    'OtherCC'       'No'                     -0.193
    'OtherCC'       'Yes'                   0.15868
    'AMBalance'     '[-Inf,558.88)'          0.3552
    'AMBalance'     '[558.88,1597.44)'    -0.026797
    'AMBalance'     '[1597.44,Inf]'        -0.21168

Использовать modifybins чтобы дать ячейкам более описательные метки.

sc = modifybins(sc,'CustAge','BinLabels',...
{'Up to 36' '37 to 39' '40 to 45' '46 to 57' '58 and up'});

sc = modifybins(sc,'CustIncome','BinLabels',...
{'Up to 28999' '29000 to 32999' '33000 to 41999' '42000 to 46999' '47000 and up'});

sc = modifybins(sc,'TmWBank','BinLabels',...
{'Up to 11' '12 to 44' '45 to 70' '71 and up'});

sc = modifybins(sc,'AMBalance','BinLabels',...
{'Up to 558.87' '558.88 to 1597.43' '1597.44 and up'});

p1 = displaypoints(sc);
disp(p1)
     Predictors             Bin             Points  
    ____________    ___________________    _________

    'CustAge'       'Up to 36'              -0.15314
    'CustAge'       '37 to 39'             -0.062247
    'CustAge'       '40 to 45'              0.045763
    'CustAge'       '46 to 57'               0.22888
    'CustAge'       '58 and up'              0.48354
    'ResStatus'     'Tenant'               -0.031302
    'ResStatus'     'Home Owner'             0.12697
    'ResStatus'     'Other'                  0.37652
    'EmpStatus'     'Unknown'              -0.076369
    'EmpStatus'     'Employed'               0.31456
    'CustIncome'    'Up to 28999'           -0.45455
    'CustIncome'    '29000 to 32999'         -0.1037
    'CustIncome'    '33000 to 41999'        0.077768
    'CustIncome'    '42000 to 46999'         0.24406
    'CustIncome'    '47000 and up'           0.43536
    'TmWBank'       'Up to 11'              -0.18221
    'TmWBank'       '12 to 44'             -0.038279
    'TmWBank'       '45 to 70'               0.39569
    'TmWBank'       '71 and up'              0.95074
    'OtherCC'       'No'                      -0.193
    'OtherCC'       'Yes'                    0.15868
    'AMBalance'     'Up to 558.87'            0.3552
    'AMBalance'     '558.88 to 1597.43'    -0.026797
    'AMBalance'     '1597.44 and up'        -0.21168

Точки масштабируются и также часто округляются. Для округления и масштабирования точек используйте formatpoints функция. Например, можно задать целевой уровень точек, соответствующий целевому уровню шансов, а также задать требуемые точки для удвоения шансов (PDO).

TargetPoints = 500;
TargetOdds = 2;
PDO = 50; % Points to double the odds

sc = formatpoints(sc,'PointsOddsAndPDO',[TargetPoints TargetOdds PDO]);
p2 = displaypoints(sc);
disp(p2)
    Predictors             Bin            Points
    ____________    ___________________    ______

    'CustAge'       'Up to 36'             53.239
    'CustAge'       '37 to 39'             59.796
    'CustAge'       '40 to 45'             67.587
    'CustAge'       '46 to 57'             80.796
    'CustAge'       '58 and up'            99.166
    'ResStatus'     'Tenant'               62.028
    'ResStatus'     'Home Owner'           73.445
    'ResStatus'     'Other'                91.446
    'EmpStatus'     'Unknown'              58.777
    'EmpStatus'     'Employed'             86.976
    'CustIncome'    'Up to 28999'          31.497
    'CustIncome'    '29000 to 32999'       56.805
    'CustIncome'    '33000 to 41999'       69.896
    'CustIncome'    '42000 to 46999'       81.891
    'CustIncome'    '47000 and up'          95.69
    'TmWBank'       'Up to 11'             51.142
    'TmWBank'       '12 to 44'             61.524
    'TmWBank'       '45 to 70'             92.829
    'TmWBank'       '71 and up'            132.87
    'OtherCC'       'No'                   50.364
    'OtherCC'       'Yes'                  75.732
    'AMBalance'     'Up to 558.87'         89.908
    'AMBalance'     '558.88 to 1597.43'    62.353
    'AMBalance'     '1597.44 and up'       49.016

Шаг 7. Оцените данные.

Используйте score функция для вычисления баллов для данных обучения. Вы также можете передать необязательный data вход в score, например, данные проверки. Баллы на предиктор для каждого клиента предоставляются в качестве необязательного выходного сигнала.

[Scores,Points] = score(sc);
disp(Scores(1:10))
disp(Points(1:10,:))
  528.2044
  554.8861
  505.2406
  564.0717
  554.8861
  586.1904
  441.8755
  515.8125
  524.4553
  508.3169

    CustAge    ResStatus    EmpStatus    CustIncome    TmWBank    OtherCC    AMBalance
    _______    _________    _________    __________    _______    _______    _________

    80.796     62.028       58.777        95.69        92.829     75.732     62.353   
    99.166     73.445       86.976        95.69        61.524     75.732     62.353   
    80.796     62.028       86.976       69.896        92.829     50.364     62.353   
    80.796     73.445       86.976        95.69        61.524     75.732     89.908   
    99.166     73.445       86.976        95.69        61.524     75.732     62.353   
    99.166     73.445       86.976        95.69        92.829     75.732     62.353   
    53.239     73.445       58.777       56.805        61.524     75.732     62.353   
    80.796     91.446       86.976        95.69        61.524     50.364     49.016   
    80.796     62.028       58.777        95.69        61.524     75.732     89.908   
    80.796     73.445       58.777        95.69        61.524     75.732     62.353   

Шаг 8. Вычислите вероятность дефолта.

Чтобы вычислить вероятность дефолта, используйте probdefault функция.

pd = probdefault(sc);

Определите вероятность быть «хорошим» и постройте график прогнозируемых шансов по сравнению с форматированными баллами. Визуально проанализируйте, что целевые точки и целевые шансы совпадают и что соотношение точек и двойных шансов (PDO) сохраняется.

ProbGood = 1-pd;
PredictedOdds = ProbGood./pd;

figure
scatter(Scores,PredictedOdds)
title('Predicted Odds vs. Score')
xlabel('Score')
ylabel('Predicted Odds')

hold on

xLimits = xlim;
yLimits = ylim;

% Target points and odds
plot([TargetPoints TargetPoints],[yLimits(1) TargetOdds],'k:')
plot([xLimits(1) TargetPoints],[TargetOdds TargetOdds],'k:')

% Target points plus PDO
plot([TargetPoints+PDO TargetPoints+PDO],[yLimits(1) 2*TargetOdds],'k:')
plot([xLimits(1) TargetPoints+PDO],[2*TargetOdds 2*TargetOdds],'k:')

% Target points minus PDO
plot([TargetPoints-PDO TargetPoints-PDO],[yLimits(1) TargetOdds/2],'k:')
plot([xLimits(1) TargetPoints-PDO],[TargetOdds/2 TargetOdds/2],'k:')

hold off

Plot for predicted odds versus score

Шаг 9. Проверка модели кредитной карты показателей с использованием статистики CAP, ROC и Колмогорова-Смирнова

creditscorecard объект поддерживает три метода проверки: профиль кумулятивной точности (CAP), рабочую характеристику приемника (ROC) и статистику Колмогорова-Смирнова (KS). Дополнительные сведения о CAP, ROC и KS см. в разделе validatemodel.

[Stats,T] = validatemodel(sc,'Plot',{'CAP','ROC','KS'});
disp(Stats)
disp(T(1:15,:))
          Measure             Value 
    ______________________    _______

    'Accuracy Ratio'          0.32225
    'Area under ROC curve'    0.66113
    'KS statistic'            0.22324
    'KS score'                 499.18

    Scores    ProbDefault    TrueBads    FalseBads    TrueGoods    FalseGoods    Sensitivity    FalseAlarm      PctObs  
    ______    ___________    ________    _________    _________    __________    ___________    __________    __________

     369.4     0.7535         0          1            802          397                   0      0.0012453     0.00083333
    377.86    0.73107         1          1            802          396           0.0025189      0.0012453      0.0016667
    379.78     0.7258         2          1            802          395           0.0050378      0.0012453         0.0025
    391.81    0.69139         3          1            802          394           0.0075567      0.0012453      0.0033333
    394.77    0.68259         3          2            801          394           0.0075567      0.0024907      0.0041667
    395.78    0.67954         4          2            801          393            0.010076      0.0024907          0.005
    396.95    0.67598         5          2            801          392            0.012594      0.0024907      0.0058333
    398.37    0.67167         6          2            801          391            0.015113      0.0024907      0.0066667
    401.26    0.66276         7          2            801          390            0.017632      0.0024907         0.0075
    403.23    0.65664         8          2            801          389            0.020151      0.0024907      0.0083333
    405.09    0.65081         8          3            800          389            0.020151       0.003736      0.0091667
    405.15    0.65062        11          5            798          386            0.027708      0.0062267       0.013333
    405.37    0.64991        11          6            797          386            0.027708       0.007472       0.014167
    406.18    0.64735        12          6            797          385            0.030227       0.007472          0.015
    407.14    0.64433        13          6            797          384            0.032746       0.007472       0.015833

CAP curve

ROC curve

K-S plot

См. также

| | | | | | | | | | | | | | | |

Связанные примеры

Подробнее

Внешние веб-сайты