Рассчитывание регулятивного капитала с моделью ASRF

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

Модель ASRF

Модель ASRF задает капитал как значение в опасности (VaR) кредита сверх ожидаемой потери (EL).

capital=VaR-EL

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

EL=EAD*PD*LGD

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

Ai=ρiZ+1-ρiϵ

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

L=EADILGD

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

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

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

L|Z=iEADiLGDiΦϵ(ΦA-1(PDi)-ρiZ1-ρi)

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

creditVaR(α)=iEADiLGDiΦϵ(ΦA-1(PDi)-ρiΦZ-1(1-α)1-ρi)

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

capital(α)=iEADiLGDi[Φϵ(Φ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 модель задают корреляцию между подобными активами. Квадратный корень из этого значения, ρ, задает корреляцию между скрытой переменной контрагента (A) и системным фактором кредита (Z). Корреляции актива могут быть калиброваны путем наблюдения корреляций на рынке или из исторических данных по умолчанию. Корреляции могут также быть установлены с помощью регулирующих инструкций (см. Базельский раздел Capital Requirements).

Поскольку модель 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 object. The axes object 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

Смотрите также

Для просмотра документации необходимо авторизоваться на сайте