Hi, Gabor and Other R users,
  I'm re-posting my script and the results I got.

  here is the dynamic model I used to estimate in-sample model (1996-2006)
and it works:

  fit<-dyn$lm(Y~lag(Y,-1)+z+x+lag(x,-1)+lag(x,-2)+lag(x,-3)+lag(x,-4))

  Then I used this model to do out sample forecast with the following
scripts, which do not work:

 z<-ts(Z[41:52],start=2006,frequency=4)
 x<-ts(X[41:52],start=2006,frequency=4)

newdata<-data.frame(cbind(z,x))
newdata<-ts(newdata,start=2006,frequency=4)
pred<-predict(fit,newdata)

Here is the results I got from R:

             Qtr1     Qtr2     Qtr3     Qtr4
2006       NA       NA       NA       NA
2007 3083.362       NA       NA       NA
2008       NA       NA       NA       NA
2009       NA       NA       NA       NA


I got only one prediction for the first quarter in 2007. Intuitively, there
might be two problems: the definition of the newdata and how to define Y in
newdata. But I just can't figure this out. It will greatly appreciated if
someone can give me some help. Thanks.

Harry



On Thu, Jul 23, 2009 at 5:15 AM, Gabor Grothendieck <ggrothendi...@gmail.com
> wrote:

> You have to use consistent classes.  You can't start out using
> ts class and then suddenly switch to zoo class as if you had been
> using zoo all along.   Either use ts everywhere or zoo everywhere.
>
> Also in the future please post reproducible examples as requested
> at the bottom of every message to r-help.  That means include
> a minimal amount of data so we can get exactly what you
> are getting.
>
> On Thu, Jul 23, 2009 at 4:48 AM, Hongwei Dong<pdxd...@gmail.com> wrote:
> > Thanks, Gabor. This is really helpful.
> > When the regressive part, lag(Y,-1), is not included, my sytax works
> well.
> > However, when I include the lag(Y) in the model, the prediction part does
> > not work. Here is my sytax for in-sample estimation and it works well:
> > fit<-dyn$lm(Y~lag(Y,-1)+x+lag(x,-1)+lag(x,-2)+lag(x,-3)+lag(x,-4)+z).
> > Then I use this model to do out of sample prediction:
> > x<-ts(X[41:52],start=2006,frequency=4)
> > z<-ts(Z[41:52],start=2006,frequency=4)
> > newdata<-data.frame(cbind(x,z))
> > newdata<-zooreg(newdata)
> > pred<-predict(fit,newdata)
> > With these, I got weird result, a prediction for each year from year 1 to
> > the first quarter of year 2007 (all "NA"). What I expect is a prediction
> for
> > the 8 quarters from 2007 to 2008. Intuitively, I know there must be
> > something wrong with my newdata definition. But I can't figure it out.
> I'll
> > appreciate it very much if you can give some suggestions to modify my
> > syntax. Thanks.
> >
> > Harry
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > On Wed, Jul 22, 2009 at 10:53 PM, Gabor Grothendieck
> > <ggrothendi...@gmail.com> wrote:
> >>
> >> Here is an example closer to yours.
> >>
> >> > library(dyn)
> >> > set.seed(123)
> >> > x <- zooreg(rnorm(10))
> >> > y <- zooreg(rnorm(10))
> >> > L <- function(x, k = 1) lag(x, k = -k)
> >> > mod <- dyn$lm(y ~ L(y) + L(x, 0:2))
> >> > mod
> >>
> >> Call:
> >> lm(formula = dyn(y ~ L(y) + L(x, 0:2)))
> >>
> >> Coefficients:
> >> (Intercept)         L(y)   L(x, 0:2)1   L(x, 0:2)2   L(x, 0:2)3
> >>    0.06355     -0.74540      0.63649      0.44957     -0.41360
> >>
> >> > newdata <- cbind(x = c(coredata(x), rnorm(1)), y = c(coredata(y),
> >> > rnorm(1)))
> >> > newdata <- zooreg(newdata)
> >> > predict(mod, newdata)
> >>         1          2          3          4          5          6
> >>  7
> >>        NA         NA  0.9157808  0.6056333 -0.5496422  1.5984615
> >> -0.2574875
> >>         8          9         10         11         12         13
> >> -1.6148859  0.3329285 -0.5284646 -0.1799693         NA         NA
> >>
> >>
> >> On Thu, Jul 23, 2009 at 1:04 AM, Gabor
> >> Grothendieck<ggrothendi...@gmail.com> 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<pdxd...@gmail.com>
> 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]]
> >> >>
> >> >> ______________________________________________
> >> >> R-help@r-project.org 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]]

______________________________________________
R-help@r-project.org 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.

Reply via email to