Table of Contents


File

absorption_ratio.m

Name

absorption_ratio

Synopsis

ar - Calculates the absorption ratio for a time series of asset returns based on Kritzman et al. (2010)

Introduction

NOTE: PART OF A SET OF 2 RELATED FILES:

Kritzman, Li, Page, and Rigobon (2010) propose to measure systemic risk via the Absorption Ratio (AR), which they define as the fraction of the total variance of a set of asset returns explained or absorbed by a fixed number of eigenvectors. The absorption ratio captures the extent to which markets are unified or tightly coupled. When markets are tightly coupled, they become more fragile in the sense that negative shocks propagate more quickly and broadly than when markets are loosely linked. The authors apply their AR analysis to several broad markets, introduce a standardized measure of shifts in the AR, and analyze how these shifts relate to changes in asset prices and financial turbulence.

A high value for the absorption ratio corresponds to a high level of systemic risk because it implies the sources of risk are more unified. A low absorption ratio indicates less systemic risk because it implies the sources of risk are more disparate. High systemic risk does not necessarily lead to asset depreciation or financial turbulence. It is simply an indication of market fragility in the sense that a shock is more likely to propagate quickly and broadly when sources of risk are tightly coupled.

License

=============================================================================

Copyright 2011, Dimitrios Bisias, Andrew W. Lo, and Stavros Valavanis

COPYRIGHT STATUS: This work was funded in whole or in part by the Office of Financial Research under U.S. Government contract TOSOFR-11-C-0001, and is, therefore, subject to the following license: The Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license to reproduce, prepare derivative works, distribute copies to the public, perform and display the work.
All other rights are reserved by the copyright owner.

THIS SOFTWARE IS PROVIDED "AS IS". YOU ARE USING THIS SOFTWARE AT YOUR OWN RISK. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS, CONTRIBUTORS, OR THE UNITED STATES GOVERNMENT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

=============================================================================

Inputs

asset_returns
Name:
asset_returns
Description:

A matrix of asset returns.

Type:
float
Range:
(-inf,+inf)
Dimensions:

TxK matrix

  1. Rows represent each of T dates. (order does not matter) T = 500 in paper.
  2. Columns represent returns for each of K assets.

fraction_eigenvectors
Name:
fraction_eigenvectors
Description:

The fraction of eigenvectors used to calculate the absorption ratio. In the paper it is 0.2.

Type:
float
Range:
(0,1]
Dimensions:

scalar


Outputs

ar
Name:
ar
Description:

The fraction of the total variance of a set of asset returns explained or absorbed by a fixed number of eigenvectors.

Type:
float
Range:
(0,1]
Dimensions:

scalar


Code

% Run warning message
warning('OFRwp0001:UntestedCode', ...
    ['This version of the source code is very preliminary, ' ...
     'and has not been thoroughly tested. Users should not rely on ' ...
     'these calculations.']);


%


num_assets = size(asset_returns,2);

% Calculate the covariance matrix
Sigma = cov(asset_returns);

% Find the eigenvalues
eigenvalues  = eig(Sigma);
% Sort in ascending order
sorted_eigenvalues = sort(eigenvalues);
num_eigenvalues = round(fraction_eigenvectors*num_assets);

% Calculation of the absorption ratio
numerator = sum(sorted_eigenvalues(end-num_eigenvalues+1:end));
denominator = trace(Sigma);
ar = numerator/denominator;

Examples

NOTE: Numbers used in the examples are arbitrary valid values.
They do not necessarily represent a realistic or plausible scenario.

 asset_returns = [0.015, 0.031, 0.007, 0.034, 0.014, 0.011;
                  0.012, 0.063, 0.027, 0.023, 0.073, 0.055;
                  0.072, 0.043, 0.097, 0.078, 0.036, 0.083]';

 fraction_eigenvectors = 0.2;

 ar = absorption_ratio(asset_returns, fraction_eigenvectors);

References

Kritzman, et al. (2010). Principal components as a measure of systemic risk. SSRN eLibrary.

Bisias et al. (2012). A survey of systemic risk analytics (Working paper #0001). Washington, DC: Office of Financial Research, 98-100.