fitmodel

Подбирайте модель логистической регрессии к данным о Весе доказательства (WOE)

Описание

пример

sc = fitmodel(sc) подбирает модель логистической регрессии к данным о Весе доказательства (WOE) и хранит имена предиктора модели и соответствующие коэффициенты в creditscorecard объект.

fitmodel внутренне преобразовывает все переменные предикторы в значения WOE, с помощью интервалов, найденных с автоматическим или ручным процессом раскладывания. Переменная отклика сопоставлена так, чтобы "Хороший" был 1, и "Плохо" 0. Это подразумевает, что выше (немасштабированные) баллы соответствуют лучше (менее опасным) индивидуумам (меньшая вероятность значения по умолчанию).

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

пример

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

fitmodel внутренне преобразовывает все переменные предикторы в значения WOE, с помощью интервалов, найденных с автоматическим или ручным процессом раскладывания. Переменная отклика сопоставлена так, чтобы "Хороший" был 1, и "Плохо" 0. Это подразумевает, что выше (немасштабированные) баллы соответствуют лучше (менее опасным) индивидуумам (меньшая вероятность значения по умолчанию).

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

пример

[sc,mdl] = fitmodel(___,Name,Value) подбирает модель логистической регрессии к данным о Весе доказательства (WOE) с помощью дополнительных аргументов пары "имя-значение" и хранит имена предиктора модели и соответствующие коэффициенты в creditscorecard объект. Используя аргументы пары "имя-значение", можно выбрать который Обобщенная линейная Модель соответствовать данным. fitmodel возвращает обновленный creditscorecard возразите и GeneralizedLinearModel объект, содержащий подобранную модель.

Примеры

свернуть все

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

load CreditCardData
sc = creditscorecard(data,'IDVar','CustID')
sc = 
  creditscorecard with properties:

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

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

sc = autobinning(sc)
sc = 
  creditscorecard with properties:

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

Используйте fitmodel подбирать модель логистической регрессии использование данных о Весе доказательства (WOE). fitmodel внутренне преобразовывает все переменные предикторы в значения WOE, с помощью интервалов, найденных с автоматическим процессом раскладывания. fitmodel затем подбирает модель логистической регрессии использование пошагового метода (по умолчанию).

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

Используйте CreditCardData.mat файл, чтобы загрузить данные (dataWeights) это содержит столбец (RowWeights) для весов (использующий набор данных от Refaat 2011).

load CreditCardData

Создайте creditscorecard объект с помощью дополнительного аргумента пары "имя-значение" для 'WeightsVar'.

sc = creditscorecard(dataWeights,'IDVar','CustID','WeightsVar','RowWeights')
sc = 
  creditscorecard with properties:

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

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

sc = autobinning(sc)
sc = 
  creditscorecard with properties:

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

Используйте fitmodel подбирать модель логистической регрессии использование данных о Весе доказательства (WOE). fitmodel внутренне преобразовывает все переменные предикторы в значения WOE, с помощью интервалов, найденных с автоматическим процессом раскладывания. fitmodel затем подбирает модель логистической регрессии использование пошагового метода (по умолчанию). Когда дополнительный аргумент пары "имя-значение" 'WeightsVar' используется, чтобы задать наблюдение (выборка) веса, mdl выведите использует взвешенные количества с stepwiseglm и fitglm.

[sc,mdl] = fitmodel(sc);
1. Adding CustIncome, Deviance = 764.3187, Chi2Stat = 15.81927, PValue = 6.968927e-05
2. Adding TmWBank, Deviance = 751.0215, Chi2Stat = 13.29726, PValue = 0.0002657942
3. Adding AMBalance, Deviance = 743.7581, Chi2Stat = 7.263384, PValue = 0.007037455

Generalized linear regression model:
    logit(status) ~ 1 + CustIncome + TmWBank + AMBalance
    Distribution = Binomial

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)    0.70642     0.088702     7.964    1.6653e-15
    CustIncome      1.0268      0.25758    3.9862    6.7132e-05
    TmWBank         1.0973      0.31294    3.5063     0.0004543
    AMBalance       1.0039      0.37576    2.6717     0.0075464


1200 observations, 1196 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 36.4, p-value = 6.22e-08

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

load CreditCardData
sc = creditscorecard(data,'IDVar','CustID')
sc = 
  creditscorecard with properties:

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

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

sc = autobinning(sc,'Algorithm','EqualFrequency')
sc = 
  creditscorecard with properties:

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

Используйте fitmodel подбирать модель логистической регрессии использование данных о Весе доказательства (WOE). fitmodel внутренне преобразовывает все переменные предикторы в значения WOE, с помощью интервалов, найденных с автоматическим процессом раскладывания. Установите VariableSelection аргумент пары "имя-значение" FullModel указывать, что все предикторы должны быть включены в подбиравшую модель логистической регрессии.

sc = fitmodel(sc,'VariableSelection','FullModel');
Generalized linear regression model:
    status ~ [Linear formula with 10 terms in 9 predictors]
    Distribution = Binomial

Estimated Coefficients:
                   Estimate       SE        tStat      pValue  
                   ________    ________    _______    _________

    (Intercept)    0.70262     0.063862     11.002    3.734e-28
    CustAge        0.57683      0.27064     2.1313     0.033062
    TmAtAddress     1.0653      0.55233     1.9287     0.053762
    ResStatus       1.4189      0.65162     2.1775     0.029441
    EmpStatus      0.89916      0.29217     3.0776     0.002087
    CustIncome     0.77506      0.21942     3.5323    0.0004119
    TmWBank         1.0826      0.26583     4.0727    4.648e-05
    OtherCC         1.1354      0.52827     2.1493     0.031612
    AMBalance      0.99315      0.32642     3.0425    0.0023459
    UtilRate       0.16723      0.55745    0.29999      0.76419


1200 observations, 1190 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 85.6, p-value = 1.25e-14

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

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: {1×11 cell}
        NumericPredictors: {'CustAge'  'TmAtAddress'  'CustIncome'  'TmWBank'  'AMBalance'  'UtilRate'}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 1
                    IDVar: 'CustID'
            PredictorVars: {1×9 cell}
                     Data: [1200×11 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')

Отобразите и постройте информацию об интервале для категориальных данных для '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')

Используйте fitmodel подбирать модель логистической регрессии использование данных о Весе доказательства (WOE). fitmodel внутренне преобразовывает все переменные предикторы в значения WOE, с помощью интервалов, найденных с автоматическим процессом раскладывания. fitmodel затем подбирает модель логистической регрессии использование пошагового метода (по умолчанию). Для предикторов, которые имеют недостающие данные, существует явный <missing> интервал, с соответствующим значением WOE, вычисленным из данных. При использовании fitmodel, соответствующее значение WOE для <недостающего> интервала применяется при выполнении преобразования WOE. Например, отсутствующее значение для потребительского возраста (CustAge) заменяется -0.15787 который является значением WOE для <missing> интервал для CustAge предиктор. Однако, когда 'BinMissingData' является ложным, отсутствующее значение для CustAge остается как отсутствующий (NaN) при применении преобразования 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:
    logit(status) ~ 1 + CustAge + ResStatus + EmpStatus + CustIncome + TmWBank + OtherCC + AMBalance
    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

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

свернуть все

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

Аргументы name-value

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

Пример: [sc,mdl] = fitmodel(sc,'VariableSelection','FullModel')

Переменные предикторы для подбора кривой creditscorecard объект в виде разделенной запятой пары, состоящей из 'PredictorVars' и массив ячеек из символьных векторов. Когда обеспечено, creditscorecard свойство объекта PredictorsVars обновляется. Обратите внимание на то, что порядок предикторов в исходном наборе данных осуществляется, независимо от порядка в который 'PredictorVars' обеспечивается. Если не, если, предикторы раньше создавали creditscorecard объект (при помощи creditscorecard) используются.

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

Метод выбора переменной, чтобы подбирать модель логистической регрессии в виде разделенной запятой пары, состоящей из 'VariableSelection' и вектор символов со значениями 'Stepwise' или 'FullModel':

  • Stepwise — Использует пошаговый метод выбора, который вызывает функцию Statistics and Machine Learning Toolbox™ stepwiseglm. Только переменные в PredictorVars может потенциально стать частью модели и использует StartingModel аргумент пары "имя-значение", чтобы выбрать стартовую модель.

  • FullModel — Подбирает модель со всеми переменными предикторами в PredictorVars аргумент пары "имя-значение" и вызовы fitglm.

Примечание

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

Переменная отклика сопоставлена так, чтобы “Хороший” был 1 и “Плохо” 0.

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

Первоначальная модель для Stepwise метод выбора переменной в виде разделенной запятой пары, состоящей из 'StartingModel' и вектор символов со значениями 'Constant' или 'Linear'. Эта опция определяет первоначальную модель (постоянный или линейный), что Statistics and Machine Learning Toolbox функционирует stepwiseglm startsWith.

  • Constant — Начинает пошаговый метод с пустого (постоянный только) модель.

  • Linear — Запускает пошаговый метод с полного (все предикторы в) модель.

Примечание

StartingModel используется только для Stepwise опция VariableSelection и не оказывает влияния для FullModel опция VariableSelection.

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

Индикатор к информации о модели дисплея в командной строке в виде разделенной запятой пары, состоящей из 'Display' и вектор символов со значением 'On' или 'Off'.

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

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

свернуть все

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

Подбиравшая логистическая модель, повторно настроенная как объект типа GeneralizedLinearModel содержа подобранную модель. Для получения дополнительной информации о GeneralizedLinearModel возразите, смотрите GeneralizedLinearModel.

Примечание

При создании creditscorecard объект с creditscorecard, если дополнительный аргумент пары "имя-значение" WeightsVar использовался, чтобы задать наблюдение (выборка) веса, затем mdl использует взвешенные количества с stepwiseglm и fitglm.

Больше о

свернуть все

Используя fitmodel с Весами

Когда веса наблюдения обеспечиваются в протоколе результатов кредита data, веса используются, чтобы калибровать коэффициенты модели.

Базовая функциональность Statistics and Machine Learning Toolbox для stepwiseglm и fitglm веса наблюдения поддержек. Веса также влияют на логистическую модель через значения WOE. Преобразование WOE применяется ко всем предикторам прежде, чем подбирать логистическую модель. Веса наблюдения непосредственно влияют на значения WOE. Для получения дополнительной информации смотрите Используя bininfo с Весами и Моделированием Протокола результатов Кредита Используя Веса Наблюдения.

Поэтому точки протокола результатов кредита и итоговый счет зависят от весов наблюдения и через логистические коэффициенты модели и через значения WOE.

Модели

Модель логистической регрессии используется в creditscorecard объект.

Для модели вероятность того, чтобы быть “Плохим” задана как: ProbBad = exp(-s) / (1 + exp(-s)).

Ссылки

[1] Андерсон, R. Инструментарий рейтинга кредитоспособности. Издательство Оксфордского университета, 2007.

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

Введенный в R2014b