exponenta event banner

compactCreditScorecard Рабочий процесс объекта

В этом примере показан рабочий процесс для создания compactCreditScorecard объект из creditscorecard объект.

Шаг 1. Создать creditscorecard объект

Создание compactCreditScorecard объект, необходимо сначала создать creditscorecard объект. Создать creditscorecard объект с CreditCardData.mat файл и задайте аргумент пара имя-значение 'BinMissingData' кому true потому что dataMissing набор данных содержит отсутствующие данные.

load CreditCardData.mat
sc = creditscorecard(dataMissing,'IDVar','CustID','BinMissingData',true);
sc = autobinning(sc);
sc = modifybins(sc,'CustAge','MinValue',0);
sc = modifybins(sc,'CustIncome','MinValue',0);

Шаг 2. Подгонка модели логистической регрессии для creditscorecard объект

Использовать fitmodel чтобы соответствовать модели логистической регрессии с использованием данных веса доказательств (WOE).

[sc, mdl] = fitmodel(sc);
1. Adding CustIncome, Deviance = 1490.8527, Chi2Stat = 32.588614, PValue = 1.1387992e-08
2. Adding TmWBank, Deviance = 1467.1415, Chi2Stat = 23.711203, PValue = 1.1192909e-06
3. Adding AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601
4. Adding EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257
5. Adding CustAge, Deviance = 1442.8477, Chi2Stat = 4.4974731, PValue = 0.033944979
6. Adding ResStatus, Deviance = 1438.9783, Chi2Stat = 3.86941, PValue = 0.049173805
7. Adding OtherCC, Deviance = 1434.9751, Chi2Stat = 4.0031966, PValue = 0.045414057

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

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)    0.70229     0.063959     10.98    4.7498e-28
    CustAge        0.57421      0.25708    2.2335      0.025513
    ResStatus       1.3629      0.66952    2.0356       0.04179
    EmpStatus      0.88373       0.2929    3.0172      0.002551
    CustIncome     0.73535       0.2159     3.406    0.00065929
    TmWBank         1.1065      0.23267    4.7556    1.9783e-06
    OtherCC         1.0648      0.52826    2.0156      0.043841
    AMBalance       1.0446      0.32197    3.2443     0.0011775


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

Шаг 3. Создание нового набора данных для оценки creditscorecard объект

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

tdata = data(1:10, mdl.PredictorNames);
tdata.CustAge(2) = NaN;
tdata.CustAge(5) = -5;
tdata.ResStatus(1) = '<undefined>';
tdata.ResStatus(3) = 'Landlord';
tdata.EmpStatus(3) = '<undefined>';
tdata.CustIncome(4) = NaN;
tdata.EmpStatus(7) = 'Freelancer';
tdata.CustIncome(8) = -1;
tdata.CustIncome(4) = NaN;
disp(tdata);
    CustAge     ResStatus      EmpStatus     CustIncome    TmWBank    OtherCC    AMBalance
    _______    ___________    ___________    __________    _______    _______    _________

       53      <undefined>    Unknown          50000         55         Yes       1055.9  
      NaN      Home Owner     Employed         52000         25         Yes       1161.6  
       47      Landlord       <undefined>      37000         61         No        877.23  
       50      Home Owner     Employed           NaN         20         Yes       157.37  
       -5      Home Owner     Employed         53000         14         Yes       561.84  
       65      Home Owner     Employed         48000         59         Yes       968.18  
       34      Home Owner     Freelancer       32000         26         Yes       717.82  
       50      Other          Employed            -1         33         No        3041.2  
       50      Tenant         Unknown          52000         25         Yes       115.56  
       49      Home Owner     Unknown          53000         23         Yes        718.5  

Использовать displaypoints для отображения точек на предиктор. Использовать score для вычисления кредитных баллов с использованием новых данных (tdata). Затем использовать probdefault с новыми данными (tdata) для расчета вероятности дефолта. При использовании formatpoints, 'Missing' аргумент пары имя-значение имеет значение 'minpoints' потому что tdata содержит отсутствующие данные.

PointsInfo = displaypoints(sc)
PointsInfo=38×3 table
     Predictors           Bin           Points  
    _____________    ______________    _________

    {'CustAge'  }    {'[0,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
      ⋮

[Scores, Points] = score(sc, tdata)
Scores = 10×1

    1.2784
    1.0071
       NaN
       NaN
    0.9960
    1.8771
       NaN
       NaN
    1.0283
    0.8095

Points=10×7 table
     CustAge     ResStatus    EmpStatus    CustIncome     TmWBank     OtherCC     AMBalance
    _________    _________    _________    __________    _________    ________    _________

      0.22935       0.1364    -0.075948      0.45309        0.3958     0.15715    -0.017438
    0.0096749      0.12425      0.31401      0.45309     -0.033652     0.15715    -0.017438
       0.1889       0.1364          NaN     0.080697        0.3958    -0.18537    -0.017438
      0.20204      0.12425      0.31401          NaN     -0.044701     0.15715      0.35539
    0.0096749      0.12425      0.31401      0.45309     -0.044701     0.15715    -0.017438
      0.45019      0.12425      0.31401      0.45309        0.3958     0.15715    -0.017438
     -0.11095      0.12425          NaN     -0.11452     -0.033652     0.15715    -0.017438
      0.20204      0.36796      0.31401          NaN     -0.033652    -0.18537     -0.21195
      0.20204    -0.029778    -0.075948      0.45309     -0.033652     0.15715      0.35539
      0.20204      0.12425    -0.075948      0.45309     -0.033652     0.15715    -0.017438

pd = probdefault(sc, tdata)
pd = 10×1

    0.2178
    0.2676
       NaN
       NaN
    0.2697
    0.1327
       NaN
       NaN
    0.2634
    0.3080

sc = formatpoints(sc,'BasePoints',true,'Missing','minpoints','Round','finalscore','PointsOddsAndPDO',[500, 2, 50]);
PointsInfo1 = displaypoints(sc)
PointsInfo1=39×3 table
      Predictors           Bin          Points 
    ______________    ______________    _______

    {'BasePoints'}    {'BasePoints'}     500.66
    {'CustAge'   }    {'[0,33)'    }    -17.461
    {'CustAge'   }    {'[33,37)'   }     -15.24
    {'CustAge'   }    {'[37,40)'   }    -11.511
    {'CustAge'   }    {'[40,46)'   }    -1.8871
    {'CustAge'   }    {'[46,48)'   }     6.3888
    {'CustAge'   }    {'[48,51)'   }     7.3367
    {'CustAge'   }    {'[51,58)'   }     9.3068
    {'CustAge'   }    {'[58,Inf]'  }     25.238
    {'CustAge'   }    {'<missing>' }    -6.5392
    {'ResStatus' }    {'Tenant'    }    -9.3852
    {'ResStatus' }    {'Home Owner'}     1.7253
    {'ResStatus' }    {'Other'     }     19.305
    {'ResStatus' }    {'<missing>' }     2.6022
    {'EmpStatus' }    {'Unknown'   }    -12.716
    {'EmpStatus' }    {'Employed'  }     15.414
      ⋮

[Scores1, Points1] = score(sc, tdata)
Scores1 = 10×1

   542
   523
   488
   495
   522
   585
   445
   448
   524
   508

Points1=10×8 table
    BasePoints    CustAge    ResStatus    EmpStatus    CustIncome    TmWBank    OtherCC    AMBalance
    __________    _______    _________    _________    __________    _______    _______    _________

      500.66       9.3068      2.6022      -12.716       25.446       21.314     4.0988      -8.495 
      500.66      -6.5392      1.7253       15.414       25.446      -9.6646     4.0988      -8.495 
      500.66       6.3888      2.6022      -12.716      -1.4161       21.314    -20.609      -8.495 
      500.66       7.3367      1.7253       15.414      -42.148      -10.462     4.0988      18.399 
      500.66      -6.5392      1.7253       15.414       25.446      -10.462     4.0988      -8.495 
      500.66       25.238      1.7253       15.414       25.446       21.314     4.0988      -8.495 
      500.66       -15.24      1.7253      -12.716      -15.498      -9.6646     4.0988      -8.495 
      500.66       7.3367      19.305       15.414      -42.148      -9.6646    -20.609     -22.526 
      500.66       7.3367     -9.3852      -12.716       25.446      -9.6646     4.0988      18.399 
      500.66       7.3367      1.7253      -12.716       25.446      -9.6646     4.0988      -8.495 

pd1 = probdefault(sc, tdata)
pd1 = 10×1

    0.2178
    0.2676
    0.3721
    0.3488
    0.2697
    0.1327
    0.5178
    0.5077
    0.2634
    0.3080

Шаг 4. Создать compactCreditScorecard объект из creditscorecard объект

Создать compactCreditScorecard с использованием creditscorecard объект в качестве входных данных. Кроме того, можно создать compactCreditScorecard с использованием compact функция в Финансовой Toolbox™.

csc = compactCreditScorecard(sc)
csc = 
  compactCreditScorecard with properties:

              Description: ''
                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
        NumericPredictors: {'CustAge'  'CustIncome'  'TmWBank'  'AMBalance'}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
            PredictorVars: {1x7 cell}

Шаг 5. Использование связанных функций для анализа compactCreditScorecard объект

Можно проанализировать объект compactCreditScorecard с помощью displaypoints, score, и probdefault из Toolbox™ управления рисками.

PointsInfo2 = displaypoints(csc)
PointsInfo2=39×3 table
      Predictors           Bin          Points 
    ______________    ______________    _______

    {'BasePoints'}    {'BasePoints'}     500.66
    {'CustAge'   }    {'[0,33)'    }    -17.461
    {'CustAge'   }    {'[33,37)'   }     -15.24
    {'CustAge'   }    {'[37,40)'   }    -11.511
    {'CustAge'   }    {'[40,46)'   }    -1.8871
    {'CustAge'   }    {'[46,48)'   }     6.3888
    {'CustAge'   }    {'[48,51)'   }     7.3367
    {'CustAge'   }    {'[51,58)'   }     9.3068
    {'CustAge'   }    {'[58,Inf]'  }     25.238
    {'CustAge'   }    {'<missing>' }    -6.5392
    {'ResStatus' }    {'Tenant'    }    -9.3852
    {'ResStatus' }    {'Home Owner'}     1.7253
    {'ResStatus' }    {'Other'     }     19.305
    {'ResStatus' }    {'<missing>' }     2.6022
    {'EmpStatus' }    {'Unknown'   }    -12.716
    {'EmpStatus' }    {'Employed'  }     15.414
      ⋮

[Scores2, Points2] = score(csc, tdata)
Scores2 = 10×1

   542
   523
   488
   495
   522
   585
   445
   448
   524
   508

Points2=10×8 table
    BasePoints    CustAge    ResStatus    EmpStatus    CustIncome    TmWBank    OtherCC    AMBalance
    __________    _______    _________    _________    __________    _______    _______    _________

      500.66       9.3068      2.6022      -12.716       25.446       21.314     4.0988      -8.495 
      500.66      -6.5392      1.7253       15.414       25.446      -9.6646     4.0988      -8.495 
      500.66       6.3888      2.6022      -12.716      -1.4161       21.314    -20.609      -8.495 
      500.66       7.3367      1.7253       15.414      -42.148      -10.462     4.0988      18.399 
      500.66      -6.5392      1.7253       15.414       25.446      -10.462     4.0988      -8.495 
      500.66       25.238      1.7253       15.414       25.446       21.314     4.0988      -8.495 
      500.66       -15.24      1.7253      -12.716      -15.498      -9.6646     4.0988      -8.495 
      500.66       7.3367      19.305       15.414      -42.148      -9.6646    -20.609     -22.526 
      500.66       7.3367     -9.3852      -12.716       25.446      -9.6646     4.0988      18.399 
      500.66       7.3367      1.7253      -12.716       25.446      -9.6646     4.0988      -8.495 

pd2 = probdefault(csc, tdata)
pd2 = 10×1

    0.2178
    0.2676
    0.3721
    0.3488
    0.2697
    0.1327
    0.5178
    0.5077
    0.2634
    0.3080

Сравните размер creditscorecard и compactCreditScorecard объекты.

whos('dataMissing','sc','csc')
  Name                Size             Bytes  Class                     Attributes

  csc                 1x1              39598  compactCreditScorecard              
  dataMissing      1200x11             84603  table                               
  sc                  1x1             166575  creditscorecard                     

Размер compactCreditScorecard объект облегчен по сравнению с creditscorecard объект. Тем не менее, compactCreditScorecard объект не может быть изменен напрямую. Если необходимо изменить compactCreditScorecard объект, необходимо изменить начальный creditscorecard , а затем повторно верните этот объект, чтобы создать compactCreditScorecard снова объект.

См. также

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

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

Подробнее

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