Is anyone aware of a package that allows one to perform a rolling
regression?

For instance, if I have a 1000 x 10 matrix and I want to loop through the
rows of the matrix repeating the regression on a constant sample of 100
rows:

x <- matrix(rnorm(1000*10),ncol=10)

rolling.regression <- function(x,window.width=100) {

        ans <- matrix(NA,ncol=ncol(x),nrow=(nrow(x)-window.width+1))
        for (i in window.width:nrow(x) ) {
                start.row <- (i - window.width + 1)
                end.row <- i
                result <- lm(x[start.row:end.row,1]~x[start.row:end.row,-1])
                # store result
                ans[i-window.width+1,] <- as.numeric(result$coef)
        }

        ans
}

tmp <- rolling.regression(x)


I'm sure there are more efficient ways to perform this analysis (using
lm.fit for instance), but is anyone aware of a package that does this type
of operation for fixed windows and expanding windows?

Thanks,
Whit Armstrong

        [[alternative HTML version deleted]]

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to