В этом примере показано, как рассчитать потребности в капитале и стоимость риска (VaR) для чувствительного к кредиту портфеля рисков с использованием асимптотической модели одного фактора риска (ASRF). В этом примере также показано, как вычислять базельские потребности в капитале с использованием модели ASRF.
Модель ASRF определяет капитал как кредитную стоимость риска (VaR) сверх ожидаемого убытка (EL).
VaR-EL
где EL для данного контрагента - риск убытков при дефолте (EAD), умноженный на вероятность дефолта (PD) и потери при данном дефолте (LGD).
* LGD
Для расчета кредитного VaR модель ASRF предполагает, что кредитное качество должника моделируется скрытой переменной (A) с использованием модели одного фактора, где единый общий фактор (Z) представляет системный кредитный риск на рынке.
В этой модели потери по умолчанию для конкретного сценария рассчитываются следующим образом:
где I является индикатором по умолчанию, и имеет значение 1, если PDi) (то есть скрытая переменная упала ниже порога по умолчанию), и значение 0 в противном случае. Ожидаемое значение индикатора по умолчанию, зависящее от общего коэффициента, задается следующим образом:
-ρiZ1-ρi)
Для хорошо диверсифицированных и идеально детализированных портфелей ожидаемый убыток, обусловленный значением общего фактора, составляет:
-ρiZ1-ρi)
Затем можно непосредственно вычислить определенные процентили распределения потерь с помощью кумулятивной функции распределения общего коэффициента. Это кредитный VaR, который мы вычисляем на уровне достоверности α:
) 1-αi)
Отсюда следует, что капитал для данного уровня доверия, , равен:
1-αi) -PDi]
Портфель содержит 100 чувствительных к кредиту контрактов и информацию об их подверженности риску. Это смоделированные данные.
load asrfPortfolio.mat
disp(portfolio(1:5,:)) ID EAD PD LGD AssetClass Sales Maturity
__ __________ _________ ____ __________ _____ ___________
1 2.945e+05 0.013644 0.5 "Bank" NaN 02-Jun-2023
2 1.3349e+05 0.0017519 0.5 "Bank" NaN 05-Jul-2021
3 3.1723e+05 0.01694 0.4 "Bank" NaN 07-Oct-2018
4 2.8719e+05 0.013624 0.35 "Bank" NaN 27-Apr-2022
5 2.9965e+05 0.013191 0.45 "Bank" NaN 07-Dec-2022
Корреляции основных средств модели ASRF определяют корреляцию между аналогичными основными средствами. Квадратный корень из этого значения, , определяет корреляцию между скрытой переменной контрагента (A) и системным кредитным фактором (Z). Корреляция активов может быть откалибрована путем наблюдения корреляций на рынке или из исторических данных по умолчанию. Корреляции также могут быть установлены с помощью нормативных документов (см. раздел Базельские требования к капиталу).
Поскольку модель ASRF является быстрой аналитической формулой, удобно выполнять анализ чувствительности для контрагента путем изменения параметров воздействия и наблюдения за изменением капитала и VaR.
На следующем графике показана чувствительность к PD и корреляции активов. Параметры LGD и EAD являются масштабными коэффициентами в формуле ASRF, поэтому чувствительность является простой.
% Counterparty ID id = 1; % Set the default asset correlation to 0.2 as the baseline. R = 0.2; % Compute the baseline capital and VaR. [capital0, var0] = asrf(portfolio.PD(id),portfolio.LGD(id),R,'EAD',portfolio.EAD(id)); % Stressed PD by 50% [capital1, var1] = asrf(portfolio.PD(id) * 1.5,portfolio.LGD(id),R,'EAD',portfolio.EAD(id)); % Stressed Correlation by 50% [capital2, var2] = asrf(portfolio.PD(id),portfolio.LGD(id),R * 1.5,'EAD',portfolio.EAD(id)); c = categorical({'ASRF Capital','VaR'}); bar(c,[capital0 capital1 capital2; var0 var1 var2]); legend({'baseline','stressed PD','stressed R'},'Location','northwest') title(sprintf('ID: %d, Baseline vs. Stressed Scenarios',id)); ylabel('USD ($)');

При расчете нормативного капитала базельские документы имеют дополнительные спецификации модели поверх базовой модели ASRF. В частности, Базель II/III определяет конкретные формулы для вычисления корреляции основных средств для рисков убытков в различных классах основных средств в зависимости от вероятности по умолчанию.
Для настройки вектора корреляций в соответствии с определениями, установленными в Базель II/III:
R = zeros(height(portfolio),1); % Compute the correlations for corporate, sovereign, and bank exposures. idx = portfolio.AssetClass == "Corporate" |... portfolio.AssetClass == "Sovereign" |... portfolio.AssetClass == "Bank"; R(idx) = 0.12 * (1-exp(-50*portfolio.PD(idx))) / (1-exp(-50)) +... 0.24 * (1 - (1-exp(-50*portfolio.PD(idx))) / (1-exp(-50))); % Compute the correlations for small and medium entities. idx = portfolio.AssetClass == "Small Entity" |... portfolio.AssetClass == "Medium Entity"; R(idx) = 0.12 * (1-exp(-50*portfolio.PD(idx))) / (1-exp(-50)) +... 0.24 * (1 - (1-exp(-50*portfolio.PD(idx))) / (1-exp(-50))) -... 0.04 * (1 - (portfolio.Sales(idx)/1e6 - 5) / 45); % Compute the correlations for unregulated financial institutions. idx = portfolio.AssetClass == "Unregulated Financial"; R(idx) = 1.25 * (0.12 * (1-exp(-50*portfolio.PD(idx))) / (1-exp(-50)) +... 0.24 * (1 - (1-exp(-50*portfolio.PD(idx))) / (1-exp(-50))));
Найдите основной капитал ASRF, используя базельские корреляции основных средств. Значение по умолчанию для уровня VaR - 99,9%.
asrfCapital = asrf(portfolio.PD,portfolio.LGD,R,'EAD',portfolio.EAD);Кроме того, базельские документы определяют корректировку срока, добавляемую к каждому расчету капитала. Здесь мы вычисляем корректировку срока и обновляем требования к капиталу.
maturityYears = years(portfolio.Maturity - settle);
b = (0.11852 - 0.05478 * log(portfolio.PD)).^2;
maturityAdj = (1 + (maturityYears - 2.5) .* b) ./ (1 - 1.5 .* b);
regulatoryCapital = asrfCapital .* maturityAdj;
fprintf('Portfolio Regulatory Capital : $%.2f\n',sum(regulatoryCapital));Portfolio Regulatory Capital : $2371316.24
Взвешенные по риску активы (RWA) рассчитываются как капитал * 12,5.
RWA = regulatoryCapital * 12.5; results = table(portfolio.ID,portfolio.AssetClass,RWA,regulatoryCapital,'VariableNames',... {'ID','AssetClass','RWA','Capital'}); % Results table disp(results(1:5,:))
ID AssetClass RWA Capital
__ __________ __________ _______
1 "Bank" 4.7766e+05 38213
2 "Bank" 79985 6398.8
3 "Bank" 2.6313e+05 21050
4 "Bank" 2.9449e+05 23560
5 "Bank" 4.1544e+05 33235
Агрегировать регулятивный капитал по классу активов.
assetClasses = unique(results.AssetClass); assetClassCapital = zeros(numel(assetClasses),1); for i = 1:numel(assetClasses) assetClassCapital(i) = sum(results.Capital(results.AssetClass == assetClasses(i))); end pie(assetClassCapital,cellstr(assetClasses)) title('Regulatory Capital by Asset Class');

capitalTable = table(assetClasses, assetClassCapital,'VariableNames',{'AssetClass','Capital'}); disp(capitalTable);
AssetClass Capital
_______________________ __________
"Bank" 3.6894e+05
"Corporate" 3.5811e+05
"Medium Entity" 3.1466e+05
"Small Entity" 1.693e+05
"Sovereign" 6.8711e+05
"Unregulated Financial" 4.732e+05