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 функция в Financial 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 от Risk Management 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              39609  compactCreditScorecard              
  dataMissing      1200x11             84604  table                               
  sc                  1x1             166585  creditscorecard                     

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