exponenta event banner

Расчет нормативного капитала с использованием модели ASRF

В этом примере показано, как рассчитать потребности в капитале и стоимость риска (VaR) для чувствительного к кредиту портфеля рисков с использованием асимптотической модели одного фактора риска (ASRF). В этом примере также показано, как вычислять базельские потребности в капитале с использованием модели ASRF.

Модель ASRF

Модель ASRF определяет капитал как кредитную стоимость риска (VaR) сверх ожидаемого убытка (EL).

капитал = VaR-EL

где EL для данного контрагента - риск убытков при дефолте (EAD), умноженный на вероятность дефолта (PD) и потери при данном дефолте (LGD).

EL = EAD * PD * LGD

Для расчета кредитного VaR модель ASRF предполагает, что кредитное качество должника моделируется скрытой переменной (A) с использованием модели одного фактора, где единый общий фактор (Z) представляет системный кредитный риск на рынке.

Ai=ρi⋅Z+1-ρi⋅ϵ

В этой модели потери по умолчанию для конкретного сценария рассчитываются следующим образом:

L=EAD⋅I⋅LGD

где I является индикатором по умолчанию, и имеет значение 1, если Ai < Dwf A-1 (PDi) (то есть скрытая переменная упала ниже порога по умолчанию), и значение 0 в противном случае. Ожидаемое значение индикатора по умолчанию, зависящее от общего коэффициента, задается следующим образом:

E (Ii 'Z) =Φϵ (ΦA-1 (PDi) -ρiZ1-ρi)

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

L'Z=∑iEADi⋅LGDi⋅Φϵ (ΦA-1 (PDi) -ρiZ1-ρi)

Затем можно непосредственно вычислить определенные процентили распределения потерь с помощью кумулятивной функции распределения общего коэффициента. Это кредитный VaR, который мы вычисляем на уровне достоверности α:

creditVaR (α) =∑iEADi⋅LGDi⋅Φϵ (ΦA-1 (PDi) -ρiΦZ-1 (1-α) 1-αi)

Отсюда следует, что капитал для данного уровня доверия, α, равен:

капитал (α) =∑iEADi⋅LGDi⋅[Φϵ (ΦA-1 (PDi) -ρiΦZ-1 (1-α) 1-αi) -PDi]

Базовая ASRF

Портфель содержит 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 определяют корреляцию между аналогичными основными средствами. Квадратный корень из этого значения, start, определяет корреляцию между скрытой переменной контрагента (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 ($)');

Figure contains an axes. The axes with title ID: 1, Baseline vs. Stressed Scenarios contains 3 objects of type bar. These objects represent baseline, stressed PD, stressed R.

Базельские требования к капиталу

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

См. также