Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. %% 2.3, 2.4
  2. clc, clf, clear all, close all;
  3.  
  4. mean = [-3.0588 -2.5371 -2.3961]; %Means
  5. std = [0.7202 0.9899 1.5508]; %Standard deviations
  6. alpha = [0.95 0.99 0.999];
  7. m = 1000; %Number of obligors
  8. l = 0.6; %Default loss
  9.  
  10. ind_def_prob = []; %individual default probability
  11. pair_def_corr = []; %pairwise default correlation
  12. rho = []; %mutual dependence of obligors
  13.  
  14. for (i = 1:3)
  15. mix_prob = @(x) ((1 ./ (1 + exp(-(mean(i) + std(i).*x)))) .* (1./sqrt(2*pi)).*exp((-x.^2)/2)); %Mixing probability p(Z) * F(Z)
  16. ind_def_prob(i) = integral(mix_prob, -Inf, Inf); %E[p(Z)]
  17. end
  18.  
  19. for (i = 1:3)
  20. mix_prob = @(x) ((1 ./ (1 + exp(-(mean(i) + std(i).*x)))).^2) .* (1./sqrt(2*pi)).*exp((-x.^2)/2); %Mixing probability p(Z) * F(Z)
  21. EpZ2 = integral(mix_prob, -Inf, Inf); %E[p(Z)^2]
  22. pair_def_corr(i) = (EpZ2 - (ind_def_prob(i)^2)) / (ind_def_prob(i)*(1-ind_def_prob(i)));
  23. end
  24.  
  25. for (i = 1:3)
  26. fun = pair_def_corr(i) * ind_def_prob(i) * (1 - ind_def_prob(i)) + ind_def_prob(i)^2;
  27. EpZ2 = @(x, Z) (((normcdf((norminv(ind_def_prob(i)) - Z .* sqrt(x)) ./ sqrt(1 - x))).^2) .* (normcdf((1 ./ sqrt(x)) .* (sqrt(1 - x) .* norminv(Z) - norminv(ind_def_prob(i))))) - fun);
  28. g = @(x) integral(@(Z) EpZ2(x,Z), 0, 1);
  29. rho(i) = lsqnonlin(g, 0.21, 0, 1);
  30. end
  31.  
  32. VaR_95 = [];
  33. ES_95 = [];
  34.  
  35. for (i = 1:length(mean))
  36. VaR_95(i) = l * m * normcdf(sqrt(rho(i))*norminv(alpha(1))+norminv(ind_def_prob(i))/(sqrt(1-rho(i))));
  37. ES_95(i) = (1/(1-alpha(1)))*integral(@(x) l * m * normcdf(sqrt(rho(i))*norminv(x)+norminv(ind_def_prob(i))/(sqrt(1-rho(i)))), alpha(1), 1);
  38. end
  39.  
  40. VaR_99 = [];
  41. ES_99 = [];
  42.  
  43. for (i = 1:length(mean))
  44. VaR_99(i) = l * m * normcdf(sqrt(rho(i))*norminv(alpha(2))+norminv(ind_def_prob(i))/(sqrt(1-rho(i))));
  45. ES_99(i) = (1/(1-alpha(1)))*integral(@(x) l * m * normcdf(sqrt(rho(i))*norminv(x)+norminv(ind_def_prob(i))/(sqrt(1-rho(i)))), alpha(2), 1);
  46. end
  47.  
  48. VaR_999 = [];
  49. ES_999 = [];
  50.  
  51. for (i = 1:length(mean))
  52. VaR_999(i) = l * m * normcdf(sqrt(rho(i))*norminv(alpha(3))+norminv(ind_def_prob(i))/(sqrt(1-rho(i))));
  53. ES_999(i) = (1/(1-alpha(1)))*integral(@(x) l * m * normcdf(sqrt(rho(i))*norminv(x)+norminv(ind_def_prob(i))/(sqrt(1-rho(i)))), alpha(3), 1);
  54. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement