displaypoints

Возвращаемые точки на предиктор на интервал

Описание

пример

PointsInfo = displaypoints(sc) возвращает таблицу точек для всех интервалов всех переменных предиктора, используемых в creditscorecard объект после того, как линейная логистическая регрессионая модель подходит с помощью fitmodel к данным о весе доказательств. The PointsInfo таблица отображает информацию об имени предиктора, метках интервала и соответствующих точках на интервал.

пример

[PointsInfo,MinScore,MaxScore] = displaypoints(sc) возвращает таблицу точек для всех интервалов всех переменных предиктора, используемых в creditscorecard объект после того, как линейная логистическая регрессионая модель подобрана (fitmodel) к данным о весе доказательств. The PointsInfo таблица отображает информацию об имени предиктора, метках интервала и соответствующих точках на интервал и displaypoints. В сложение необязательный MinScore и MaxScore возвращаются значения.

пример

[PointsInfo,MinScore,MaxScore] = displaypoints(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

В этом примере показано, как использовать displaypoints после того, как модель подобрана для вычисления немасштабированных точек на интервал, для заданного предиктора в creditscorecard модель.

Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data (использование набора данных из Refaat 2011). Используйте 'IDVar' аргумент в creditscorecard функция, указывающая, что 'CustID' содержит идентификационную информацию и не должен включаться в качестве переменной предиктора.

load CreditCardData 
sc = creditscorecard(data,'IDVar','CustID');

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

sc = autobinning(sc);

Подбор линейной регрессионной модели с помощью параметров по умолчанию.

sc = 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 = 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

Отобразите неограниченные точки для предикторов, сохраненных в модели аппроксимации.

PointsInfo = displaypoints(sc)
PointsInfo=37×3 table
      Predictors            Bin            Points  
    ______________    ________________    _________

    {'CustAge'   }    {'[-Inf,33)'   }     -0.15894
    {'CustAge'   }    {'[33,37)'     }     -0.14036
    {'CustAge'   }    {'[37,40)'     }    -0.060323
    {'CustAge'   }    {'[40,46)'     }     0.046408
    {'CustAge'   }    {'[46,48)'     }      0.21445
    {'CustAge'   }    {'[48,58)'     }      0.23039
    {'CustAge'   }    {'[58,Inf]'    }        0.479
    {'CustAge'   }    {'<missing>'   }          NaN
    {'ResStatus' }    {'Tenant'      }    -0.031252
    {'ResStatus' }    {'Home Owner'  }      0.12696
    {'ResStatus' }    {'Other'       }      0.37641
    {'ResStatus' }    {'<missing>'   }          NaN
    {'EmpStatus' }    {'Unknown'     }    -0.076317
    {'EmpStatus' }    {'Employed'    }      0.31449
    {'EmpStatus' }    {'<missing>'   }          NaN
    {'CustIncome'}    {'[-Inf,29000)'}     -0.45716
      ⋮

displaypoints всегда отображает '<missing>' интервал для каждого предиктора. Значение '<missing>' интервал происходит от начального creditscorecard объект и '<missing>' интервал установлено в NaN всякий раз, когда модель карты показателей не имеет информации о том, как назначить точки отсутствующим данным.

Чтобы сконфигурировать точки для '<missing>' интервал, необходимо использовать начальный creditscorecard объект. Для предикторов, которые имеют отсутствующие значения в наборе обучающих данных, точки для '<missing>' интервал оцениваются из данных, если 'BinMissingData' для аргумента пары "имя-значение" задано значение true использование creditscorecard. Когда 'BinMissingData' параметру задано значение false, или когда данные не содержат отсутствующих значений в наборе обучающих данных, используйте 'Missing' аргумент пары "имя-значение" в formatpoints чтобы указать, как назначить точки отсутствующим данным.

Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data с отсутствующими значениями.

load CreditCardData.mat 
head(dataMissing,5)
ans=5×11 table
    CustID    CustAge    TmAtAddress     ResStatus     EmpStatus    CustIncome    TmWBank    OtherCC    AMBalance    UtilRate    status
    ______    _______    ___________    ___________    _________    __________    _______    _______    _________    ________    ______

      1          53          62         <undefined>    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         NaN          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   

fprintf('Number of rows: %d\n',height(dataMissing))
Number of rows: 1200
fprintf('Number of missing values CustAge: %d\n',sum(ismissing(dataMissing.CustAge)))
Number of missing values CustAge: 30
fprintf('Number of missing values ResStatus: %d\n',sum(ismissing(dataMissing.ResStatus)))
Number of missing values ResStatus: 40

Использование creditscorecard с аргументом имя-значение 'BinMissingData' установлено на true для ввода отсутствующих числовых или категорийных данных в отдельное интервал. Применить автоматическое раскладывание.

sc = creditscorecard(dataMissing,'IDVar','CustID','BinMissingData',true);
sc = autobinning(sc);

disp(sc)
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x6 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 1
                    IDVar: 'CustID'
            PredictorVars: {1x9 cell}
                     Data: [1200x11 table]

Отобразите и постройте график информации о интервале для числовых данных для 'CustAge' который включает отсутствующие данные в отдельном интервале, маркированном <missing>.

[bi,cp] = bininfo(sc,'CustAge');
disp(bi)
         Bin         Good    Bad     Odds       WOE       InfoValue 
    _____________    ____    ___    ______    ________    __________

    {'[-Inf,33)'}     69      52    1.3269    -0.42156      0.018993
    {'[33,37)'  }     63      45       1.4    -0.36795      0.012839
    {'[37,40)'  }     72      47    1.5319     -0.2779     0.0079824
    {'[40,46)'  }    172      89    1.9326    -0.04556     0.0004549
    {'[46,48)'  }     59      25      2.36     0.15424     0.0016199
    {'[48,51)'  }     99      41    2.4146     0.17713     0.0035449
    {'[51,58)'  }    157      62    2.5323     0.22469     0.0088407
    {'[58,Inf]' }     93      25      3.72     0.60931      0.032198
    {'<missing>'}     19      11    1.7273    -0.15787    0.00063885
    {'Totals'   }    803     397    2.0227         NaN      0.087112
plotbins(sc,'CustAge')

Figure contains an axes. The axes with title CustAge contains 3 objects of type bar, line. These objects represent Good, Bad.

Отображение и построение графика информации о интервале для категориальных данных для 'ResStatus' который включает отсутствующие данные в отдельном интервале, маркированном <missing>.

[bi,cg] = bininfo(sc,'ResStatus');
disp(bi)
         Bin          Good    Bad     Odds        WOE       InfoValue 
    ______________    ____    ___    ______    _________    __________

    {'Tenant'    }    296     161    1.8385    -0.095463     0.0035249
    {'Home Owner'}    352     171    2.0585     0.017549    0.00013382
    {'Other'     }    128      52    2.4615      0.19637     0.0055808
    {'<missing>' }     27      13    2.0769     0.026469    2.3248e-05
    {'Totals'    }    803     397    2.0227          NaN     0.0092627
plotbins(sc,'ResStatus')

Figure contains an axes. The axes with title ResStatus contains 3 objects of type bar, line. These objects represent Good, Bad.

Для 'CustAge' и 'ResStatus' предикторы, отсутствуют данные (NaNs и <undefined>) в обучающих данных и процессе раскладывания оценивает значение ГОРЕ -0.15787 и 0.026469 соответственно для отсутствующих данных в этих предикторах, как показано выше.

Использование fitmodel для подбора логистической регрессионной модели с использованием данных о весе доказательств (WOE). fitmodel внутренне преобразует все переменные предиктора в значения WOE, используя интервалы, найденные в процессе автоматического раскладывания. fitmodel затем подходит для логистической регрессионной модели с помощью пошагового метода (по умолчанию). Для предикторов, которые имеют отсутствующие данные, существует явное <missing> интервал с соответствующим значением WOE, вычисленным из данных. При использовании fitmodelсоответствующее значение ГОРЕ для < отсутствующего > интервала применяется при выполнении преобразования ГОРЕ.

[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

Отобразите неограниченные точки для предикторов, сохраненных в модели аппроксимации (для использования масштабных точек formatpoints).

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

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

Заметьте, что точки для <missing> интервал для CustAge и ResStatus показаны явно. Эти точки вычисляются из значения WOE для < отсутствующего > интервала и коэффициентов логистической модели.

Для предикторов, которые не имеют отсутствующих данных в наборе обучающих данных, нет явных <missing> интервал, и по умолчанию для точек задано значение NaN для недостающих данных, и они приводят к счету NaN при запуске score. Для предикторов, которые не имеют явных <missing> интервал, используйте аргумент имя-значение 'Missing' в formatpoints чтобы указать, как отсутствующие данные должны обрабатываться в целях оценки.

В этом примере показано, как использовать formatpoints после того, как модель подгоняется для форматирования масштабированных точек, и затем используйте displaypoints отображение масштабированных точек на интервал, для заданного предиктора в creditscorecard модель.

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

Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data (использование набора данных из Refaat 2011). Используйте 'IDVar' аргумент в creditscorecard функция, указывающая, что 'CustID' содержит идентификационную информацию и не должен включаться в качестве переменной предиктора.

load CreditCardData 
sc = creditscorecard(data,'IDVar','CustID');

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

sc = autobinning(sc);

Подбор линейной регрессионной модели с помощью параметров по умолчанию.

sc = 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 = 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

Используйте formatpoints функция для масштабирования, обеспечивая 'Worst' и 'Best' значения баллов. Приведенная ниже область значений является общим счетом области значений.

sc = formatpoints(sc,'WorstAndBestScores',[300 850]);

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

[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
      Predictors            Bin           Points
    ______________    ________________    ______

    {'CustAge'   }    {'[-Inf,33)'   }    46.396
    {'CustAge'   }    {'[33,37)'     }    48.727
    {'CustAge'   }    {'[37,40)'     }    58.772
    {'CustAge'   }    {'[40,46)'     }    72.167
    {'CustAge'   }    {'[46,48)'     }    93.256
    {'CustAge'   }    {'[48,58)'     }    95.256
    {'CustAge'   }    {'[58,Inf]'    }    126.46
    {'CustAge'   }    {'<missing>'   }       NaN
    {'ResStatus' }    {'Tenant'      }    62.421
    {'ResStatus' }    {'Home Owner'  }    82.276
    {'ResStatus' }    {'Other'       }    113.58
    {'ResStatus' }    {'<missing>'   }       NaN
    {'EmpStatus' }    {'Unknown'     }    56.765
    {'EmpStatus' }    {'Employed'    }    105.81
    {'EmpStatus' }    {'<missing>'   }       NaN
    {'CustIncome'}    {'[-Inf,29000)'}    8.9706
      ⋮

MinScore = 300
MaxScore = 850.0000

Заметьте, что, как и ожидалось, значения MinScore и MaxScore соответствуют наихудшим и наилучшим счетам.

В этом примере показано, как использовать displaypoints после того, как модель подобрана, чтобы отделить базовые точки от остальных точек, назначенных каждой переменной предиктора. Область аргумента пары "имя-значение" 'BasePoints' в formatpoints функция является логической, которая служит этой цели. По умолчанию базовые точки распределяются по всем переменным в карте показателей.

Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data (использование набора данных из Refaat 2011). Используйте 'IDVar' аргумент в creditscorecard функция, указывающая, что 'CustID' содержит идентификационную информацию и не должен включаться в качестве переменной предиктора.

load CreditCardData 
sc = creditscorecard(data,'IDVar','CustID');

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

sc = autobinning(sc);

Подбор линейной регрессионной модели с помощью параметров по умолчанию.

sc = 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 = 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

Используйте formatpoints функция для разделения базовых точек путем предоставления 'BasePoints' аргумент пары "имя-значение".

sc = formatpoints(sc,'BasePoints',true);

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

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

    {'BasePoints'}    {'BasePoints'}      0.70239
    {'CustAge'   }    {'[-Inf,33)' }     -0.25928
    {'CustAge'   }    {'[33,37)'   }     -0.24071
    {'CustAge'   }    {'[37,40)'   }     -0.16066
    {'CustAge'   }    {'[40,46)'   }    -0.053933
    {'CustAge'   }    {'[46,48)'   }      0.11411
    {'CustAge'   }    {'[48,58)'   }      0.13005
    {'CustAge'   }    {'[58,Inf]'  }      0.37866
    {'CustAge'   }    {'<missing>' }          NaN
    {'ResStatus' }    {'Tenant'    }     -0.13159
    {'ResStatus' }    {'Home Owner'}     0.026616
    {'ResStatus' }    {'Other'     }      0.27607
    {'ResStatus' }    {'<missing>' }          NaN
    {'EmpStatus' }    {'Unknown'   }     -0.17666
    {'EmpStatus' }    {'Employed'  }      0.21415
    {'EmpStatus' }    {'<missing>' }          NaN
      ⋮

В этом примере показано, как использовать displaypoints после установки модели и modifybins функция используется для предоставления пользовательских меток интервала для числового предиктора.

Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data (использование набора данных из Refaat 2011). Используйте 'IDVar' аргумент в creditscorecard функция, указывающая, что 'CustID' содержит идентификационную информацию и не должен включаться в качестве переменной предиктора.

load CreditCardData 
sc = creditscorecard(data,'IDVar','CustID');

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

sc = autobinning(sc);

Подбор линейной регрессионной модели с помощью параметров по умолчанию.

sc = 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 = 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

Используйте displaypoints функция для отображения информации о точке.

[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
      Predictors            Bin            Points  
    ______________    ________________    _________

    {'CustAge'   }    {'[-Inf,33)'   }     -0.15894
    {'CustAge'   }    {'[33,37)'     }     -0.14036
    {'CustAge'   }    {'[37,40)'     }    -0.060323
    {'CustAge'   }    {'[40,46)'     }     0.046408
    {'CustAge'   }    {'[46,48)'     }      0.21445
    {'CustAge'   }    {'[48,58)'     }      0.23039
    {'CustAge'   }    {'[58,Inf]'    }        0.479
    {'CustAge'   }    {'<missing>'   }          NaN
    {'ResStatus' }    {'Tenant'      }    -0.031252
    {'ResStatus' }    {'Home Owner'  }      0.12696
    {'ResStatus' }    {'Other'       }      0.37641
    {'ResStatus' }    {'<missing>'   }          NaN
    {'EmpStatus' }    {'Unknown'     }    -0.076317
    {'EmpStatus' }    {'Employed'    }      0.31449
    {'EmpStatus' }    {'<missing>'   }          NaN
    {'CustIncome'}    {'[-Inf,29000)'}     -0.45716
      ⋮

MinScore = -1.3100
MaxScore = 3.0726

Используйте modifybins функция для задания пользовательских меток интервала для 'CustAge' так, чтобы области значений были описаны на естественном языке.

labels = {'Up to 32','33 to 36','37 to 39','40 to 45','46 to 47','48 to 57','At least 58'};
sc = modifybins(sc,'CustAge','BinLabels',labels);

Повторный запуск displaypoints для проверки обновленных меток интервала.

[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
      Predictors            Bin            Points  
    ______________    ________________    _________

    {'CustAge'   }    {'Up to 32'    }     -0.15894
    {'CustAge'   }    {'33 to 36'    }     -0.14036
    {'CustAge'   }    {'37 to 39'    }    -0.060323
    {'CustAge'   }    {'40 to 45'    }     0.046408
    {'CustAge'   }    {'46 to 47'    }      0.21445
    {'CustAge'   }    {'48 to 57'    }      0.23039
    {'CustAge'   }    {'At least 58' }        0.479
    {'CustAge'   }    {'<missing>'   }          NaN
    {'ResStatus' }    {'Tenant'      }    -0.031252
    {'ResStatus' }    {'Home Owner'  }      0.12696
    {'ResStatus' }    {'Other'       }      0.37641
    {'ResStatus' }    {'<missing>'   }          NaN
    {'EmpStatus' }    {'Unknown'     }    -0.076317
    {'EmpStatus' }    {'Employed'    }      0.31449
    {'EmpStatus' }    {'<missing>'   }          NaN
    {'CustIncome'}    {'[-Inf,29000)'}     -0.45716
      ⋮

MinScore = -1.3100
MaxScore = 3.0726

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

Создайте карту показателей.

load CreditCardData.mat
sc = creditscorecard(data,'IDVar','CustID');
sc = autobinning(sc);
sc = 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 = 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

Вычислите точки карты показателей и MinPts и MaxPts счета.

sc = formatpoints(sc,'PointsOddsAndPDO',[500 2 50]);
[PointsTable,MinPts,MaxPts] = displaypoints(sc);
PtsRange = MaxPts-MinPts;
disp(PointsTable(1:10,:)); 
     Predictors           Bin          Points
    _____________    ______________    ______

    {'CustAge'  }    {'[-Inf,33)' }    52.821
    {'CustAge'  }    {'[33,37)'   }    54.161
    {'CustAge'  }    {'[37,40)'   }    59.934
    {'CustAge'  }    {'[40,46)'   }    67.633
    {'CustAge'  }    {'[46,48)'   }    79.755
    {'CustAge'  }    {'[48,58)'   }    80.905
    {'CustAge'  }    {'[58,Inf]'  }    98.838
    {'CustAge'  }    {'<missing>' }       NaN
    {'ResStatus'}    {'Tenant'    }    62.031
    {'ResStatus'}    {'Home Owner'}    73.444
 fprintf('Min points: %g, Max points: %g\n',MinPts,MaxPts); 
Min points: 355.505, Max points: 671.64

Вычислите веса предиктора.

Predictor = unique(PointsTable.Predictors,'stable');
NumPred = length(Predictor);
Weight = zeros(NumPred,1);
for ii=1:NumPred
   Ind = cellfun(@(x)strcmpi(Predictor{ii},x),PointsTable.Predictors);
   MaxPtsPred = max(PointsTable.Points(Ind));
   MinPtsPred = min(PointsTable.Points(Ind));
   Weight(ii) = 100*(MaxPtsPred-MinPtsPred)/PtsRange;
end

PredictorWeights = table(Predictor,Weight);
PredictorWeights(end+1,:) = PredictorWeights(end,:);
PredictorWeights.Predictor{end} = 'Total';
PredictorWeights.Weight(end) = sum(Weight);
disp(PredictorWeights)
      Predictor       Weight
    ______________    ______

    {'CustAge'   }    14.556
    {'ResStatus' }     9.302
    {'EmpStatus' }    8.9174
    {'CustIncome'}    20.401
    {'TmWBank'   }    25.884
    {'OtherCC'   }    7.9885
    {'AMBalance' }    12.951
    {'Total'     }       100

Веса определяются как область значений точек для предиктора, разделенный на область значений точек для карты показателей.

Как создать creditscorecard объект с использованием CreditCardData.mat файл, загрузка data (использование набора данных из Refaat 2011). Использование dataMissing набор данных, установите 'BinMissingData' индикатор для true.

load CreditCardData.mat 
sc = creditscorecard(dataMissing,'BinMissingData',true); 

Использование autobinning с creditscorecard объект.

sc = autobinning(sc);

binning map или правила для категориальных данных суммируются в таблице «группировка категорий», возвращаемой как необязательный выход. По умолчанию каждая категория помещается в отдельный интервал. Вот информация для предиктора ResStatus.

[bi,cg] = bininfo(sc,'ResStatus')
bi=5×6 table
         Bin          Good    Bad     Odds        WOE       InfoValue 
    ______________    ____    ___    ______    _________    __________

    {'Tenant'    }    296     161    1.8385    -0.095463     0.0035249
    {'Home Owner'}    352     171    2.0585     0.017549    0.00013382
    {'Other'     }    128      52    2.4615      0.19637     0.0055808
    {'<missing>' }     27      13    2.0769     0.026469    2.3248e-05
    {'Totals'    }    803     397    2.0227          NaN     0.0092627

cg=3×2 table
       Category       BinNumber
    ______________    _________

    {'Tenant'    }        1    
    {'Home Owner'}        2    
    {'Other'     }        3    

К категориям групп 'Tenant' и 'Other', измените таблицу группировок категорий cg, так что номер интервала для 'Other' совпадает с номером интервала для 'Tenant'. Затем используйте modifybins для обновления creditscorecard объект.

cg.BinNumber(3) = 2; 
sc = modifybins(sc,'ResStatus','Catg',cg); 

Отображение обновленной информации о интервале с помощью bininfo. Обратите внимание, что метки интервалов были обновлены и что информация о принадлежности интервалов содержится в группе категорий cg.

[bi,cg] = bininfo(sc,'ResStatus')
bi=4×6 table
         Bin         Good    Bad     Odds        WOE       InfoValue 
    _____________    ____    ___    ______    _________    __________

    {'Group1'   }    296     161    1.8385    -0.095463     0.0035249
    {'Group2'   }    480     223    2.1525     0.062196     0.0022419
    {'<missing>'}     27      13    2.0769     0.026469    2.3248e-05
    {'Totals'   }    803     397    2.0227          NaN       0.00579

cg=3×2 table
       Category       BinNumber
    ______________    _________

    {'Tenant'    }        1    
    {'Home Owner'}        2    
    {'Other'     }        2    

Использование formatpoints с 'Missing' аргумент пары "имя-значение", указывающий, что назначены отсутствующие данные 'maxpoints'.

sc = formatpoints(sc,'BasePoints',true,'Missing','maxpoints','WorstAndBest',[300 800]); 

Использование fitmodel для подгонки модели.

sc = fitmodel(sc,'VariableSelection','fullmodel','Display','Off'); 

Затем используйте displaypoints(Набор Risk Management Toolbox) с creditscorecard объект, чтобы вернуть таблицу точек для всех интервалов всех переменных предиктора, используемых в compactCreditScorecard объект. Путем установки displaypoints (Risk Management Toolbox) аргумент пары "имя-значение" для 'ShowCategoricalMembers' на trueотображаются все представители, содержащиеся в каждой отдельной группе.

[PointsInfo,MinScore,MaxScore] = displaypoints(sc,'ShowCategoricalMembers',true)
PointsInfo=51×3 table
      Predictors            Bin          Points 
    _______________    ______________    _______

    {'BasePoints' }    {'BasePoints'}     535.25
    {'CustID'     }    {'[-Inf,121)'}     12.085
    {'CustID'     }    {'[121,241)' }     5.4738
    {'CustID'     }    {'[241,1081)'}    -1.4061
    {'CustID'     }    {'[1081,Inf]'}    -7.2217
    {'CustID'     }    {'<missing>' }     12.085
    {'CustAge'    }    {'[-Inf,33)' }    -25.973
    {'CustAge'    }    {'[33,37)'   }     -22.67
    {'CustAge'    }    {'[37,40)'   }    -17.122
    {'CustAge'    }    {'[40,46)'   }    -2.8071
    {'CustAge'    }    {'[46,48)'   }     9.5034
    {'CustAge'    }    {'[48,51)'   }     10.913
    {'CustAge'    }    {'[51,58)'   }     13.844
    {'CustAge'    }    {'[58,Inf]'  }     37.541
    {'CustAge'    }    {'<missing>' }    -9.7271
    {'TmAtAddress'}    {'[-Inf,23)' }    -9.3683
      ⋮

MinScore = 300
MaxScore = 800.0000

Входные параметры

свернуть все

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: [PointsInfo,MinScore,MaxScore] = displaypoints(sc,‘ShowCategoricalMembers’,true)

Индикатор отображения меток интервалов категорий, которые были сгруппированы вместе, заданный как разделенная разделенными запятой парами, состоящая из 'ShowCategoricalMembers' и логический скаляр со значением true или false.

По умолчанию, когда 'ShowCategoricalMembers' является falseметки интервала отображаются следующим Group1, Group2, …, Groupn, или если метки интервала были изменены в creditscorecardзатем отображаются определяемые пользователем имена меток интервалов.

Если 'ShowCategoricalMembers' является trueотображаются все представители, содержащиеся в каждой отдельной группе.

Типы данных: logical

Выходные аргументы

свернуть все

Одна строка на интервал, на предиктор, с соответствующими точками, возвращается как таблица. Для примера:

ПредсказателиИнтервалТочки
Predictor_1Bin_11Points_11
Predictor_1Bin_12Points_12
Predictor_1Bin_13Points_13
 ......
Predictor_1'<missing>'NaN (По умолчанию)
Predictor_2Bin_21Points_21
Predictor_2Bin_22Points_22
Predictor_2Bin_23Points_23
 ......
Predictor_2'<missing>'NaN (По умолчанию)
Predictor_<reservedrangesplaceholder0 >Bin_<reservedrangesplaceholder1><reservedrangesplaceholder0 >Points_<reservedrangesplaceholder1><reservedrangesplaceholder0 >
 ......
Predictor_<reservedrangesplaceholder0 >'<missing>'NaN (По умолчанию)

displaypoints всегда отображает '<missing>' интервал для каждого предиктора. Значение '<missing>' интервал происходит от начального creditscorecard объект и '<missing>' интервал установлено в NaN всякий раз, когда модель карты показателей не имеет информации о том, как назначить точки отсутствующим данным.

Чтобы сконфигурировать точки для '<missing>' интервал, необходимо использовать начальный creditscorecard объект. Для предикторов, которые имеют отсутствующие значения в наборе обучающих данных, точки для '<missing>' интервал оцениваются из данных, если 'BinMissingData' аргумент пары "имя-значение" для установлен в true использование creditscorecard. Когда 'BinMissingData' параметру задано значение false, или когда данные не содержат отсутствующих значений в наборе обучающих данных, используйте 'Missing' аргумент пары "имя-значение" в formatpoints чтобы указать, как назначить точки отсутствующим данным.

Другая опция - использовать fillmissing задать замену значений «fill» для предикторов на NaN или <undefined> значение. Если вы используете fillmissing, затем displaypoints '<missing>' строка имеет те же точки, что и интервал, сопоставленный со значением заливки.

Когда базовые точки сообщаются отдельно (см. formatpoints), первая строка возвращенного PointsInfo таблица содержит базовые точки.

Минимально возможный суммарный счет, возвращенный в виде скаляра.

Примечание

Минимальный счет является самым низким возможным общим счетом в математическом смысле, независимо от того, означает ли низкий счет высокий риск или низкий риск.

Максимально возможный суммарный счет, возвращенный как скаляр.

Примечание

Максимальный счет является максимально возможным общим счетом в математическом смысле, независимо от того, означает ли высокий счет высокий риск или низкий риск.

Алгоритмы

Точки для j предиктора и i интервала по умолчанию заданы как

Points_ji = (Shift + Slope*b0)/p + Slope*(bj*WOEj(i))
где bj - коэффициент модели предиктора j, p - количество предикторов в модели, а j WOE (i) - значение веса доказательства (WOE) для i-го интервала, соответствующего j-ому предиктору модели. Shift и Slope являются масштабирующими константами.

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

Base Points = Shift + Slope*b0,
и точки для j -го предиктора, i -й строки заданы как
Points_ji = Slope*(bj*WOEj(i))).

По умолчанию базовые точки не сообщаются отдельно.

Минимальные и максимальные счета:

MinScore = Shift + Slope*b0 + min(Slope*b1*WOE1) + ... +min(Slope*bp*WOEp)),
MaxScore = Shift + Slope*b0 + max(Slope*b1*WOE1) + ... +max(Slope*bp*WOEp)).

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

Ссылки

[1] Anderson, R. The Credit Scoring Toolkit. Oxford University Press, 2007.

[2] Refaat, M. Кредитные карты оценки риска: Разработка и реализация с использованием SAS. lulu.com, 2011.

Введенный в R2014b