Hi, Gabor, it seems ARIMA model does not have that problem. For example: set.seed(123) y<-ts(c(1:20)) x = ts(rnorm(20)) z = ts(rnorm(20)) tt<-ts(cbind(x, lag(x,-1),lag(x,-2),z))
fit <- arima(y[1:15],order=c(1,0,0),xreg=tt[(1:15),]) fit pred <- predict(fit, n.ahead=5,tt[(16:20),]) pred What do you make of this? Thanks. Harry On Thu, Jul 23, 2009 at 6:36 PM, Gabor Grothendieck <[email protected] > wrote: > Try this: > > library(dyn) > set.seed(123) > tz <- zoo(cbind(Y = 0, x = rnorm(10), z = rnorm(10))) > > # simulate values > for(i in 2:10) { > tz$Y[i] <- with(tz, 2*Y[i-1] + 3*z[i] +4* x[i] + 5*x[i-1] + rnorm(1)) > } > > # keep copy of tz to compare later to simulated Y's > tz.orig <- tz > > # NA out Y's that are to be predicted > tz[7:10, "Y"] <- NA > > L <- function(x, k = 1) lag(x, -k) > > # predict 1 ahead each iteration > for(i in 7:10) { > # fit based on first i-1 values > fit <- dyn$lm(Y ~ L(Y) + z + L(x, 0:1), tz, subset = seq_len(i-1)) > # get prediction for ith value > tz[i, "Y"] <- tail(predict(fit, tz[1:i,]), 1) > } > cbind(pred = tz[7:10, "Y"], act = tz.orig[7:10, "Y"]) > > > On Thu, Jul 23, 2009 at 9:02 PM, Hongwei Dong<[email protected]> wrote: > > What I want R to do is to use the estimated Y at t-1 to be the lag(Y,-1) > in > > the forecast equation for time t. Is there anyway I can realize this with > R? > > For example, when the Y value for year 18 is forecast, the estimated Y > for > > year 17 is used, not the actual Y for year 17 already in the data. > > Thanks for you patience. I appreciate it. > > Harry > > > > > > > > On Thu, Jul 23, 2009 at 5:44 PM, Gabor Grothendieck > > <[email protected]> wrote: > >> > >> You can't remove Y since its in the rhs of your model. > >> > >> On Thu, Jul 23, 2009 at 8:25 PM, Hongwei Dong<[email protected]> wrote: > >> > Thanks, Gabor. Here are the problems I'm trying to solve. > >> > FIRST, I run this to simulate a 20 years time series process. The data > >> > from > >> > 1-15 years are used to estimate the model, and this model is used to > >> > predict > >> > the year from 16-20. The following script works. > >> > set.seed(123) > >> > tt <- ts(cbind(Y = 1:20, x = rnorm(20), z = rnorm(20))) > >> > L <- function(x, k = 1) lag(x, -k) > >> > tt.zoo <- as.zoo(tt) > >> > fit <- dyn$lm(Y ~ L(Y) + z + L(x, 0:1), tt.zoo[(1:15), ]) > >> > fit > >> > pred <- predict(fit, tt.zoo[(16:20),]) > >> > pred > >> > SECONDLY, I use similar script, but pretend that we do not know the Y > >> > data > >> > from year 16-20. We know x and z for year 16-20, and use them predict > Y > >> > based on the model estimated from 1-15 years. So, in the "newdata" > part, > >> > I > >> > use tt.zoo[(16:20), (2:3)] to remove the Y out. here is the script. > >> > Unfortunately, it does not work in that way. > >> > pred1 <- predict(fit, tt.zoo[(16:20),(2:3)]) > >> > pred1 > >> > It will be greatly appreciated if you can give me some guide on this. > >> > Thanks. > >> > Harry > >> > > >> > > >> > > >> > > >> > > >> > > >> > On Wed, Jul 22, 2009 at 10:04 PM, Gabor Grothendieck > >> > <[email protected]> wrote: > >> >> > >> >> Use dyn.predict like this: > >> >> > >> >> > library(dyn) > >> >> > x <- y <- zoo(1:5) > >> >> > mod <- dyn$lm(y ~ lag(x, -1)) > >> >> > predict(mod, list(x = zoo(6:10, 6:10))) > >> >> 7 8 9 10 > >> >> 7 8 9 10 > >> >> > >> >> > >> >> On Thu, Jul 23, 2009 at 12:54 AM, Hongwei Dong<[email protected]> > >> >> wrote: > >> >> > I have a dynamic time series model like this: > >> >> > dyn$lm( y ~ lag(y,-1) + x + lag(x,-1)+lag(x,-2) ) > >> >> > > >> >> > I need to do an out of sample forecast with this model. Is there > any > >> >> > way > >> >> > I > >> >> > can do this with R? > >> >> > It would be greatly appreciated if some one can give me an example. > >> >> > Thanks. > >> >> > > >> >> > > >> >> > Harry > >> >> > > >> >> > [[alternative HTML version deleted]] > >> >> > > >> >> > ______________________________________________ > >> >> > [email protected] mailing list > >> >> > 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. > >> >> > > >> > > >> > > > > > > [[alternative HTML version deleted]] ______________________________________________ [email protected] mailing list 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.

