[R-SIG-Finance] performance attribution output

Yang Lu Yang.Lu at williams.edu
Thu Jun 6 04:41:45 CEST 2013


Hi Roger, 

The last part of the summary output '$Aggregate' comes from the returns method in the package. There are two parts (in a list) in the returns output. The '$Aggregate' is the second part. To save it as a data.frame, you can do the following:

> df = as.data.frame(returns(br.single)[[2]])

To see the source code from R, 

> getMethods("summary")
> getMethods("returns")

Hope this helps. Please let me know if you have any other questions,

Best,
Yang

Yang Lu '14
SU 2896  Paresky Center
Williams College, MA
(413)884-4847


---- Original message ----
>Date: Wed, 5 Jun 2013 20:17:17 +0000
>From: r-sig-finance-bounces at r-project.org (on behalf of "Bos, Roger" <roger.bos at rothschild.com>)
>Subject: [R-SIG-Finance] performance attribution output  
>To: "r-sig-finance at r-project.org" <r-sig-finance at r-project.org>
>
>I have been trying out the performance attribution package and find it very interesting, but I can't figure out how to get the output into a data.frame or other object that would make it easy for me to store it.  Here is some example code:
>
>library(pa)
>data(jan)
>br.single <- brinson(x = jan, date.var = "date", cat.var = "sector", bench.weight = "benchmark", portfolio.weight = "portfolio", ret.var = "return")
>summary(br.single)
>
>Running this example will produce the following output (which looks better in R than it does here)
>
>Period:                              2010-01-01
>Methodology:                         Brinson
>Securities in the portfolio:         200
>Securities in the benchmark:         1000
>
>Exposures 
>            Portfolio Benchmark     Diff
>Energy          0.085    0.2782 -0.19319
>Materials       0.070    0.0277  0.04230
>Industrials     0.045    0.0330  0.01201
>ConDiscre       0.050    0.0188  0.03124
>ConStaples      0.030    0.0148  0.01518
>HealthCare      0.015    0.0608 -0.04576
>Financials      0.370    0.2979  0.07215
>InfoTech        0.005    0.0129 -0.00787
>TeleSvcs        0.300    0.1921  0.10792
>Utilities       0.030    0.0640 -0.03399
>
>Returns 
>$`Attribution by category in bps`
>            Allocation Selection Interaction
>Energy         110.934    -37.52      26.059
>Materials      -41.534      0.48       0.734
>Industrials      0.361      1.30       0.473
>ConDiscre      -28.688     -4.23      -7.044
>ConStaples       5.467     -3.59      -3.673
>HealthCare      -6.692     -4.07       3.063
>Financials     -43.998     70.13      16.988
>InfoTech        -3.255     -5.32       3.255
>TeleSvcs       -23.106     41.55      23.348
>Utilities       16.544     83.03     -44.108
>Total          -13.966    141.77      19.095
>
>$Aggregate
>                   2010-01-01
>Allocation Effect    -0.00140
>Selection Effect      0.01418
>Interaction Effect    0.00191
>Active Return         0.01469
>
>My question is, how can I, say, save the $Aggregate output into a data.frame?  I have been trying to read about S4 objects, but I am still not able to figure this out.  As long as I am asking, could anyone tell me how to see the code behind the "summary" function being used here?  The following is not very enlightening:
>
>> showMethods("summary", classes="brinson")
>Function: summary (package base)
>object="brinson"
>
>Thanks in advance for any help!
>
>_______________________________________________
>R-SIG-Finance at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>-- Subscriber-posting only. If you want to post, subscribe first.
>-- Also note that this is not the r-help list where general R questions should go.



More information about the R-SIG-Finance mailing list