[R] problem with nested loop for regression
rcoder
mpdotbook at gmail.com
Sat Aug 2 22:12:01 CEST 2008
Hi everyone,
I'm experiencing difficulty getting the results I want when I use a nested
for loop. I have a data set to which I perform some calculations, and then
try to apply a regression over a rolling window. The code runs, but the
regression results I am getting (intercept and slope) are simply the same,
repeated again and again in the results matrix. The regression does not seem
to be obeying the instructions of the nested loop, which intend it to
calculate regression coefficients over a data one row at a time. I have been
struggling with the code for many days now, testing various parts, and I
cannot seem to get the nested loop to work as I want it to. I would be very
grateful for any suggestions. Below is a brief version of my code:
#Code start
library(zoo)
seed.set(1)
Pmat<-matrix(rnorm(1000), nrow=100, ncol=100)
maxcol<-ncol(Pmat)
maxrow<-nrow(Pmat)
startrow<-10
period<-10
wind<-2 #roll window
subdiv<-period/wind
rollstart<-11 #start roll at period+1
#converting Pmat into ts for rollapply() to work...
PmatTS<-ts(Pmat)
Preg<-matrix(NA,ncol=maxcol,nrow=2*maxrow)
PmatWt<-matrix(NA, nrow=subdiv,ncol=maxcol)
mult_col<-matrix(1:5, nrow=5, ncol=1)
#rolling calculations...
for (i in (rollstart):maxrow) #test loop - works
{
#extract the relevant timeframe...
dslice<-PmatTS[(i-period):i,] #slicing past 100 days
dslicets<-ts(dslice)
#operating on sliced data...
Pmin<-rollapply(dslicets, wind, by=wind, min, na.rm=F) #getting min
data at per quintile
Pmax<-rollapply(dslicets, wind, by=wind, max, na.rm=F)
Pmult<-Pmin*Pmax #calculating product
tt<-time(Pmult)
for (j in 1:5) #1st nested loop
{
PmatWt[j,]<-Pmult[j,]*mult_col[j,]
}
#rolling regression analysis...
for (k in 1:maxcol) #2nd nested loop
{
sel_col<-PmatWt[,k]
if(!all(is.na(sel_col))) {Preg[,k]<-coef(lm(tt~sel_col))}
}
}
#Code End
Thanks,
rcoder
--
View this message in context: http://www.nabble.com/problem-with-nested-loop-for-regression-tp18792841p18792841.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list