Main Content

summary

Summarize performance attribution by Brinson model

Since R2022b

Description

SummaryTable = summary(brinsonAttributionObj) generates a table that summarizes the final results (aggregated over all time periods and categories) of the performance attribution by the Brinson model.

example

Examples

collapse all

This example shows how to create a brinsonAttribution object and then use summary to generate a table that summarizes the final results of the performance attribution by the Brinson model, aggregated over all time periods and categories (sectors).

Prepare Data

Create a table for the monthly prices for four assets.

 GM =[17.82;22.68;19.37;20.28];
 HD = [39.79;39.12;40.67;40.96];
 KO = [38.98;39.44;40.00;40.20];
 PG = [56.38;57.08;57.76;55.54];
 MonthlyPrices  = table(GM,HD,KO,PG);

Use tick2ret to define the monthly returns.

MonthlyReturns = tick2ret(MonthlyPrices.Variables)';
  [NumAssets,NumPeriods] = size(MonthlyReturns); 

Define the periods.

Period = ones(NumAssets*NumPeriods,1);
  for k = 1:NumPeriods
      Period(k*NumAssets+1:end,1) = Period(k*NumAssets,1) + 1;
  end

Define the categories for the four assets.

Name = repmat(string(MonthlyPrices.Properties.VariableNames(:)),NumPeriods,1);
  Categories = repmat(categorical([ ...
      "Consumer Discretionary"; ...
      "Consumer Discretionary"; ...
      "Consumer Staples"; ...
      "Consumer Staples"]),NumPeriods,1);

Define benchmark and portfolio weights.

BenchmarkWeight = repmat(1./NumAssets.*ones(NumAssets, 1),NumPeriods,1);
  PortfolioWeight = repmat([1;0;1;1]./3,NumPeriods,1);

Create AssetTable Input

Create AssetTable as the input for the brinsonAttribution object.

  AssetTable = table(Period, Name, ...
      MonthlyReturns(:), Categories, PortfolioWeight, BenchmarkWeight, ...
      VariableNames=["Period","Name","Return","Category","PortfolioWeight","BenchmarkWeight"])
AssetTable=12×6 table
    Period    Name     Return             Category           PortfolioWeight    BenchmarkWeight
    ______    ____    _________    ______________________    _______________    _______________

      1       "GM"      0.27273    Consumer Discretionary        0.33333             0.25      
      1       "HD"    -0.016838    Consumer Discretionary              0             0.25      
      1       "KO"     0.011801    Consumer Staples              0.33333             0.25      
      1       "PG"     0.012416    Consumer Staples              0.33333             0.25      
      2       "GM"     -0.14594    Consumer Discretionary        0.33333             0.25      
      2       "HD"     0.039622    Consumer Discretionary              0             0.25      
      2       "KO"     0.014199    Consumer Staples              0.33333             0.25      
      2       "PG"     0.011913    Consumer Staples              0.33333             0.25      
      3       "GM"      0.04698    Consumer Discretionary        0.33333             0.25      
      3       "HD"    0.0071306    Consumer Discretionary              0             0.25      
      3       "KO"        0.005    Consumer Staples              0.33333             0.25      
      3       "PG"    -0.038435    Consumer Staples              0.33333             0.25      

Create brinsonAttribution Object

Use brinsonAttribution to create the brinsonAttribution object.

  BrinsonPAobj = brinsonAttribution(AssetTable)
BrinsonPAobj = 
  brinsonAttribution with properties:

                  NumAssets: 4
         NumPortfolioAssets: 3
         NumBenchmarkAssets: 4
                 NumPeriods: 3
              NumCategories: 2
                  AssetName: [4x1 string]
                AssetReturn: [4x3 double]
              AssetCategory: [4x3 categorical]
       PortfolioAssetWeight: [4x3 double]
       BenchmarkAssetWeight: [4x3 double]
    PortfolioCategoryReturn: [2x3 double]
    BenchmarkCategoryReturn: [2x3 double]
    PortfolioCategoryWeight: [2x3 double]
    BenchmarkCategoryWeight: [2x3 double]
            PortfolioReturn: 0.0598
            BenchmarkReturn: 0.0540
               ActiveReturn: 0.0059

Generate Summary Table

Use the brinsonAttribution object with summary to generate a table that summarizes the final results of the performance attribution by the Brinson model, aggregated over all time periods and categories.

SummaryTable = summary(BrinsonPAobj)
SummaryTable=11×1 table
                                     Brinson Attribution Summary
                                     ___________________________

    Total Number of Assets                            4         
    Number of Assets in Portfolio                     3         
    Number of Assets in Benchmark                     4         
    Number of Periods                                 3         
    Number of Categories                              2         
    Portfolio Return                           0.059847         
    Benchmark Return                            0.05399         
    Active Return                             0.0058578         
    Allocation Effect                         -0.014353         
    Selection Effect                           0.030316         
    Interaction Effect                        -0.010105         

Input Arguments

collapse all

Brinson attribution model, specified as a brinsonAttribution object.

Data Types: object

Output Arguments

collapse all

Metrics summarizing the performance attribution by the Brinson model, returned as a table where each row of the table is a calculated metric as follows:

  • Total Number of Assets — Total for assets in the AssetTable

  • Number of Assets in Portfolio — Total assets in the portfolio, as defined in AssetTable

  • Number of Assets in Benchmark — The total assets in the benchmark, as defined in AssetTable

  • Number of Periods — Total number of Periods, as defined in AssetTable

  • Portfolio Return — Portfolio return, as defined in AssetTable

  • Benchmark Return — Benchmark return, as defined in AssetTable

  • Active Return — Calculated active return for the portfolio, as defined in AssetTable

  • Allocation Effect — Allocation effect for the portfolio, as defined in AssetTable

  • Selection Effect — Selection effect for the portfolio, as defined in AssetTable

  • Interaction Effect — Interaction effect for the portfolio, as defined in AssetTable

References

[1] Brinson, G. P. and Fachler, N. “Measuring Non-US Equity Portfolio Performance.” Journal of Portfolio Management. Spring 1985: 73–76.

[2] Brinson, G. P., Hood, L. R., and Beebower, G. L. “Determinants of Portfolio Performance.” Financial Analysts Journal. Vol. 42, No. 4, 1986: 39–44.

[3] Menchero, J. “Multiperiod Arithmetic Attribution.” Financial Analysts Journal. Vol. 60, No. 4, 2004: 76–91.

[4] Tuttle, D. L., Pinto, J. E., and McLeavey, D. W. Managing Investment Portfolios: A Dynamic Process. Third Edition. CFA Institute, 2007.

Version History

Introduced in R2022b