Вычислите RMSE предсказанных и наблюдаемых ФУНТОВ на сгруппированных данных
вычисляет среднеквадратическую ошибку (RMSE) наблюдаемого по сравнению с предсказанными вероятностями значения по умолчанию (PD). AccMeasure
= modelAccuracy(pdModel
,data
,GroupBy
)GroupBy
требуется и может быть любой столбец в data
введите (не обязательно переменная модели). modelAccuracy
функция вычисляет наблюдаемый PD как уровень по умолчанию каждой группы и предсказанного PD как средний PD для каждой группы. modelAccuracy
сравнение поддержек с образцом модели.
[
задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.AccMeasure
,AccData
] = modelAccuracy(___,Name,Value
)
В этом примере показано, как использовать fitLifetimePDModel
соответствовать данным Logistic
модель и затем использует modelAccuracy
вычислить среднеквадратическую ошибку (RMSE) наблюдаемых вероятностей значения по умолчанию (ФУНТЫ) относительно предсказанных ФУНТОВ.
Загрузка данных
Загрузите данные о кредитном портфеле.
load RetailCreditPanelData.mat
disp(head(data))
ID ScoreGroup YOB Default Year __ __________ ___ _______ ____ 1 Low Risk 1 0 1997 1 Low Risk 2 0 1998 1 Low Risk 3 0 1999 1 Low Risk 4 0 2000 1 Low Risk 5 0 2001 1 Low Risk 6 0 2002 1 Low Risk 7 0 2003 1 Low Risk 8 0 2004
disp(head(dataMacro))
Year GDP Market ____ _____ ______ 1997 2.72 7.61 1998 3.57 26.24 1999 2.86 18.1 2000 2.43 3.19 2001 1.26 -10.51 2002 -0.59 -22.95 2003 0.63 2.78 2004 1.85 9.48
Соедините два компонента данных в один набор данных.
data = join(data,dataMacro); disp(head(data))
ID ScoreGroup YOB Default Year GDP Market __ __________ ___ _______ ____ _____ ______ 1 Low Risk 1 0 1997 2.72 7.61 1 Low Risk 2 0 1998 3.57 26.24 1 Low Risk 3 0 1999 2.86 18.1 1 Low Risk 4 0 2000 2.43 3.19 1 Low Risk 5 0 2001 1.26 -10.51 1 Low Risk 6 0 2002 -0.59 -22.95 1 Low Risk 7 0 2003 0.63 2.78 1 Low Risk 8 0 2004 1.85 9.48
Данные о разделе
Разделите данные на обучение и протестируйте разделы.
nIDs = max(data.ID); uniqueIDs = unique(data.ID); rng('default'); % For reproducibility c = cvpartition(nIDs,'HoldOut',0.4); TrainIDInd = training(c); TestIDInd = test(c); TrainDataInd = ismember(data.ID,uniqueIDs(TrainIDInd)); TestDataInd = ismember(data.ID,uniqueIDs(TestIDInd));
Создайте Logistic
Пожизненная модель PD
Используйте fitLifetimePDModel
создать Logistic
модель с помощью обучающих данных.
pdModel = fitLifetimePDModel(data(TrainDataInd,:),"Logistic",... 'AgeVar','YOB',... 'IDVar','ID',... 'LoanVars','ScoreGroup',... 'MacroVars',{'GDP','Market'},... 'ResponseVar','Default'); disp(pdModel)
Logistic with properties: ModelID: "Logistic" Description: "" Model: [1x1 classreg.regr.CompactGeneralizedLinearModel] IDVar: "ID" AgeVar: "YOB" LoanVars: "ScoreGroup" MacroVars: ["GDP" "Market"] ResponseVar: "Default"
Отобразите базовую модель.
disp(pdModel.Model)
Compact generalized linear regression model: logit(Default) ~ 1 + ScoreGroup + YOB + GDP + Market Distribution = Binomial Estimated Coefficients: Estimate SE tStat pValue __________ _________ _______ ___________ (Intercept) -2.7422 0.10136 -27.054 3.408e-161 ScoreGroup_Medium Risk -0.68968 0.037286 -18.497 2.1894e-76 ScoreGroup_Low Risk -1.2587 0.045451 -27.693 8.4736e-169 YOB -0.30894 0.013587 -22.738 1.8738e-114 GDP -0.11111 0.039673 -2.8006 0.0051008 Market -0.0083659 0.0028358 -2.9502 0.0031761 388097 observations, 388091 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 1.85e+03, p-value = 0
Вычислите точность модели
Точность модели измеряется, насколько точный предсказанные вероятности значения по умолчанию. Например, если модель предсказывает 10% фунтов для группы, группа заканчивает тем, что показала аппроксимированный 10%-й уровень по умолчанию или является возможным уровнем намного выше или ниже? В то время как дискриминация модели измеряет риск, занимающий место только, точность модели измеряет точность предсказанных уровней риска.
modelAccuracy
вычисляет среднеквадратическую ошибку (RMSE) наблюдаемых ФУНТОВ относительно предсказанных ФУНТОВ. Сгруппированная переменная требуется, и это может быть любой столбец во вводе данных (не обязательно переменная модели). modelAccuracy
функция вычисляет наблюдаемый PD как уровень по умолчанию каждой группы и предсказанного PD как средний PD для каждой группы.
DataSetChoice = "Training"; if DataSetChoice =="Training" Ind = TrainDataInd; else Ind = TestDataInd; end GroupingVar = "YOB"; AccMeasure = modelAccuracy (pdModel, данные (Ind, :), GroupingVar,'DataID', DataSetChoice); disp (AccMeasure)
RMSE _________ Logistic, grouped by YOB, Training 0.0004142
Визуализируйте точность модели с помощью modelAccuracyPlot
.
modelAccuracyPlot(pdModel,data(Ind,:),GroupingVar,'DataID',DataSetChoice);
Можно использовать больше чем одну переменную для группировки. В данном примере группа переменными YOB
и ScoreGroup
.
AccMeasure = modelAccuracy(pdModel,data(Ind,:),["YOB","ScoreGroup"],'DataID',DataSetChoice); disp(AccMeasure)
RMSE __________ Logistic, grouped by YOB, ScoreGroup, Training 0.00066239
Теперь визуализируйте эти два использования сгруппированных переменных с помощью modelAccuracyPlot
.
modelAccuracyPlot(pdModel,data(Ind,:),["YOB","ScoreGroup"],'DataID',DataSetChoice);
pdModel
— Вероятность модели по умолчаниюLogistic
возразите | Probit
объектВероятность модели по умолчанию в виде Logistic
или Probit
возразите ранее созданному использованию fitLifetimePDModel
.
Примечание
'ModelID'
свойство pdModel
объект используется в качестве идентификатора или тега для pdModel
.
Типы данных: object
data
данныеДанные в виде NumRows
- NumCols
таблица со спроектированными значениями предиктора, чтобы сделать пожизненные предсказания. Имена предиктора и типы данных должны быть сопоставимы с базовой моделью.
Типы данных: table
GroupBy
— Имя столбца в data
введите используемый, чтобы сгруппировать данные Имя столбца в data
введите используемый, чтобы сгруппировать данные в виде строки или вектора символов. GroupBy
не должно быть имя переменной модели. Для каждой группы, назначенной GroupBy
, modelAccuracy
функция вычисляет наблюдаемые уровни по умолчанию, и средние предсказанные ФУНТЫ вычисляются, чтобы измерить RMSE.
Типы данных: string
| char
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
[AccMeasure,AccData] = modelAccuracy(pdModel,data(Ind,:),'GroupBy',["YOB","ScoreGroup"],'DataID',DataSetChoice)
'DataID'
— Идентификатор набора данных""
(значение по умолчанию) | вектор символов | строкаИдентификатор набора данных в виде разделенной запятой пары, состоящей из 'DataID'
и вектор символов или строка. DataID
включен в modelAccuracy
выведите для создания отчетов о целях.
Типы данных: char |
string
'ReferencePD'
— Условные значения PD предсказаны для data
образцом модели[ ]
(значение по умолчанию) | числовой вектор'ReferenceID'
— Идентификатор для образца модели'Reference'
(значение по умолчанию) | вектор символов | строкаИдентификатор для образца модели в виде разделенной запятой пары, состоящей из 'ReferenceID'
и вектор символов или строка. ReferenceID
используется в modelAccuracy
выведите для создания отчетов о целях.
Типы данных: char |
string
AccMeasure
— Значения RMSEМера по точности, возвращенная как таблица.
Значения RMSE, возвращенные как отдельный столбец 'RMSE'
таблица. Таблица ссорится если только pdModel
точность измеряется, и она имеет две строки, если информация об образце модели дана. Имена строки AccMeasure
сообщите о модели IDs, сгруппированных переменных и ID данных.
Примечание
Значения RMSE, о которых сообщают, зависят от сгруппированной переменной для необходимого GroupBy
аргумент.
AccData
— Наблюдаемые и предсказанные значения PD для каждой группыДанные о точности, возвращенные как таблица.
Наблюдаемые и предсказанные значения PD для каждой группы, возвращенной как таблица. Наблюдаемые значения PD, о которых сообщают, соответствуют наблюдаемому уровню по умолчанию для каждой группы. Предсказанные значения PD, о которых сообщают, являются средними значениями PD, предсказанными pdModel
объект для каждой группы, и так же для образца модели. modelAccuracy
функционируйте складывает данные о PD, помещая наблюдаемые величины для всех групп сначала, затем предсказанные ФУНТЫ для pdModel
, и затем предсказанные ФУНТЫ для образца модели, если дали.
Столбец 'ModelID'
идентифицирует, какие строки соответствуют наблюдаемому PD, pdModel
, или образец модели. Таблица также имеет один столбец для каждой сгруппированной переменной, показывающей уникальные комбинации группирующихся значений. Последний столбец AccData
'PD'
столбец с данными о PD.
Model accuracy измеряет точность предсказанной вероятности значения по умолчанию (PD) значения.
Чтобы измерить точность модели, также названную калибровкой модели, необходимо сравнить предсказанные значения PD с наблюдаемыми уровнями по умолчанию. Например, если группа клиентов предсказана, чтобы иметь средний PD 5%, то является наблюдаемым уровнем по умолчанию для той группы близко к 5%?
modelAccuracy
функция требует, чтобы сгруппированная переменная вычислила средние предсказанные значения PD в каждой группе и средний наблюдаемый уровень по умолчанию также в каждой группе. modelAccuracy
использует среднеквадратическую ошибку (RMSE), чтобы измерить отклонения между наблюдаемыми и ожидаемыми значениями через группы. Например, сгруппированная переменная могла быть календарным годом, так, чтобы строки, соответствующие тому же календарному году, группировались. Затем в течение каждого года программное обеспечение вычисляет наблюдаемый уровень по умолчанию и средний предсказанный PD. modelAccuracy
функция затем применяет формулу RMSE, чтобы получить одну меру ошибки предсказания через все годы в выборке.
Предположим, что в наборе данных существуют наблюдения N, и существуют группы M G 1, …, G M. Уровень по умолчанию для группы G i
где:
D i является количеством значений по умолчанию, наблюдаемых в группе G i.
N i является количеством наблюдений в группе G i.
Средняя предсказанная вероятность PD по умолчанию i для группы G i
где PD (j) является вероятностью значения по умолчанию для наблюдения j. Другими словами, это - среднее значение предсказанных ФУНТОВ в группе G i.
Поэтому RMSE вычисляется как
RMSE, как задано, зависит от выбранной сгруппированной переменной. Например, группировка к календарному году и группировка к годам на книгах могут привести к различным значениям RSME.
Использование modelAccuracyPlot
визуализировать наблюдаемые уровни по умолчанию и предсказанные значения PD на сгруппированных данных.
[1] Baesens, Барт, Дэниел Роеш и Харальд Шойле. Аналитика кредитного риска: техники измерений, приложения и примеры в SAS. Вайли, 2016.
[2] Беллини, Тициано. МСФО 9 и моделирование кредитного риска CECL и валидация: практическое руководство с примерами работало в R и SAS. Сан-Диего, CA: Elsevier, 2019.
[3] Breeden, Джозеф. Проживание с CECL: словарь моделирования. Санта-Фе, NM: наделенный даром предвидения LLC моделей, 2018.
fitLifetimePDModel
| Logistic
| modelAccuracyPlot
| modelDiscrimination
| modelDiscriminationPlot
| predict
| predictLifetime
| Probit
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.