Управление и контроль · 2016-05-06 · скоринговой модели c...

16
Подготовка данных для модели Историческая выборка — данные о 1500 заемщиках, которые уже воспользовались кредитом. Независимые переменные: — возраст заемщика (age); — образование заемщика (ed); — стаж заемщика на последнем месте работы (employ); — срок проживания заемщика по последнему адресу (address); — ежемесячный личный доход заемщика (income); — процент долговых обязательств заемщика от дохода (debtinc); — долг заемщика по кредитной карте банка (creddebt); — прочие долговые обязательства заемщика (othdebt). Зависимая переменная — наличие/отсутствие у клиента долгов по ранее взятому кредиту (default). Данные о 1500 заемщиках содержатся в учебном файле bankloan. csv 1 . Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R) С.В. ПетРоВ, Гродненский государственный университет имени Янки Купалы, доцент А.В. ГРуздеВ, исследовательская компания «Гевисста», директор Метод бинарной логистической регрессии позволяет исследовать зависимость дихотомических переменных от независимых пере- менных. Зависимая переменная принимает два значения (в кре- дитном скоринге — дефолт/отсутствие дефолта) и имеет биноми- альное распределение. Рассмотрим конкретный пример разработки скоринговой модели c помощью метода бинарной логистической регрессии в программе R. Модель должна дать прогноз рисков по клиентам, которые планируют воспользоваться кредитом, на основе исторических данных. 1 http://narod.ru/disk/44171562001/bankloan.csv.html 26 Риск-менеджмент в кредитной организации № 3 (07) \ 2012 Управление и контроль

Upload: others

Post on 04-Apr-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Подготовка данных для моделиИсторическая выборка — данные о 1500 заемщиках, которые уже воспользовались кредитом.

Независимые переменные:— возраст заемщика (age);— образование заемщика (ed);— стаж заемщика на последнем месте работы (employ);— срок проживания заемщика по последнему адресу (address);— ежемесячный личный доход заемщика (income);— процент долговых обязательств заемщика от дохода (debtinc);— долг заемщика по кредитной карте банка (creddebt);— прочие долговые обязательства заемщика (othdebt).Зависимая переменная — наличие/отсутствие у клиента долгов

по ранее взятому кредиту (default).Данные о 1500 заемщиках содержатся в учебном файле bankloan.

csv1.

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)

С.В. ПетРоВ, Гродненский государственный университет имени Янки Купалы, доцентА.В. ГРуздеВ, исследовательская компания «Гевисста», директор

Метод бинарной логистической регрессии позволяет исследовать зависимость дихотомических переменных от независимых пере­менных. Зависимая переменная принимает два значения (в кре­дитном скоринге — дефолт/отсутствие дефолта) и имеет биноми­альное распределение. Рассмотрим конкретный пример разработки скоринговой модели c помощью метода бинарной логистической регрессии в программе R. Модель должна дать прогноз рисков по клиентам, которые планируют воспользоваться кредитом, на основе исторических данных.

1 http://narod.ru/disk/44171562001/bankloan.csv.html

26

Риск-менеджмент в кредитной организации № 3 (07) \ 2012

Управление и контроль

Page 2: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Получаем информацию о наших данных. Приводится таблица — значения переменных для каждого из 1500 наблюдений.

Запустите программу R. Теперь мы должны прочитать наш учебный файл bankloan.csv, указав путь к нему: > read.csv2("C:/data/bankloan.csv")

Результату операции присвоим имя data, чтобы начать работу с нашими данными в R: > data <- read.csv2("C:/data/bankloan.csv")Отобразим несколько первых строк содержимого data: > head(data)

Рассмотрим переменные более подробно. Для этого выведем сводную статистику по всем столбцам таблицы: > summary(data) (см. протокол расчетов 3).

age ed employ address income debtinc creddebt othdebt default1 28 2 7 2 44 17.7 2.990592 4.797408 02 64 5 34 17 116 14.7 5.047392 12.004608 03 40 1 20 12 61 4.8 1.042368 1.885632 0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1498 25 5 0 3 16 3.2 0.288256 0.223744 01499 34 1 10 8 41 14.5 1.194945 4.750055 01500 27 1 2 2 24 5.8 0.555408 0.836592 0

Протокол расчетов 1

Данные

Протокол расчетов 2

Первые строчки данных age ed employ address income debtinc creddebt othdebt default1 28 2 7 2 44 17.7 2.990592 4.797408 02 64 5 34 17 116 14.7 5.047392 12.004608 03 40 1 20 12 61 4.8 1.042368 1.885632 04 30 1 11 3 27 34.5 1.751220 7.563780 05 25 1 2 2 30 22.4 0.759360 5.960640 16 35 1 2 9 38 10.9 1.462126 2.679874 1

Для каждой переменной приводятся значения минимума, макси­мума, среднего и квартилей: первого, второго (медианы) и треть­его.

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

27

www.reglament.net

ROC-анализ \ прогностическая способность модели \ тест Делонга

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)

Page 3: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Построение регрессионной моделиПостроим модель логистической регрессии непосредственно по исходным переменным и переменным, преобразованным во взаимно независимые. Последнее необходимо для того, чтобы выполнить одно из важнейших условий метода логистической регрессии — отсутствие мультиколлинеарности (корреляции между предикто­рами).

Одновременно постараемся как можно сильнее сократить набор переменных, входящих в модель, чтобы избежать «переподгонки» модели и увеличить ее прогностическую силу.

Протокол расчетов 3

Описательные статистики по столбцам (переменным) age ed employ address Min. :18.00 Min. :1.000 Min. : 0.000 Min. : 0.000 1st Qu.:24.00 1st Qu.:2.000 1st Qu.: 0.000 1st Qu.: 2.000 Median :31.00 Median :2.000 Median : 4.000 Median : 5.000 Mean :34.17 Mean :2.639 Mean : 6.952 Mean : 6.305 3rd Qu.:42.00 3rd Qu.:4.000 3rd Qu.:10.000 3rd Qu.: 9.000 Max. :79.00 Max. :5.000 Max. :63.000 Max. :34.000 income debtinc creddebt othdebt Min. : 12.00 Min. : 0.000 Min. : 0.0000 Min. : 0.0001st Qu.: 27.00 1st Qu.: 4.800 1st Qu.: 0.4232 1st Qu.: 1.107Median : 40.00 Median : 8.500 Median : 0.9861 Median : 2.214Mean : 59.59 Mean : 9.929 Mean : 1.9349 Mean : 3.8443rd Qu.: 64.00 3rd Qu.:13.525 3rd Qu.: 2.2022 3rd Qu.: 4.573Max. :1079.00 Max. :40.700 Max. :35.9727 Max. :63.473 default Min. :0.0000 1st Qu.:0.0000 Median :0.0000 Mean :0.3653 3rd Qu.:1.0000 Max. :1.0000

Выполним преобразование:

> for(i in 1:5) { # для переменной i от 1 до 5 assign(paste("ed",".",i,sep=""), # склеить ed."i" как имя переменной rep(0, length(data$ed))) # которой назначить вектор из 0,} # такой же длины, как столбец ed из data> ed.1[data$ed==1] <- 1 # в вектор ed.1 поместить 1 в те же места, где они в ed> ed.2[data$ed==2] <- 2 # в вектор ed.2 поместить 2 в те же места, где они в ed> ed.3[data$ed==3] <- 3 # в вектор ed.3 поместить 3 в те же места, где они в ed> ed.4[data$ed==4] <- 4 # в вектор ed.4 поместить 4 в те же места, где они в ed> ed.5[data$ed==5] <- 5 # в вектор ed.5 поместить 5 в те же места, где они в ed

28

Риск-менеджмент в кредитной организации № 3 (07) \ 2012

Управление и контроль

Page 4: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Программа сообщает нам:— данные об остатках;— регрессионные коэффициенты, их стандартные ошибки,

z­значения и уровни значимости;— информационный критерий Акайке (AIC), позволяющий судить

о качестве модели.

Протокол расчетов 4

Сводка по полной модели (исходные предикторы)

Сначала построим полную модель логистической регрессии по всем исходным предикторам:> model <- glm(default ~ address + ed.1 + ed.2 + ed.3 + ed.4 + ed.5 + age + creddebt + employ + income + othdebt, # формула модели family=binomial(logit), # вид модели data) # таблица с данными для показателей из формулыВыведем информацию о построенной нами модели:> summary(model)

Call:glm(formula = default ~ address + ed.1 + ed.2 + ed.3 + ed.4 + ed.5 + age + creddebt + employ + income + othdebt, family = binomial(logit), data = data)

Deviance Residuals: Min 1Q Median 3Q Max -3.6001 -0.8295 -0.2434 0.8794 2.7044

Coefficients: (1 not defined because of singularities) Estimate Std. Error z value Pr(>|z|) (Intercept) -0.275138 0.480264 -0.573 0.566720 address -0.043480 0.036196 -1.201 0.229661 ed.1 0.661726 0.361816 1.829 0.067414 . ed.2 0.256504 0.164574 1.559 0.119092 ed.3 0.121833 0.111880 1.089 0.276171 ed.4 0.159474 0.083029 1.921 0.054769 . ed.5 NA NA NA NA age -0.013205 0.016090 -0.821 0.411794 creddebt 0.643067 0.058146 11.060 < 2e-16 ***employ -0.244103 0.023315 -10.470 < 2e-16 ***income -0.012516 0.003225 -3.881 0.000104 ***othdebt 0.155640 0.027746 5.609 2.03e-08 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 1969.3 on 1499 degrees of freedomResidual deviance: 1406.7 on 1489 degrees of freedomAIC: 1428.7

Number of Fisher Scoring iterations: 6

29

www.reglament.net

ROC-анализ \ прогностическая способность модели \ тест Делонга

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)

Page 5: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

На качестве модели отрицательно сказывается как отсутствие значимой переменной, так и избыточное присутствие незначимых. При добавлении переменных в модель качество подгонки обычно увеличивается. Часто это может вызвать «переподгонку», и тогда практическая ценность такой модели будет невелика. Наоборот, недостаточное включение переменных в модель дает большую стан­дартную ошибку, и качество подгонки снижается. На практике точ­ная спецификация модели неизвестна, невозможно заранее опреде­лить, какие предикторы включать, а какие нет. Поэтому пользуются пошаговой регрессией. В итоге выбираются только те предикторы, которые позволят построить модель, оптимальную по информаци­онному критерию Акайке (AIC). Данный критерий учитывает влия­ние на качество подгонки модели двух вышеописанных тенденций, позволяя выбрать из некоторого множества моделей наилучшую. Поскольку речь идет о сокращении числа предикторов, построенную в итоге модель еще называют редуцированной.

На качестве модели

отрицательно сказыва-

ется как отсутствие зна-

чимой переменной, так

и избыточное присут-

ствие незначимых. При

добавлении переменных

в модель качество под-

гонки обычно увеличи-

вается. Часто это может

вызвать «перепод-

гонку», и тогда практи-

ческая ценность такой

модели будет невелика.

Построим редуцированную модель логистической регрессии, оптимальную по AIC: > model.f <- step(model)

Start: AIC=1428.75default ~ address + ed.1 + ed.2 + ed.3 + ed.4 + ed.5 + age + creddebt + employ + income + othdebt

Step: AIC=1428.75default ~ address + ed.1 + ed.2 + ed.3 + ed.4 + age + creddebt + employ + income + othdebt

Df Deviance AIC- age 1 1407.4 1427.4- ed.3 1 1408.0 1428.0- address 1 1408.2 1428.2<none> 1406.8 1428.8- ed.2 1 1409.2 1429.2- ed.1 1 1410.2 1430.2- ed.4 1 1410.5 1430.5- income 1 1426.8 1446.8- othdebt 1 1441.4 1461.4- employ 1 1553.9 1573.9- creddebt 1 1613.0 1633.0

Step: AIC=1427.43default ~ address + ed.1 + ed.2 + ed.3 + ed.4 + creddebt + employ + income + othdebt

Протокол расчетов 5

Построение редуцированной модели (исходные предикторы)

30

Риск-менеджмент в кредитной организации № 3 (07) \ 2012

Управление и контроль

Page 6: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Df Deviance AIC- ed.3 1 1408.7 1426.7<none> 1407.4 1427.4- ed.2 1 1410.1 1428.1- ed.1 1 1411.0 1429.0- ed.4 1 1411.3 1429.3- address 1 1422.7 1440.7- income 1 1427.3 1445.3- othdebt 1 1441.9 1459.9- employ 1 1572.2 1590.2- creddebt 1 1614.8 1632.8Step: AIC=1426.71default ~ address + ed.1 + ed.2 + ed.4 + creddebt + employ + income + othdebt Df Deviance AIC- ed.2 1 1410.4 1426.4<none> 1408.7 1426.7- ed.1 1 1411.3 1427.3- ed.4 1 1412.0 1428.0- address 1 1425.2 1441.2- income 1 1430.4 1446.4- othdebt 1 1443.1 1459.1- employ 1 1572.7 1588.7- creddebt 1 1615.7 1631.7Step: AIC=1426.37default ~ address + ed.1 + ed.4 + creddebt + employ + income + othdebt Df Deviance AIC- ed.1 1 1411.7 1425.7- ed.4 1 1412.2 1426.2<none> 1410.4 1426.4- address 1 1428.4 1442.4- income 1 1433.5 1447.5- othdebt 1 1444.7 1458.7- employ 1 1573.1 1587.1- creddebt 1 1617.2 1631.2Step: AIC=1425.68default ~ address + ed.4 + creddebt + employ + income + othdebt Df Deviance AIC- ed.4 1 1413.1 1425.1<none> 1411.7 1425.7- address 1 1429.1 1441.1- income 1 1436.5 1448.5- othdebt 1 1445.7 1457.7- employ 1 1575.3 1587.3- creddebt 1 1617.3 1629.3Step: AIC=1425.1default ~ address + creddebt + employ + income + othdebt Df Deviance AIC<none> 1413.1 1425.1- address 1 1430.0 1440.0- income 1 1436.5 1446.5- othdebt 1 1447.8 1457.8- employ 1 1591.7 1601.7- creddebt 1 1617.9 1627.9

31

www.reglament.net

ROC-анализ \ прогностическая способность модели \ тест Делонга

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)

Page 7: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Итак, как выполнить одно из условий метода — отсутствие муль­тиколлинеарности? Для этого необходимо использовать процедуру PCA (principal component analysis — метод главных компонент), которая заменит набор предикторов на эквивалентный им набор взаимно независимых показателей (компонент).

Трансформируем данные с помощью PCA, превратив их в набор взаимно независимых показателей:> data.pca <- prcomp(cbind(data[,-c(9,2)]), # набор данных, исключая столбцы 9 и 2 из таблицы center=FALSE, # отказываемся от вычитания средних scale.=FALSE) # не приводим среднеквадратическое к 1

Добавляем к трансформированным предикторам зависимую переменную:> data.prcomp <- data.frame(data.frame(data.pca$x), # предикторы default=data$default) # зависимая переменная

Строим полную модель логистической регрессии по трансформированным предикторам:> model.prcomp <- glm(default ~ PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7, family=binomial(logit), data.prcomp)Выведем информацию о построенной нами модели:> summary(model.prcomp)

Анализ принципиальных компонент заменяет исходный набор из семи предикторов (напомним: исключены переменные в столбцах 9 и 2, default и ed соответственно) на набор, состоящий из того же числа линейных комбинаций исходных переменных (PC1, PC2..., PC7).

Call:glm(formula = default ~ PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7, family = binomial(logit), data = data.prcomp)

Deviance Residuals: Min 1Q Median 3Q Max -3.2608 -0.7800 -0.2665 0.7792 2.5680

Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -0.512907 0.367218 -1.397 0.162493 PC1 0.009434 0.003152 2.993 0.002764 ** PC2 0.014673 0.009317 1.575 0.115277 PC3 0.244619 0.017179 14.239 < 2e-16 ***PC4 -0.067108 0.019018 -3.529 0.000418 ***

Протокол расчетов 6

Сводка по полной модели (трансформированные предикторы)

32

Риск-менеджмент в кредитной организации № 3 (07) \ 2012

Управление и контроль

Page 8: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Построим редуцированную модель логистической регрессии по трансформированным данным, оптимальную по AIC:> model.prcomp.f <- step(model.prcomp)

Теперь посмотрим на результаты прогноза модели для нашей выборки:> predict (model.prcomp.f,type="response")

Протокол расчетов 7

Построение редуцированной модели (трансформированные предикторы)

PC5 -0.143589 0.036527 -3.931 8.46e-05 ***PC6 -0.002926 0.035865 -0.082 0.934980 PC7 0.444429 0.058163 7.641 2.15e-14 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 1969.3 on 1499 degrees of freedomResidual deviance: 1375.2 on 1492 degrees of freedomAIC: 1391.2

Number of Fisher Scoring iterations: 6

Start: AIC=1391.16default ~ PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7

Df Deviance AIC- PC6 1 1375.2 1389.2<none> 1375.2 1391.2- PC2 1 1377.7 1391.7- PC1 1 1384.6 1398.6- PC4 1 1387.9 1401.9- PC5 1 1391.8 1405.8- PC7 1 1465.4 1479.4- PC3 1 1696.2 1710.2

Step: AIC=1389.16default ~ PC1 + PC2 + PC3 + PC4 + PC5 + PC7

Df Deviance AIC<none> 1375.2 1389.2- PC2 1 1378.2 1390.2- PC1 1 1385.4 1397.4- PC4 1 1388.1 1400.1- PC5 1 1392.2 1404.2- PC7 1 1466.4 1478.4- PC3 1 1744.6 1756.6

33

www.reglament.net

ROC-анализ \ прогностическая способность модели \ тест Делонга

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)

Page 9: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

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

1 2 3 4 5 6 6.295383e-01 2.734358e-03 5.483859e-03 6.780058e-01 7.598188e-01 4.505883e-01

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495 1496 1497 1498 1499 1500 4.067662e-01 2.587520e-01 4.472272e-02 3.277710e-01 1.649077e-01 3.154732e-01

Протокол расчетов 8

Спрогнозированные вероятности дефолта по наблюдениям

Протокол расчетов 9

Спрогнозированные вероятности дефолта по наблюдениям (с округлением)

Результату операции присвоим имя result, чтобы можно было работать с вычисленными вероятностями:> result <- predict(model.prcomp.f,type="response")Для удобства интерпретации можно округлить данные:> round(result, digits=5) # округляем до 5-го знака после запятой

1 2 3 4 5 60.62954 0.00273 0.00548 0.67801 0.75982 0.45059. . . . . . . . . . . . . . . . . . . . . . 1495 1496 1497 1498 1499 1500 0.40677 0.25875 0.04472 0.32777 0.16491 0.31547

ROC-анализ регрессионной модели

Построение ROC-кривых для моделейВ качестве методов оценки прогностической способности модели мы использовали ROC­анализ. Моделью является любой бинарный классификатор (в нашем примере — логит­модель). Классификатор имеет параметр — порог отсечения, варьируя который мы получаем то или иное разбиение на два класса: класс с положительными исходами и класс с отрицательными исходами. В нашем примере положительным исходом будет наличие дефолта у заемщика, отри­цательным исходом — отсутствие дефолта.

Для лучшего понимания вышесказанного приведем матрицу оши­бок классификации (таблица).

34

Риск-менеджмент в кредитной организации № 3 (07) \ 2012

Управление и контроль

Page 10: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Доля положительных результатов у «плохих» заемщиков (истинно положительных результатов) — это чувствительность модели (Sensitivity). Речь идет о способности модели правильно определять «плохих» заемщиков и минимизировать убытки, связанные с выда­чей кредита недобросовестному клиенту. Модель с высокой чув­ствительностью характеризуется большей вероятностью «ложных срабатываний».

Доля отрицательных результатов у «хороших» заемщиков (истинно отрицательных результатов) — это специфичность модели (Specificity). Здесь речь уже идет о способности модели правильно определять «хороших» заемщиков и минимизировать убытки, связанные с отка­зом в выдаче кредита добросовестному клиенту. Модель с высокой специфичностью характеризуется большей вероятностью «ложных пропусков».

На графике ROC­кривой (рис. 1) по оси ординат откладывается чувствительность (истинно положительные примеры), по оси абсцисс — либо специфичность (истинно отрицательные примеры), либо 1 минус специфичность (ложно положительные примеры).

Чем кривая вогнутее (ближе к верхнему левому углу), тем выше предсказательная способность модели. Наоборот, чем ближе она расположена к диагональной прямой (бесполезному классифика­тору), тем менее эффективна модель.

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

Таблица

Матрица ошибок классификации

Спрогнозиро-вано моделью

Фактически

дефолт Не-дефолт

дефолт TPистинно положительные(«дефолт» классифицирован как «дефолт»)

FPложно положительные («не­дефолт» классифицирован как «дефолт»)оШИБКА II РодА

Не-дефолт FNложно отрицательные («дефолт» классифицирован как «не­дефолт»)оШИБКА I РодА

TNистинно отрицательные(не­дефолт» классифицирован как «не­дефолт») Доля положительных

результатов у «плохих»

заемщиков (истинно

положительных резуль-

татов) — это чувстви-

тельность модели

(Sensitivity). Доля отри-

цательных результатов

у «хороших» заемщиков

(истинно отрицатель-

ных результатов) —

это специфичность

модели (Specificity).

35

www.reglament.net

ROC-анализ \ прогностическая способность модели \ тест Делонга

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)

Page 11: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Рисунок 1

ROC-кривая

неслыханно для традиции «командной строки»), однако дает полную уверенность в получаемых доверительных интервалах.

Обратим внимание, что перед запуском ROC­анализа необходимо установить пакет pROC.

Практически все опера-

ции, реализованные в

пакете pROC, выполня-

ются с помощью про-

цедур бутстрепа. Это

ведет к несколько боль-

шему времени выполне-

ния, однако дает полную

уверенность в получае-

мых доверительных

интервалах.

Загрузим библиотеку pROC:> library(pROC)

Рассчитываем ROC­кривую для полной модели:> roc.model <- roc(data$default, # данные из выборки predict(model, type="response"), # предсказание модели ci=TRUE) # заказываем доверительные интервалы

Рассчитываем ROC­кривую для редуцированной модели:> roc.model.f <- roc(data$default, predict(model.f, type="response"), ci=TRUE)

Рассчитываем ROC­кривую для полной модели по данным PCA:> roc.model.prcomp <- roc(data$default, predict(model.prcomp, type="response"), ci=TRUE)

Рассчитываем ROC­кривую для редуцированной модели по данным PCA:> roc.model.prcomp.f <- roc(data$default, predict(model.prcomp.f, type="response"), ci=TRUE)

Построим график ROC­кривой для полной модели:> plot.roc(roc.model)

Программа строит ROC­кривую (рис. 2) и вычисляет значение площади под кривой (Area Under Curve).

Specificity

Sen

siti

vity

0,0

0,2

0,4

0,6

0,8

1,0

1,0 0,8 0,6 0,4 0,2 0,0

36

Риск-менеджмент в кредитной организации № 3 (07) \ 2012

Управление и контроль

Page 12: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Рисунок 2

ROC-кривая для полной модели по исходным данным

В результате получаем график, приведенный на рис. 3.

Протокол расчетов 10

Площадь под кривой (для полной модели по исходным данным)Call:roc.default(response = data$default, predictor = predict(model, type = "response"), ci = TRUE)

Data: predict(model, type = "response") in 952 controls (data$default 0) < 548 cases (data$default 1).Area under the curve: 0.838495% CI: 0.8183-0.8584 (DeLong)

Построим график ROC­кривой для полной модели по данным РСА:> plot.roc(roc.model.prcomp, add=TRUE, # добавляем его на предыдущий график col="red") # красным цветом

Протокол расчетов 11

Площадь под кривой (для полной модели по трансформированным данным)Call:roc.default(response = data$default, predictor = predict(model.prcomp, type = "response"), ci = TRUE)

Data: predict(model.prcomp, type = "response") in 952 controls (data$default 0) < 548 cases (data$default 1).Area under the curve: 0.84495% CI: 0.8245-0.8635 (DeLong)

Specificity

Sen

siti

vity

0,0

0,2

0,4

0,6

0,8

1,0

1,0 0,8 0,6 0,4 0,2 0,0

37

www.reglament.net

ROC-анализ \ прогностическая способность модели \ тест Делонга

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)

Page 13: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

В результате получаем график, приведенный на рис. 4.

Построим график ROC­кривой для редуцированной модели по данным РСА:> plot.roc(roc.model.prcomp.f, add=TRUE, col="green") # добавляем зеленым цветом финальную модель

Рисунок 3

ROC-кривые для полной модели по исходным и трансформированным данным

Рисунок 4

ROC-кривые для полной модели по исходным и трансформированным данным и для редуцированной модели по трансформированным данным

—— полная модель по исходным данным —— полная модель по трансформированным данным

—— модель по исходным данным

—— полная модель по трансформированным данным—— редуцированная модель по трансформированным данным

Specificity

Sen

siti

vity

0,0

0,2

0,4

0,6

0,8

1,0

1,0 0,8 0,6 0,4 0,2 0,0

Specificity

Sen

siti

vity

0,0

0,2

0,4

0,6

0,8

1,0

1,0 0,8 0,6 0,4 0,2 0,0

38

Риск-менеджмент в кредитной организации № 3 (07) \ 2012

Управление и контроль

Page 14: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

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

Сравнительный анализ ROC-кривых для моделейНасколько достоверно отличаются ROC­кривые, построенные для моделей? Проверим это с помощью теста сравнения.

Запустим непараметрический тест Делонга для сравнения ROC­кривых. Сравниваем полную модель и редуцированную модель, которые были построены по исходным данным:> roc.test(roc.model, # первая сравниваемая модель ROC roc.model.f, # вторая сравниваемая модель ROC method="delong") # метод сравнения

Запустим непараметрический тест Делонга для сравнения ROC­кривых. Сравниваем полную модель и редуцированную модель, которые были построены по трансформированным данным:> roc.test(roc.model.prcomp, roc.model.prcomp.f, method="delong")

Протокол расчетов 12

Площадь под кривой (для редуцированной модели по трансформированным данным)

Протокол расчетов 13

Тест Делонга для сравнения ROC-кривых: полная модель и редуцированная модель (по исходным данным)

Call:roc.default(response = data$default, predictor = predict(model.prcomp.f, type = "response"), ci = TRUE)

Data: predict(model.prcomp.f, type = "response") in 952 controls (data$default 0) < 548 cases (data$default 1).Area under the curve: 0.843995% CI: 0.8244-0.8634 (DeLong)

Судя по графикам

и значениям площади

под кривой модель,

построенная на основе

принципиальных компо-

нент, показывает луч-

шие прогностические

возможности.

DeLong's test for two correlated ROC curves

data: roc.model and roc.model.f Z = 1.5087, p-value = 0.1314alternative hypothesis: true difference in AUC is not equal to 0 sample estimates:AUC of roc1 AUC of roc2 0.8383561 0.8357626

39

www.reglament.net

ROC-анализ \ прогностическая способность модели \ тест Делонга

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)

Page 15: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Протокол расчетов 14

Тест Делонга для сравнения ROC-кривых: полная модель и редуцированная модель (по трансформированным данным)

Протокол расчетов 15

Тест Делонга для сравнения ROC-кривых: редуцированная модель по исходным данным и редуцированная модель по трансформированным данным

DeLong's test for two correlated ROC curves

data: roc.model.prcomp and roc.model.prcomp.f Z = 1.1689, p-value = 0.2425alternative hypothesis: true difference in AUC is not equal to 0 sample estimates:AUC of roc1 AUC of roc2 0.8439704 0.8438957

Запустим непараметрический тест Делонга для сравнения ROC­кривых. Сравниваем редуцированную модель по исходным данным и редуцированную модель по трансформированным данным:> roc.test(roc.model.f, roc.model.prcomp.f, method="delong")

Запустим теперь бутстреп­метод сравнения ROC­кривых:> roc.test(roc.model.f, roc.model.prcomp.f, method="bootstrap")

DeLong's test for two correlated ROC curves

data: roc.model.f and roc.model.prcomp.f Z = -2.4057, p-value = 0.01614alternative hypothesis: true difference in AUC is not equal to 0 sample estimates:AUC of roc1 AUC of roc2 0.8357626 0.8438957

Как показывают тесты, разница между полными и редуцирован­ными моделями вне зависимости от того, построены ли они по исходным или по трансформированным параметрам, не является статистически значимой (см. протоколы расчетов 13, 14).

Однако когда мы сравниваем редуцированную модель, постро­енную по исходным параметрам, с редуцированной моделью, рас­считанной по трансформированным параметрам, разница между моделями становится статистически значимой (см. протоколы рас­четов 15, 16).

40

Риск-менеджмент в кредитной организации № 3 (07) \ 2012

Управление и контроль

Page 16: Управление и контроль · 2016-05-06 · скоринговой модели c помощью метода бинарной логистической регрессии

Тест Делонга и бутстреп­тест дают возможность сделать вывод, что модель на основе трансформированных данных (показатели взаимно независимы) более точная. А более низкое значение AIC дает нам основание ожидать лучшего прогноза для наблюдений, не участвовавших в обучающей выборке, вследствие отсутствия «овер­фиттинга».

Перед нами выбор: либо сократить набор показателей и «сэконо­мить» на их сборе, либо сохранить полный набор показателей кре­дитоспособности и «выбрасывать» лишнюю информацию только после ортогонализации показателей.

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

График ROC позволяет однозначно выбрать лучшую по прогно­стической способности модель. Однако перед практиком всегда стоит задача найти оптимальный порог отсечения.

Как показывают тесты,

разница между полными

и редуцированными

моделями вне зависимо-

сти от того, построены

ли они по исходным или

по трансформирован-

ным параметрам,

не является статистиче-

ски значимой.

Протокол расчетов 16

Бутстреп-тест сравнения ROC-кривых: редуцированная модель по исходным данным и редуцированная модель по трансформированным данным

Bootstrap test for two correlated ROC curves

data: roc.model.f and roc.model.prcomp.f D = -2.4429, boot.n = 2000, boot.stratified = 1, p-value = 0.01457alternative hypothesis: true difference in AUC is not equal to 0 sample estimates:AUC of roc1 AUC of roc2 0.8357626 0.8438957

41

www.reglament.net

ROC-анализ \ прогностическая способность модели \ тест Делонга

Разработка скоринговой модели с помощью логистической регрессии (на базе пакета R)