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

В этом примере показано, как создать кредитную карту показателей с помощью Binning Explorer приложения. Используйте Binning Explorer для интервала данных, построения графика информации о привязанных данных и экспорта creditscorecard объект. Затем используйте creditscorecard объект с функциями из Financial 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: На вкладке Apps, в разделе Computational Finance, щелкните значок приложения. Также можно ввести binningExplorer в командной строке MATLAB. Для получения дополнительной информации о запуске Binning Explorer из командной строки смотрите Пуск из командной строки MATLAB Использование данных или Объект Acisting creditscorecard.

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

Import Data dialog box

В группе Step 1 выберите data.

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

Примечание

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

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

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

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

Интервалы строятся и отображаются для каждого предиктора. Нажимая, чтобы выбрать отдельный график предиктора из панели Overview, детали для этого графика предиктора отображаются в основной панели и в Bin Information и Predictor Information панелях в нижней части приложения.

Predictor plots display after binning

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

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

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

Bin information display

Для числовых данных отображается та же статистика. Щелкните на CustIncome графике. Bin Information обновляется информацией о CustIncome.

Bin information for CustIncome predictor

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

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

Plot for CustAge predictor

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

Plot for CustAge predictor with two bins selected

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

Use Edges text box to merge selected bins for CustAge predictor

Нажмите кнопку Merge, чтобы завершить объединение интервалов 1 и 2. График предиктора CustAge обновляется для информации о новом интервале, и детали в Bin Information и Predictor Information панелях также обновляются.

Plot for CustAge predictor with the two selected bins merged

Затем объедините интервалы 4 и 5, потому что они также имеют аналогичные ГОРЕ.

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

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

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

  • Для CustIncome объедините интервалы 3, 4 и 5.

  • Для TmWBank объедините интервалы 2 и 3.

  • Для AMBalance объедините интервалы 2 и 3.

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

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

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

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

Используйте fitmodel функция для подгонки логистической регрессионной модели к данным ГОРЕ. 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. Просмотр и формат точек карты результатов.

После подбора кривой логистической модели точки по умолчанию не масштабируются и получаются непосредственно из комбинации значений ГОРЕ и коэффициентов модели. Используйте 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 функция. Например, можно задать целевой уровень точек, соответствующий целевому уровню шансов, а также установить необходимые точки на значения double-the-ods (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 и Колмогоров-Смирнов

The 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

См. также

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

Похожие примеры

Подробнее о

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