Вычислите 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.