Оцените вероятности перехода от данных о кредитных рейтингах
[transMat,sampleTotals,idTotals] = transprob(data)
[transMat,sampleTotals,idTotals] = transprob(___,Name,Value)
[
создает матрицу перехода из исторических данных кредитных рейтингов.transMat
,sampleTotals
,idTotals
] = transprob(data
)
[
добавляют дополнительные аргументы пары "имя-значение". transMat
,sampleTotals
,idTotals
] = transprob(___,Name,Value
)
Используя историческую таблицу кредитного рейтинга, когда входные данные от Data_TransProb.mat
отображают первые десять строк и вычисляют матрицу перехода:
load Data_TransProb
data(1:10,:)
ans=10×3 table
ID Date Rating
__________ _____________ ______
'00010283' '10-Nov-1984' 'CCC'
'00010283' '12-May-1986' 'B'
'00010283' '29-Jun-1988' 'CCC'
'00010283' '12-Dec-1991' 'D'
'00013326' '09-Feb-1985' 'A'
'00013326' '24-Feb-1994' 'AA'
'00013326' '10-Nov-2000' 'BBB'
'00014413' '23-Dec-1982' 'B'
'00014413' '20-Apr-1988' 'BB'
'00014413' '16-Jan-1998' 'B'
% Estimate transition probabilities with default settings
transMat = transprob(data)
transMat = 8×8
93.1170 5.8428 0.8232 0.1763 0.0376 0.0012 0.0001 0.0017
1.6166 93.1518 4.3632 0.6602 0.1626 0.0055 0.0004 0.0396
0.1237 2.9003 92.2197 4.0756 0.5365 0.0661 0.0028 0.0753
0.0236 0.2312 5.0059 90.1846 3.7979 0.4733 0.0642 0.2193
0.0216 0.1134 0.6357 5.7960 88.9866 3.4497 0.2919 0.7050
0.0010 0.0062 0.1081 0.8697 7.3366 86.7215 2.5169 2.4399
0.0002 0.0011 0.0120 0.2582 1.4294 4.2898 81.2927 12.7167
0 0 0 0 0 0 0 100.0000
Используя исторические табличные входные данные кредитного рейтинга от Data_TransProb.mat
, вычислите матрицу перехода использование алгоритма cohort
:
%Estimate transition probabilities with 'cohort' algorithm transMatCoh = transprob(data,'algorithm','cohort')
transMatCoh = 8×8
93.1345 5.9335 0.7456 0.1553 0.0311 0 0 0
1.7359 92.9198 4.5446 0.6046 0.1560 0 0 0.0390
0.1268 2.9716 91.9913 4.3124 0.4711 0.0544 0 0.0725
0.0210 0.3785 5.0683 89.7792 4.0379 0.4627 0.0421 0.2103
0.0221 0.1105 0.6851 6.2320 88.3757 3.6464 0.2873 0.6409
0 0 0.0761 0.7230 7.9909 86.1872 2.7397 2.2831
0 0 0 0.3094 1.8561 4.5630 80.8971 12.3743
0 0 0 0 0 0 0 100.0000
Используя исторические данные о кредитном рейтинге с инвестиционным классом оценок ('IG'
), спекулятивный класс ('SG'
) и значение по умолчанию ('D'
), от Data_TransProb.mat
отображает первые десять строк и вычисляет матрицу перехода:
dataIGSG(1:10,:)
ans=10×3 table
ID Date Rating
__________ _____________ ______
'00011253' '04-Apr-1983' 'IG'
'00012751' '17-Feb-1985' 'SG'
'00012751' '19-May-1986' 'D'
'00014690' '17-Jan-1983' 'IG'
'00012144' '21-Nov-1984' 'IG'
'00012144' '25-Mar-1992' 'SG'
'00012144' '07-May-1994' 'IG'
'00012144' '23-Jan-2000' 'SG'
'00012144' '20-Aug-2001' 'IG'
'00012937' '07-Feb-1984' 'IG'
transMatIGSG = transprob(dataIGSG,'labels',{'IG','SG','D'})
transMatIGSG = 3×3
98.6719 1.2020 0.1261
3.5781 93.3318 3.0901
0 0 100.0000
Используя исторические данные о кредитном рейтинге с числовыми рейтингами для инвестиционного класса (1
), спекулятивный класс (2
) и значение по умолчанию (3
), от Data_TransProb.mat
отображает первые десять строк и вычисляет матрицу перехода:
dataIGSGnum(1:10,:)
ans=10×3 table
ID Date Rating
__________ _____________ ______
'00011253' '04-Apr-1983' 1
'00012751' '17-Feb-1985' 2
'00012751' '19-May-1986' 3
'00014690' '17-Jan-1983' 1
'00012144' '21-Nov-1984' 1
'00012144' '25-Mar-1992' 2
'00012144' '07-May-1994' 1
'00012144' '23-Jan-2000' 2
'00012144' '20-Aug-2001' 1
'00012937' '07-Feb-1984' 1
transMatIGSGnum = transprob(dataIGSGnum,'labels',{1,2,3})
transMatIGSGnum = 3×3
98.6719 1.2020 0.1261
3.5781 93.3318 3.0901
0 0 100.0000
Используя таблицу MATLAB®, содержащую исторические входные данные массива ячеек кредитного рейтинга (dataCellFormat
) от Data_TransProb.mat
, оцените вероятности перехода с настройками по умолчанию.
load Data_TransProb
transMat = transprob(dataCellFormat)
transMat = 8×8
93.1170 5.8428 0.8232 0.1763 0.0376 0.0012 0.0001 0.0017
1.6166 93.1518 4.3632 0.6602 0.1626 0.0055 0.0004 0.0396
0.1237 2.9003 92.2197 4.0756 0.5365 0.0661 0.0028 0.0753
0.0236 0.2312 5.0059 90.1846 3.7979 0.4733 0.0642 0.2193
0.0216 0.1134 0.6357 5.7960 88.9866 3.4497 0.2919 0.7050
0.0010 0.0062 0.1081 0.8697 7.3366 86.7215 2.5169 2.4399
0.0002 0.0011 0.0120 0.2582 1.4294 4.2898 81.2927 12.7167
0 0 0 0 0 0 0 100.0000
Используя исторические входные данные массива ячеек кредитного рейтинга (dataCellFormat
), вычислите матрицу перехода использование алгоритма cohort
:
%Estimate transition probabilities with 'cohort' algorithm transMatCoh = transprob(dataCellFormat,'algorithm','cohort')
transMatCoh = 8×8
93.1345 5.9335 0.7456 0.1553 0.0311 0 0 0
1.7359 92.9198 4.5446 0.6046 0.1560 0 0 0.0390
0.1268 2.9716 91.9913 4.3124 0.4711 0.0544 0 0.0725
0.0210 0.3785 5.0683 89.7792 4.0379 0.4627 0.0421 0.2103
0.0221 0.1105 0.6851 6.2320 88.3757 3.6464 0.2873 0.6409
0 0 0.0761 0.7230 7.9909 86.1872 2.7397 2.2831
0 0 0 0.3094 1.8561 4.5630 80.8971 12.3743
0 0 0 0 0 0 0 100.0000
данные
Данные о миграции кредитаИспользуя transprob
, чтобы оценить вероятности перехода, данные исторические данные кредитных рейтингов (то есть, данные о миграции кредита), вход data
может быть одним из следующего:
Таблица nRecords
-by-3 MATLAB®
, содержащая исторические данные о кредитных рейтингах формы:
ID Date Rating __________ _____________ ______ '00010283' '10-Nov-1984' 'CCC' '00010283' '12-May-1986' 'B' '00010283' '29-Jun-1988' 'CCC' '00010283' '12-Dec-1991' 'D' '00013326' '09-Feb-1985' 'A' '00013326' '24-Feb-1994' 'AA' '00013326' '10-Nov-2000' 'BBB' '00014413' '23-Dec-1982' 'B'
Тип ввода данных | ID (1-й столбец) | Дата (2-й столбец) | Оценка (3-й столбец) |
---|---|---|---|
Таблица |
|
|
|
nRecords
-by-3
массив ячеек из символьных векторов, содержащий исторические данные о кредитных рейтингах формы:
'00010283' '10-Nov-1984' 'CCC' '00010283' '12-May-1986' 'B' '00010283' '29-Jun-1988' 'CCC' '00010283' '12-Dec-1991' 'D' '00013326' '09-Feb-1985' 'A' '00013326' '24-Feb-1994' 'AA' '00013326' '10-Nov-2000' 'BBB' '00014413' '23-Dec-1982' 'B'
Тип ввода данных | ID (1-й столбец) | Дата (2-й столбец) | Оценка (3-й столбец) |
---|---|---|---|
Ячейка |
|
|
|
Предварительно обработанная структура данных, полученная с помощью transprobprep
. Эта структура данных содержит fields'idStart'
, 'numericDates'
, 'numericRatings'
и 'ratingsLabels'
.
Типы данных: table
| cell
| struct
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
transMat = transprob(data,'algorithm','cohort')
'algorithm'
— Алгоритм оценки'duration'
(значение по умолчанию) | вектор символов со значениями является 'duration'
или 'cohort'
Алгоритм оценки, заданный как пара, разделенная запятой, состоящая из 'algorithm'
и вектора символов со значением 'duration'
или 'cohort'
.
Типы данных: char
'endDate'
— Дата окончания окна времени оценкиdata
(значение по умолчанию) | вектор символов | последовательный номер даты | datetimeДата окончания окна времени оценки, заданного как пара, разделенная запятой, состоящая из 'endDate'
и вектора символов даты, последовательного номера даты или объекта datetime. endDate
не может быть датой перед startDate
.
Типы данных: char
| double
| datetime
'labels'
— Шкала кредитного рейтинга{'AAA','AA','A','BBB','BB','B','CCC','D'}
(значение по умолчанию) | массив ячеек из символьных векторовШкала кредитного рейтинга, заданная как пара, разделенная запятой, состоящая из 'labels'
и nRatings
-by-1
или 1
-by-nRatings
массив ячеек из символьных векторов.
labels
должен быть сопоставим с метками оценок, используемыми в третьем столбце data
. Используйте массив ячеек чисел для числовых рейтингов и массив ячеек для векторов символов для категориальных оценок.
Когда входной параметр, data
является предварительно обработанной структурой данных, полученной от предыдущего вызова до transprobprep
, этого дополнительного входа для 'labels
, не использован, потому что метки в поле 'ratingsLabels'
transprobprep
берут приоритет.
Типы данных: cell
'snapsPerYear'
— Количество кредитного рейтинга создает снимки в год1
(значение по умолчанию) | числовые значения является 1
, 2
, 3
, 4
, 6
или 12
Количество снимков состояния кредитного рейтинга в год, чтобы быть рассмотренным для оценки, заданной как пара, разделенная запятой, состоящая из 'snapsPerYear'
и числовое значение 1
, 2
, 3
, 4
, 6
или 12
.
Этот параметр только используется с
algorithm
'cohort'
.
Типы данных: double
'startDate'
— Дата начала окна времени оценкиdata
(значение по умолчанию) | вектор символов | последовательный номер даты | datetimeДата начала окна времени оценки, заданного как пара, разделенная запятой, состоящая из 'startDate'
и вектора символов даты, последовательного номера даты или объекта datetime.
Типы данных: char
| double
| datetime
'transInterval'
— Длина интервала перехода в годах1
(одна вероятность перехода года) (значение по умолчанию) | числовойДлина интервала перехода, в годах, заданных как пара, разделенная запятой, состоящая из 'transInterval'
и числового значения.
Типы данных: double
transMat
— Матрица вероятностей перехода в процентеМатрица вероятностей перехода в проценте, возвращенном как nRatings
-by-nRatings
матрица перехода.
sampleTotals
— Структура с демонстрационными общими количествамиСтруктура с демонстрационными общими количествами, возвращенными с полями:
totalsVec
— Вектор размера 1
-by-nRatings
.
totalsMat
— Матрица размера nRatings
-by-nRatings
.
algorithm
— Вектор символов со значениями 'duration'
или 'cohort'
.
Для алгоритма 'duration'
totalsMat
(i, j) содержит общие переходы, наблюдаемые из оценки i в ratingj (все диагональные элементы являются нулем). Общее время, проведенное при оценке i, хранится в totalsVec
(i). Например, если существует три категории оценки, Инвестиционный класс (IG
), Спекулятивный Класс (SG
) и Значение по умолчанию (D
) и следующая информация:
Total time spent IG SG D in rating: 4859.09 1503.36 1162.05 Transitions IG SG D out of (row) IG 0 89 7 into (column): SG 202 0 32 D 0 0 0
totals.totalsVec = [4859.09 1503.36 1162.05] totals.totalsMat = [ 0 89 7 202 0 32 0 0 0] totals.algorithm = 'duration'
Для алгоритма 'cohort'
totalsMat
(i, j) содержит общие переходы, наблюдаемые от оценки i к оценке j, и totalsVec
(i) является начальным количеством в оценке i. Например, учитывая следующую информацию:
Initial count IG SG D in rating: 4808 1572 1145 Transitions IG SG D from (row) IG 4721 80 7 to (column): SG 193 1347 32 D 0 0 1145
totals.totalsVec = [4808 1572 1145] totals.totalsMat = [4721 80 7 193 1347 32 0 0 1145 totals.algorithm = 'cohort'
idTotals
— Общие количества идентификаторовОбщие количества идентификаторов, возвращенные как массив структур размера nIDs
-by-1
, где идентификатор n является количеством отличных идентификаторов в столбце 1 data
, когда это - таблица или массив ячеек или, эквивалентно, равный длине поля idStart
минус 1, когда data
является предварительно обработанной структурой данных от transprobprep
. Для каждого ID в выборке idTotals
содержит одну структуру со следующими полями:
totalsVec
— Разреженный вектор размера 1
-by-nRatings
.
totalsMat
— Разреженная матрица размера nRatings
-by-nRatings
.
algorithm
— Вектор символов со значениями 'duration'
или 'cohort'
.
Эти поля содержат ту же информацию, описанную для вывода sampleTotals
, но на уровне ID. Например, для 'duration'
, idTotals
(k).totalsVec
содержит общее время, когда k-th компания потратил на каждую оценку.
Алгоритм когорты оценивает вероятности перехода на основе последовательности снимков состояния кредитных рейтингов в расположенных с равными интервалами моментах времени.
Если кредитный рейтинг компании изменяется дважды между двумя датами снимка состояния, промежуточная оценка пропущена, и только начальные и итоговые оценки влияют на оценки.
В отличие от метода когорты, алгоритм длительности оценивает вероятности перехода на основе полной истории кредитных рейтингов, смотря на точные даты, в которые происходят миграции кредитного рейтинга.
Нет никакой концепции снимков состояния в этом методе, и все миграции кредитного рейтинга влияют на оценки, даже когда оценка компании изменяется дважды в течение короткого времени.
Алгоритм сначала определяет последовательность t0,...,tK дат снимка состояния. Прошедшее время, в годах, между двумя последовательными датами снимка состояния, tk-1 и tk равны 1
/ ns, где ns является количеством снимков состояния в год. Они K +1
даты определяют переходные периоды K.
Алгоритм вычисляет , количество переходных периодов, в который должника n запускается при оценке i. Они сложены по всем должникам, чтобы получить Ni, количество должников в выборке, которые запускают период при оценке i. Периоды номера, в который должника n запускается при оценке i и заканчивается при оценке j или мигрирует от i до j, обозначенного, также вычисляется. Они также сложены, чтобы добраться , общее количество миграций от i до j в выборке.
Оценка вероятности перехода от i до j в один период, обозначенный,
Эти вероятности располагаются в матрице перехода с одним периодом P0, где записью i,j в P0 является Pij.
Если количество снимков состояния в год ns равняется 4 (ежеквартальные снимки состояния), вероятности в P0 являются 3-месячными (или 0.25-летними), вероятности перехода. Можно, однако, интересоваться 1-летним или 2-летними вероятностями перехода. Последний временной интервал называется интервалом перехода, Δt, и это используется, чтобы преобразовать P0 в итоговую матрицу перехода, P, согласно формуле:
Например, если ns = 4
и Δt = 2
, P содержит вероятности перехода 2D года, оцененные из ежеквартальных снимков состояния.
Для алгоритма когорты дополнительные выходные аргументы idTotals
и sampleTotals
от transprob
содержат следующую информацию:
idTotals(n).totalsVec
=
idTotals(n).totalsMat
=
idTotals(n).algorithm
= 'cohort'
sampleTotals.totalsVec
=
sampleTotals.totalsMat
=
sampleTotals.algorithm
= 'cohort'
Для эффективности векторы и матрицы в idTotals
хранятся как разреженные массивы.
Алгоритм вычисляет , общее время, когда должник n тратит в оценке i в окне времени оценки. Эти количества сложены по всем должникам, чтобы добраться , общее время, проведенное в оценке i, коллективно, всеми должниками в выборке. Алгоритм также вычисляет , времена номера, которые должник n перемещает от оценки i к оценке j, с i, не равным j, в окне времени оценки. И это также складывает их, чтобы добраться , общее количество миграций, всеми должниками в выборке, от оценки i к j, с i не равняется j.
Чтобы оценить вероятности перехода, алгоритм длительности сначала вычисляет порождающую матрицу . Каждая недиагональная запись этой матрицы является оценкой уровня перехода из оценки i в оценку j и
Диагональные элементы вычисляются как:
С порождающей матрицей и интервалом перехода Δt (например, Δt = 2
соответствует вероятностям перехода 2D года), матрица перехода получена как , где exp обозначает матричное возведение в степень (expm
в MATLAB).
Для алгоритма длительности дополнительные выходные аргументы idTotals
и sampleTotals
от transprob
содержат следующую информацию:
idTotals(n).totalsVec
=
idTotals(n).totalsMat
=
idTotals(n).algorithm
= 'duration'
sampleTotals.totalsVec
=
sampleTotals.totalsMat
=
sampleTotals.algorithm
= 'duration'
Для эффективности векторы и матрицы в idTotals
хранятся как разреженные массивы.
[1] Хэнсон, S., Т. Шюрманн. "Доверительные интервалы для Вероятностей Значения по умолчанию". Журнал Banking & Finance. Издание 30 (8), Elsevier, август 2006, стр 2281–2301.
[2] Löffler, G., П. Н. Пош. Credit Risk Modeling Using Excel и VBA. Западный Сассекс, Англия: финансы Вайли, 2007.
[3] Шюрманн, T. "Матрицы миграции кредита". в Э. Мелнике, Б. Эверитте (редакторы)., энциклопедия количественного анализа рисков и оценки. Вайли, 2008.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.