Main Content

Compare Concentration Indices for Random Portfolios

This example shows how to simulate random portfolios with different distributions and compare their concentration indices. For illustration purposes, a lognormal and Weibull distribution are used. The distribution parameters are chosen arbitrarily to get a similar range of values for both random portfolios.

Generate random portfolios with different distributions.

rng('default'); % for reproducibility
PLgn = lognrnd(1,1,1,300);
PWbl = wblrnd(2,0.5,1,300);

Display largest simulated loan value.

fprintf('\nLargest loan Lognormal: %g\n',max(PLgn));
Largest loan Lognormal: 97.3582
fprintf('Largest loan Weibull: %g\n',max(PWbl));
Largest loan Weibull: 91.5866

Plot the portfolio histograms.

figure;
histogram(PLgn,0:5:100)
hold on
histogram(PWbl,0:5:100)
hold off
title('Random Loan Histograms')
xlabel('Loan Amount')
ylabel('Frequency')
legend('Lognormal','Weibull')

Compute and display the concentration measures.

ciLgn = concentrationIndices(PLgn,'ID','Lognormal');
ciWbl = concentrationIndices(PWbl,'ID','Weibull');
disp([ciLgn;ciWbl])
        ID            CR                                                                          Deciles                                                                        Gini         HH          HK           HT          TE   
    ___________    ________    _____________________________________________________________________________________________________________________________________________    _______    ________    _________    _________    _______

    "Lognormal"    0.066363    0     0.0092101      0.027425      0.053898      0.093295       0.14165       0.20292       0.28269       0.39183       0.55181             1     0.5686    0.013298    0.0045765    0.0077267    0.66735
    "Weibull"      0.090152    0    0.00036887     0.0031072      0.010104      0.021833       0.04367      0.081361       0.13838       0.24197       0.43317             1    0.72876    0.020197    0.0062594     0.012289     1.0944
ProportionLoans = 0:0.1:1;
figure;
area(ProportionLoans',[ciWbl.Deciles; ciLgn.Deciles-ciWbl.Deciles; ProportionLoans-ciLgn.Deciles]')
axis([0 1 0 1])
legend('Weibull','Lognormal','Diversified','Location','NorthWest')
title('Lorenz Curve (by Deciles)')
xlabel('Proportion of Loans')
ylabel('Proportion of Value')

See Also

Related Examples

More About