Используйте методы вывода отклонения с протоколами результатов кредита

Этот пример демонстрирует твердое сокращение и нечеткие подходы увеличения, чтобы отклонить вывод.

Вывод отклонения является методом для улучшения качества протокола результатов кредита путем слияния данных из отклоненных заявок на кредит. Смещение может закончиться, если модель протокола результатов кредита создана только на, принимает и не составляет заявления, отклоненные из-за прошлых отказов для кредита или неизвестного состояния не по умолчанию. При помощи метода вывода отклонения можно вывести производительность отклонений и включать их в модель протокола результатов кредита, чтобы исправить это смещение.

Чтобы разработать протокол результатов кредита, необходимо идентифицировать каждого заемщика или как "хорошего" или как "плохого". Для отклоненных заявлений информация, чтобы идентифицировать заемщиков как "хороших" или "плохих" не доступна. Вы не можете сказать наверняка, к которому группируются, заемщик принадлежал бы, имел, они предоставили ссуду. Метод вывода отклонения позволяет вам выводить, был ли заемщик, вероятно, "хорошим" или "плохим" включением вам включить отклоненные данные приложения в набор данных, который вы используете, чтобы создать протокол результатов кредита.

Когда схема показывает, вывод отклонения требует, чтобы вы определили порог (предел), ниже которого отклонения рассматриваются как "плохие". Этот пример демонстрирует твердое сокращение и нечеткие подходы увеличения, чтобы вычислить этот порог.

Следующая схема показывает типичный процесс для того, чтобы создать модель протокола результатов. Красное поле представляет процесс вывода отклонения, где производительность ранее отклоненных заявлений оценивается и затем используется, чтобы переобучить модель протокола результатов кредита.

Рабочий процесс для процесса вывода отклонения:

  1. Создайте логистическую регрессию, основанную на модели на принятии.

  2. Выведите класс отклонений с помощью одного из методов вывода отклонения.

  3. Объедините принятие и отклонения в один набор данных.

  4. Создайте новый протокол результатов, интервал расширенный набор данных, и создайте новую логистическую модель.

  5. Подтвердите итоговую модель.

Существует два типа вывода отклонения:

  • Простое присвоение не использует процесс вывода отклонения и или игнорирует отклонения или присваивает все отклонения "плохому" классу.

  • Увеличение использует процесс вывода отклонения, чтобы обработать отклонения на основе модели выигрыша путем объединения исходного набора данных с данными об отклонениях.

Этот пример фокусируется на методах увеличения. Самые популярные методы для увеличения:

  • Простое увеличение Используя значение сокращения, этот метод присваивает отклонения с баллами ниже и выше значения к "плохому" или "хорошему" классу, соответственно. Значение сокращения должно отразить, что уровень bads в отклонениях выше, чем в принятом населении. После того, как класс ("хороший" или "плохой") присвоен отклонениям, целое население принимает, и отклонения приспособлены в модели протокола результатов кредита и затем выиграны. Этот подход также называется методом твердого сокращения.

  • Нечеткое увеличение — Этот метод баллы отклонения при помощи протокола результатов кредита, основанного на модели на принятии. Эти отклонения дублированы в два наблюдения, где каждый определен вероятность того, чтобы быть "хорошим" или "плохим", и затем агрегирован к принятию. Новая модель протокола результатов кредита затем оценивается на новом наборе данных.

В этом примере представлены следующие рабочие процессы:

Оба из этих подходов используют правила раскладывания, сохраненные из исходного протокола результатов, и применяют их к новому протоколу результатов, который основан на объединенном наборе данных.

Примечание: наборы данных в этом примере являются технически наблюдениями через дверь (TTD). Таким образом, принимает, и отклонения смешиваются и дифференцируются на основе их принимать или отклонить решение. Набор данных отклонений затем создается из наблюдений TTD.

Рабочий процесс метода твердого сокращения

Метод твердого сокращения использует предопределенное значение сокращения и присваивает отклонения с баллами и выше значения к "плохому" или "хорошему" классу, соответственно. Значение сокращения должно отразить, что уровень "bads" в отклонениях выше, чем в принятии. После того, как каждое отклонение присвоено класс ("хороший" или "плохой"), целое население принимает, и отклонения приспособлен в модели протокола результатов кредита, и затем что модель выиграна и подтверждена. Этот подход также называется простым методом увеличения. Основная проблема в этом подходе выбирает значение сокращения.

Во-первых, визуализируйте данные для, принимает и отклоняет для выбранного предиктора.

% Load the data
load CreditCardData.mat
load RejectsCreditCardData.mat

Predictor = "CustAge";
фигура;
h1 = гистограмма (данные. (Предиктор));
содержание on
h2 = гистограмма (Отклонения. (Предиктор));
h1. Нормализация = 'probability';
h2. Нормализация = 'probability';
заголовок (Предиктор)
xlabel'Predictor Values')
yLabel 'Normalized Count by Probability')
содержание off
легенда'Accepts','Rejects'},'Location','best');

Создайте creditscorecard Объект для принятия и счета данные

Используйте creditscorecard создать creditscorecard возразите, что можно использовать для интервала, подгонки, и затем выигрывать принятие.

scHC = creditscorecard(data,'IDVar','CustID');
scHC = autobinning(scHC);
scHC = fitmodel(scHC);
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
ScoreRange = [300 850];
scHC = formatpoints(scHC,'WorstAndBestScores',ScoreRange);
ScoresAccepts = score(scHC);

Выберите плохой уровень и выиграйте отклонения

Отклонение "хорошо" или "плохо" на основе заданного значения плохого уровня (BR). В общем случае промышленность рейтинга кредитоспособности принимает, что отклонения имеют BR 75%. Это - субъективная оценка, которая обычно основана на неизвестном значении. В этом примере можно настроить значение BR.

CreditCardData.mat входные данные имеют 'status' как ответ. Примите тот GoodLabel (что означает не по умолчанию), класс, который имеет более высокое количество в ответе. В этом примере, GoodLabel 0, что означает, что значение по умолчанию только происходит, когда ответ равен 1.

% Define the BR
BR = 0.75;

% Sort rejects by ascending CustID order
N = высота (Отклонения);
Отклонения = sortrows (Отклонения);
ScoresRejects = счет (scHC, Отклонения);

% Find the lowest quantile based on the BR and set the corresponding observations to bad
BadLabel = setdiff (уникальный (scHC.Data. (scHC.ResponseVar)), scHC.GoodLabel);
ScoreThres = квантиль (ScoresRejects, BR);
ResponseRejects = нули (N, 1);
ResponseRejects (ScoresRejects <ScoreThres) = BadLabel;
ResponseRejects (ScoresRejects> = ScoreThres) = scHC.GoodLabel;

% Create the rejects table
RejectsTable = [Таблица Rejects (ResponseRejects,'VariableNames', {ScHC.ResponseVar})];

Объединение принимает и отклоняет в новый набор данных, счет, и подтвердить

Чтобы проводить более точное сравнение между принятием и объединенным набором данных, используйте те же правила раскладывания от начальной буквы, принимает протокол результатов кредита, и скопируйте их в creditscorecard объект основывался на объединенном наборе данных. Это гарантирует, что присвоение раскладывания не влияет на более позднее сравнение двух моделей протокола результатов кредита. Кроме того, можно визуализировать, как отклонения распространены в области значений данных каждого предиктора.

% Create the final combined scorecard
CombinedData = [data(:,2:end);RejectsTable(:,2:end)];
scNewHC = creditscorecard(CombinedData,'GoodLabel',0);

% Bin using the same binning rules as the base scorecard
Predictors = scHC.PredictorVars;
Edges = struct();
for i = 1 : length(Predictors)
    Pred = Predictors{i};
    [bi,cp] = bininfo(scHC,Pred);
    if ismember(Pred,scHC.NumericPredictors)
        scNewHC = modifybins(scNewHC,Pred,'CutPoints',cp);
    else
        scNewHC = modifybins(scNewHC,Pred,'CatGrouping',cp);
    end
    Edges.(Pred) = bi.Bin(1:end-1);
end

% Visualize the rejects distribution in each bin
bd1 = bindata(scHC,data);
bd2 = bindata(scHC,CombinedData);
Predictor = "CustAge";
фигура;
панель (категориальный (Ребра. (Предиктор)), histcounts (bd1. (Предиктор)))
содержание on
панель (категориальный (Ребра. (Предиктор)), histcounts (bd2. (Предиктор)),'FaceAlpha',0.25)
содержание off
xlabel'Bins')
yLabel 'Counts')
легенда'Accepts Only','Combined'},'Location','best')

Сравните начальный creditscorecard объект (scHC) к новому creditscorecard объект (scNewHC) для распределения "товаров" и "bads" для выбранного предиктора.

plotbins(scHC,Predictor);

plotbins(scNewHC,Predictor);

Подбирайте модель логистической регрессии для creditscorecard объект scNewHC и затем выиграйте scNewHC.

scNewHC = fitmodel(scNewHC);
1. Adding CustIncome, Deviance = 1693.9882, Chi2Stat = 114.39516, PValue = 1.0676416e-26
2. Adding TmWBank, Deviance = 1650.6615, Chi2Stat = 43.326628, PValue = 4.6323638e-11
3. Adding AMBalance, Deviance = 1623.0668, Chi2Stat = 27.594773, PValue = 1.4958244e-07
4. Adding EmpStatus, Deviance = 1603.603, Chi2Stat = 19.463733, PValue = 1.0252802e-05
5. Adding CustAge, Deviance = 1592.3467, Chi2Stat = 11.256272, PValue = 0.00079354409
6. Adding ResStatus, Deviance = 1582.0086, Chi2Stat = 10.338134, PValue = 0.0013030966
7. Adding OtherCC, Deviance = 1572.1, Chi2Stat = 9.9086387, PValue = 0.0016450476

Generalized linear regression model:
    status ~ [Linear formula with 8 terms in 7 predictors]
    Distribution = Binomial

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)    0.48115     0.061301     7.849    4.1925e-15
    CustAge        0.50857      0.14449    3.5197    0.00043207
    ResStatus        1.151      0.34773    3.3101    0.00093262
    EmpStatus      0.78527      0.17826    4.4051    1.0572e-05
    CustIncome     0.68743      0.12372    5.5563    2.7555e-08
    TmWBank         1.0001      0.16731    5.9779    2.2607e-09
    OtherCC        0.97659      0.30956    3.1548     0.0016062
    AMBalance      0.91563      0.19073    4.8006    1.5819e-06


1361 observations, 1353 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 236, p-value = 2.29e-47
scNewHC  = formatpoints(scNewHC,'WorstAndBestScores',ScoreRange);
Scores = score(scNewHC);

% Visualize the score distribution
histogram(ScoresAccepts)
hold on
histogram(Scores,'FaceAlpha',0.25)
hold off
ylabel('Counts')
xlabel('Scores')
title(sprintf('Score Distribution for a BR = %.2f',BR))
legend({'Accepts Only','Combined'},'Location','best')

Подтвердите модель на объединенном наборе данных

Перед валидацией необходимо настроить набор данных. Чтобы настроить набор данных, вы можете также:

  • Подтвердите принятие для обоих протоколов результатов

  • Подтвердите объединенный набор данных для обоих протоколов результатов

% Get statistics for the accepts
StatsA1 = validatemodel(scHC);
StatsA2 = validatemodel(scNewHC,data);

% Get the statistics for the combined data set
StatsC1 = validatemodel(scHC,CombinedData);
StatsC2 = validatemodel(scNewHC);

s1 = table(StatsA1.Value,StatsA2.Value,'VariableNames',{'BaseScorecard','CombinedScorecard'});
s2 = table(StatsC1.Value,StatsC2.Value,'VariableNames',{'BaseScorecard','CombinedScorecard'});
Stats = table(StatsA1.Measure,s1,s2,'VariableNames',{'Measure','Accepts','Combined'}); 
disp(Stats)
            Measure                          Accepts                               Combined             
                                BaseScorecard    CombinedScorecard    BaseScorecard    CombinedScorecard
    ________________________    __________________________________    __________________________________

    {'Accuracy Ratio'      }       0.32258            0.31695            0.47022            0.46565     
    {'Area under ROC curve'}       0.66129            0.65848            0.73511            0.73282     
    {'KS statistic'        }        0.2246            0.22946            0.34528            0.33681     
    {'KS score'            }        550.72             576.57             512.44             542.85     

Нечеткий рабочий процесс метода увеличения

Нечеткий метод увеличения запускается путем создания протокола результатов с помощью принятия только, и затем эта модель протокола результатов используется, чтобы выиграть отклонения. В отличие от метода твердого сокращения, нечеткий подход увеличения не присваивает "хорошие" или "плохие" классы. Скорее каждое отклонение дублировано в два наблюдения и присвоило взвешенное "хорошее" или "плохое" значение, на основе вероятности того, чтобы быть "хорошим" или "плохим". Взвешенные отклонения затем добавляются к, принимает набор данных, и объединенный набор данных используется, чтобы создать протокол результатов, который является затем подходящим и подтвержден.

Во-первых, визуализируйте данные для, принимает и отклоняет для выбранного предиктора.

% Load the data
load CreditCardData.mat
load RejectsCreditCardData.mat

Predictor = "CustAge";
фигура;
h1 = гистограмма (данные. (Предиктор));
содержание on
h2 = гистограмма (Отклонения. (Предиктор));
h1. Нормализация = 'probability';
h2. Нормализация = 'probability';
заголовок (Предиктор)
xlabel'Predictor values')
yLabel 'Normalized Count by Probability')
содержание off
легенда'Accepts','Rejects'},'Location','best');

Создайте creditscorecard Объект для принятия и счета данные

Используйте creditscorecard создать creditscorecard объект для принятия, которое вы можете интервал, подгонка, и затем выигрывать.

scFA = creditscorecard(data,'IDVar','CustID');
scFA = autobinning(scFA);
scFA = fitmodel(scFA);
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
ScoreRange = [300 850];
scFA = formatpoints(scFA,'WorstAndBestScores',ScoreRange);
ScoresAccepts = score(scFA);

Выиграйте отклонения и создайте объединенный набор данных

% Load the rejects dataset and score the observations
load RejectsCreditCardData.mat

ScoresRejects = score(scFA,Rejects);

% Compute the probabilities of default and use as weights
pdRejects = probdefault(scFA,Rejects);

% Assign bad status to pd (proability of default) and good status to 1-pd weights
BadLabel = setdiff(unique(scFA.Data.(scFA.ResponseVar)),scFA.GoodLabel);
Weights  = zeros(2*length(pdRejects),1);
Response = zeros(2*length(pdRejects),1);
Weights(1:2:end)  = pdRejects;
Response(1:2:end) = BadLabel;
Weights(2:2:end)  = 1-pdRejects;
Response(2:2:end) = scFA.GoodLabel;

% Rearrange the response so that each two rows correspond to the same
% observation from rejects
RejectsTable = repelem(Rejects(:,2:end),2,1);
RejectsTable = addvars(RejectsTable,Weights,Response,'NewVariableNames',...
    {'Weights',scFA.ResponseVar});

% Combine accepts and rejects
AcceptsData = addvars(data,ones(height(data),1),'Before',scFA.ResponseVar,...
    'NewVariableNames','Weights');
CombinedData = [AcceptsData(:,2:end);RejectsTable];

Объединение принимает и отклоняет в новый набор данных, счет, и подтвердить

Чтобы проводить более точное сравнение между принятием и объединенным набором данных, используйте те же правила раскладывания от начальной буквы, принимает протокол результатов кредита, и скопируйте их в creditscorecard объект основывался на объединенном наборе данных. Это гарантирует, что присвоения раскладывания не влияют на более позднее сравнение двух моделей протокола результатов кредита. Кроме того, можно визуализировать, как отклонения распространены в области значений данных каждого предиктора.

scNewFA = creditscorecard(CombinedData,'GoodLabel',0,'WeightsVar','Weights');

% Bin using the same binning rules as the base scorecard
Predictors = scFA.PredictorVars;
Edges = struct();
for i = 1 : length(Predictors)
    Pred = Predictors{i};
    [bi,cp] = bininfo(scFA,Pred);
    if ismember(Pred,scFA.NumericPredictors)
        scNewFA = modifybins(scNewFA,Pred,'CutPoints',cp);
    else
        scNewFA = modifybins(scNewFA,Pred,'CatGrouping',cp);
    end
    Edges.(Pred) = bi.Bin(1:end-1);
end

% Visualize the rejects distribution in each bin
bd1 = bindata(scFA,data);
bd2 = bindata(scFA,CombinedData);
Predictor = "CustAge";
фигура;
панель (категориальный (Ребра. (Предиктор)), histcounts (bd1. (Предиктор)))
содержание on
панель (категориальный (Ребра. (Предиктор)), histcounts (bd2. (Предиктор)),'FaceAlpha',0.25)
содержание off
xlabel'Bins')
yLabel 'Counts')
легенда'Accepts Only','Combined'},'Location','best')

Сравните начальный creditscorecard объект (scFA) к новому creditscorecard объект (scNewFA) для распределения "товаров" и "bads" для выбранного предиктора.

plotbins(scFA,Predictor);

plotbins(scNewFA,Predictor);

Подбирайте модель логистической регрессии для creditscorecard объект scNewFA и затем выиграйте scNewFA.

scNewFA = fitmodel(scNewFA);
1. Adding CustIncome, Deviance = 1711.3102, Chi2Stat = 54.160619, PValue = 1.8475277e-13
2. Adding TmWBank, Deviance = 1682.5353, Chi2Stat = 28.774866, PValue = 8.1299351e-08
3. Adding AMBalance, Deviance = 1668.2956, Chi2Stat = 14.239727, PValue = 0.00016093686
4. Adding EmpStatus, Deviance = 1658.2944, Chi2Stat = 10.001236, PValue = 0.001564352
5. Adding CustAge, Deviance = 1652.3976, Chi2Stat = 5.8967925, PValue = 0.015168483
6. Adding OtherCC, Deviance = 1647.7632, Chi2Stat = 4.6344022, PValue = 0.031337059
7. Adding ResStatus, Deviance = 1642.8332, Chi2Stat = 4.9299914, PValue = 0.026394448

Generalized linear regression model:
    status ~ [Linear formula with 8 terms in 7 predictors]
    Distribution = Binomial

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)    0.60838     0.059654    10.198    2.0142e-24
    CustAge        0.50755      0.20092    2.5262      0.011532
    ResStatus        1.082      0.48919    2.2119      0.026971
    EmpStatus      0.74776      0.23526    3.1784     0.0014809
    CustIncome      0.6372      0.17519    3.6371    0.00027567
    TmWBank        0.96561      0.19664    4.9106    9.0815e-07
    OtherCC        0.90699      0.40476    2.2408      0.025039
    AMBalance      0.87642      0.25404    3.4499    0.00056077


1522 observations, 1514 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 123, p-value = 2.16e-23
scNewFA  = formatpoints(scNewFA,'WorstAndBestScores',ScoreRange);
Scores = score(scNewFA);
pd = probdefault(scNewFA);

% Visualize the score distribution
histogram(ScoresAccepts)
hold on
histogram(Scores,'FaceAlpha',0.25)
hold off
ylabel('Counts')
xlabel('Scores')
title('Score Distribution Using Fuzzy Augmentation')
legend({'Accepts Only','Combined'},'Location','best')

Подтвердите модель на объединенном наборе данных

Перед валидацией необходимо настроить набор данных. Чтобы настроить набор данных, вы можете также:

  • Подтвердите принятие для обоих протоколов результатов

  • Подтвердите объединенный набор данных для обоих протоколов результатов

% Get statistics for the accepts
data.Weights = ones(height(data),1);
StatsA1 = validatemodel(scFA);
StatsA2 = validatemodel(scNewFA,data);
% Get the statistics for the combined data set
StatsC1 = validatemodel(scFA,CombinedData);
StatsC2 = validatemodel(scNewFA);

s1 = table(StatsA1.Value,StatsA2.Value,'VariableNames',{'BaseScorecard','CombinedScorecard'});
s2 = table(StatsC1.Value,StatsC2.Value,'VariableNames',{'BaseScorecard','CombinedScorecard'});
Stats = table(StatsA1.Measure,s1,s2,'VariableNames',{'Measure','Accepts','Combined'}); 
disp(Stats)
            Measure                          Accepts                               Combined             
                                BaseScorecard    CombinedScorecard    BaseScorecard    CombinedScorecard
    ________________________    __________________________________    __________________________________

    {'Accuracy Ratio'      }       0.32258            0.32088            0.29419            0.35143     
    {'Area under ROC curve'}       0.66129            0.66044            0.64709            0.67571     
    {'KS statistic'        }        0.2246            0.22799            0.22596            0.25629     
    {'KS score'            }        550.72             554.84             512.44             520.99     

Сводные данные

Этот пример демонстрирует, как использовать процесс вывода отклонения в рамках рабочего процесса протокола результатов кредита. Твердое Сокращение и Нечеткие методы Увеличения показывают, как вы можете интервал данные, подобрать модель, интегрировать отклонения с принятием в новую модель протокола результатов кредита, и затем подтвердить новую модель протокола результатов кредита.

Нет никакого ясного заключения, для которого из этих приближается вывод отклонения, является лучшим. Этот пример предназначается, чтобы проиллюстрировать, как использовать функции creditscorecard чтобы реализовать два различных отклонения заключают подходы.

Ссылки

  1. Baesesn, B., Д. Реш и Х. Шеул. Аналитика кредитного риска: техники измерений, приложения и примеры в SAS. Вайли и ряд бизнеса SAS, 2016.

  2. Refaat, M. Протоколы результатов кредитного риска: разработка и реализация Используя SAS. lulu.com, 2011.