This may be useful: Sven Hammarling and Craig Lucas "Updating the QR factorization and the least squares problem" http://eprints.ma.man.ac.uk/1192/01/covered/MIMS_ep2008_111.pdf http://www.maths.manchester.ac.uk/~clucas/updating/
2016-07-21 20:02 GMT+02:00 jeremiah rounds <roundsjerem...@gmail.com>: > Hi, > > A not unusual task is performing a multiple regression in a rolling window > on a time-series. A standard piece of advice for doing in R is something > like the code that follows at the end of the email. I am currently using > an "embed" variant of that code and that piece of advice is out there too. > > But, it occurs to me that for such an easily specified matrix operation > standard R code is really slow. rollapply constantly returns to R > interpreter at each window step for a new lm. All lm is at its heart is > (X^t X)^(-1) * Xy, and if you think about doing that with Rcpp in rolling > window you are just incrementing a counter and peeling off rows (or columns > of X and y) of a particular window size, and following that up with some > matrix multiplication in a loop. The psuedo-code for that Rcpp > practically writes itself and you might want a wrapper of something like: > rolling_lm (y=y, x=x, width=4). > > My question is this: has any of the thousands of R packages out there > published anything like that. Rolling window multiple regressions that > stay in C/C++ until the rolling window completes? No sense and writing it > if it exist. > > > Thanks, > Jeremiah > > Standard (slow) advice for "rolling window regression" follows: > > > set.seed(1) > z <- zoo(matrix(rnorm(10), ncol = 2)) > colnames(z) <- c("y", "x") > > ## rolling regression of width 4 > rollapply(z, width = 4, > function(x) coef(lm(y ~ x, data = as.data.frame(x))), > by.column = FALSE, align = "right") > > ## result is identical to > coef(lm(y ~ x, data = z[1:4,])) > coef(lm(y ~ x, data = z[2:5,])) > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.