Many thanks. I tried to implement this, but still seem to miss something.

Here's a contrived example.Using 10.5 years of monthly fund data, I use 
a stock market and a real estate index to "explain" the returns of the 
fund. What I would like to do is to plot the R-squared over time with the 
function.RollingStyle I proceed as follows: 
 
head(Rfund.z)
  2000-01-31   2000-03-02   2000-03-31   2000-05-01   
2000-05-31   2000-07-01 
-0.033951898  0.052783466 -0.020335698 -0.006613730  0.008663712  
0.091497179 

 head(Rstyle.z)
               Stocks.z        RE.z
2000-01-31 -0.058851033  0.01968497
2000-03-02  0.002817568 -0.03427083
2000-03-31  0.066951099  0.06969885

Applying the page.RollingStyle function yields an error message

> page.RollingStyle (Rfund.z, Rstyle.z, method="constrained", 
leverage=FALSE)

Error in checkData(R.fund) : 
  The data cannot be converted into a time series.  If you are trying to 
pass in names from a data object with one column, you should use the form 
'data[rows, columns, drop = FALSE]'.  Rownames should have standard date 
formats, such as '1985-03-15'. 
In addition: Warning message:
In rollapply.zoo(data = merged.assets, FUN = function(x) { :
  na.pad argument is deprecated


Would be great, if someone could provide me with a brief explanation of 
what exactly is going wrong here. Many thanks, Cheers,
Phil 




>             
> -------- Original-Nachricht --------
> Datum: Tue, 6 Sep 2011 16:01:14 -0500
> Von: "Peter Carl" <peter@braverock.com>
> An: "Philipp Haumueller" <phaumueller@gmx.net>
> CC: r-sig-finance@r-project.org
> Betreff: Re: [R-SIG-Finance] PerformanceAnalytics - Style Analysis-   
> plotting R squared over time
> 
>             Take a look at the code itself - it implements what you are 
> asking for. 
> In particular, pay attention to the rollapply functions.
> 
> > page.RollingStyle
> function (R.fund, R.style, method = c("constrained", "unconstrained",
>     "normalized"), leverage = FALSE, selection = "none", width = 12,
>     main = paste(colnames(R.fund)[1], " Rolling ", width, "-Month Style
> Weights",
>         sep = ""), space = 0, ...)
> {
>     R.fund = checkData(R.fund[, 1, drop = FALSE], method = "zoo")
>     R.style = checkData(R.style, method = "zoo")
>     method = method[1]
>     columns.fund = ncol(R.fund)
>     columns.style = ncol(R.style)
>     columnnames.fund = colnames(R.fund)
>     columnnames.style = colnames(R.style)
>     merged.assets = na.omit(merge(R.fund, R.style))
>     result = rollapply(data = merged.assets, FUN = function(x) {
>         t(style.fit(R.fund = x[, 1, drop = FALSE], R.style = x[,
>             -1, drop = FALSE], method = method, leverage = leverage,
>             selection = selection)$weights)
>     }, width = width, by = 1, by.column = FALSE, na.pad = FALSE,
>         align = "right")
>     fit = rollapply(data = merged.assets, FUN = function(x) {
>         t(style.fit(R.fund = x[, 1, drop = FALSE], R.style = x[,
>             -1, drop = FALSE], method = method, leverage = leverage,
>             selection = selection)$R.squared)
>     }, width = width, by = 1, by.column = FALSE, na.pad = FALSE,
>         align = "right")
>     colnames(result) = columnnames.style
>     rows = nrow(result)
>     ymax = max(c(1, result))
>     ymin = min(c(-1, result))
>     op <- par(oma = c(2, 0, 4, 0), mar = c(0, 4, 0, 4))
>     layout(matrix(c(1:columns.style, columns.style + 1, columns.style +
>         2), nc = 1, byrow = TRUE))
>     for (i in 1:columns.style) {
>         if (even(i))
>             yaxis.right = TRUE
>         else yaxis.right = FALSE
>         chart.TimeSeries(result[, i, drop = F], type = "h", lend = 
> "butt",
>             xaxis = FALSE, main = "", ylab = colnames(result)[i],
>             ylim = c(ymin, ymax), yaxis.right = yaxis.right,
>             ...)
>     }
>     positives = result
>     for (column in 1:ncol(result)) {
>         for (row in 1:nrow(result)) {
>             positives[row, column] = max(0, result[row, column])
>         }
>     }
>     negatives = result
>     for (column in 1:ncol(result)) {
>         for (row in 1:nrow(result)) {
>             negatives[row, column] = min(0, result[row, column])
>         }
>     }
>     sumpositives = zoo(apply(positives, 1, sum), order.by = 
> index(positives))
>     sumnegatives = zoo(apply(negatives, 1, sum), order.by = 
> index(negatives))
>     net = apply(result, 1, sum)
>     if (even(columns.style + 1))
>         yaxis.right = TRUE
>     else yaxis.right = FALSE
>     chart.TimeSeries(cbind(sumpositives, sumnegatives), type = "h",
>         lend = "butt", xaxis = FALSE, main = "", ylab = "Total",
>         yaxis.right = yaxis.right, ...)
>     lines(1:rows, net)
>     if (even(columns.style + 2))
>         yaxis.right = TRUE
>     else yaxis.right = FALSE
>     chart.TimeSeries(fit, type = "l", xaxis = TRUE, main = "",
>         ylab = "AdjR^2", ylim = c(0, 1), yaxis.right = yaxis.right,
>         ...)
>     mtext(main, side = 3, outer = TRUE, font = 2, cex = 1.2,
>         line = 1)
>     par(op)
> }
> 
> -- 
> Peter Carl
> http://www.braverock.com/~peter
> 
> > Hi Carl,
> >
> >  Many thanks for your quick reply. Just a follow up on  this. While I 
> have
> > installed PA pages I wasn't too successful in finding  further 
> information
> > in respect of implementing the function.page RollingStyle which would
> > allow
> > me to plot the R-squared over time for my returns based analysis
> > (Sharpe-model).Would you mind pointing me to some further information?
> >
> >   Also, is there a straightforward way to chart or calculate each 
> factor
> > weight
> >  so  that the values can be read easily (while chart.RollingStyle. 
> gives a
> > good graphical impression of the styles, I'd also be interested in
> > obtaining  an idea of the exact weightings at some point in time, e.g.
> > showing  min/max over time and potentially also some kind of summary
> > statistics like avg or sd of the style attributes)
> >
> >  Some help on this would be awesome - thks.
> >
> >  Phil
> >>         -------- Original-Nachricht --------
> >> Datum: Tue, 6 Sep 2011 09:38:37 -0500
> >> Von: "Peter Carl" <peter@braverock.com>
> >> An: "Philipp Haumueller" <phaumueller@gmx.net>
> >> CC: r-sig-finance@r-project.org
> >> Betreff: Re: [R-SIG-Finance] PerformanceAnalytics - Style Analysis-
> >> plotting R squared over time
> >>
> >>         Phil,
> >>
> >> The function page.RollingStyle in PApages (also on RForge) shows
> >> something
> >> of a brute-force way to do it.  I'm sure there's a better way, but 
> that
> >> should work for you.
> >>
> >> pcc
> >> --
> >> Peter Carl
> >> http://www.braverock.com/~peter
> >>
> >> > Dear all,
> >> >
> >> > I am running some analysis based on an asset factor model (Sharpe
> >> model
> >> -
> >> > Style Analyses) in the Package PerformanceAnalytics/R-Forge.While
> >> > calculating weights etc. works fine I would also like to
> >> calculate/plot
> >> > rolling R-squared values of the Sharpe model over time? Are there 
> any
> >> > suggestions how to run this?
> >> >
> >> > Your help is greatly appreciated - thx,
> >> >
> >> > Phil
> >> > --
> >> >
> >> >
> >> >
> >> > 	[[alternative HTML version deleted]]
> >> >
> >> > _______________________________________________
> >> > R-SIG-Finance@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.
> >> >
> >>
> >>
> >>
> >
> > --
> > Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
> > belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
> >
> 
> 
> 
        
-- 



	[[alternative HTML version deleted]]

