Ajay Narottam Shah
2006-Jan-26 16:40 UTC
[R] Prediction when using orthogonal polynomials in regression
Folks, I'm doing fine with using orthogonal polynomials in a regression context: # We will deal with noisy data from the d.g.p. y = sin(x) + e x <- seq(0, 3.141592654, length.out=20) y <- sin(x) + 0.1*rnorm(10) d <- lm(y ~ poly(x, 4)) plot(x, y, type="l"); lines(x, d$fitted.values, col="blue") # Fits great! all.equal(as.numeric(d$coefficients[1] + m %*% d$coefficients[2:5]), as.numeric(d$fitted.values)) What I would like to do now is to apply the estimated model to do prediction for a new set of x points e.g. xnew <- seq(0,5,.5) We know that the predicted values should be roughly sin(xnew). What I don't know is: how do I use the object `d' to make predictions for xnew? -- Ajay Shah http://www.mayin.org/ajayshah ajayshah at mayin.org http://ajayshahblog.blogspot.com <*(:-? - wizard who doesn't know the answer.
Achim Zeileis
2006-Jan-27 11:31 UTC
[R] Prediction when using orthogonal polynomials in regression
On Thu, 26 Jan 2006 22:10:23 +0530 Ajay Narottam Shah wrote:> Folks, > > I'm doing fine with using orthogonal polynomials in a regression > context: > > # We will deal with noisy data from the d.g.p. y = sin(x) + e > x <- seq(0, 3.141592654, length.out=20) > y <- sin(x) + 0.1*rnorm(10) > d <- lm(y ~ poly(x, 4)) > plot(x, y, type="l"); lines(x, d$fitted.values, col="blue")fitted(d) is usually the preferred way of accessing the fitted values (although equivalent in this particular case).> great! all.equal(as.numeric(d$coefficients[1] + m %*% d$coefficients > [2:5]), as.numeric(d$fitted.values)) > > What I would like to do now is to apply the estimated model to do > prediction for a new set of x points e.g. > xnew <- seq(0,5,.5) > > We know that the predicted values should be roughly sin(xnew). What I > don't know is: how do I use the object `d' to make predictions for > xnew?Use predict: predict(d, data.frame(x = xnew)) which is pretty evocative. Best, Z> -- > Ajay Shah > http://www.mayin.org/ajayshah > ajayshah at mayin.org > http://ajayshahblog.blogspot.com <*(:-? - wizard who doesn't know the > answer. > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html >
Gabor Grothendieck
2006-Jan-27 14:46 UTC
[R] Prediction when using orthogonal polynomials in regression
On 1/26/06, Ajay Narottam Shah <ajayshah at mayin.org> wrote:> Folks, > > I'm doing fine with using orthogonal polynomials in a regression context: > > # We will deal with noisy data from the d.g.p. y = sin(x) + e > x <- seq(0, 3.141592654, length.out=20)This has already been answered but note that pi is a built in variable in R.> y <- sin(x) + 0.1*rnorm(10) > d <- lm(y ~ poly(x, 4)) > plot(x, y, type="l"); lines(x, d$fitted.values, col="blue") # Fits great! > all.equal(as.numeric(d$coefficients[1] + m %*% d$coefficients[2:5]), > as.numeric(d$fitted.values)) > > What I would like to do now is to apply the estimated model to do > prediction for a new set of x points e.g. > xnew <- seq(0,5,.5) > > We know that the predicted values should be roughly sin(xnew). What I > don't know is: how do I use the object `d' to make predictions for > xnew? > > -- > Ajay Shah http://www.mayin.org/ajayshah > ajayshah at mayin.org http://ajayshahblog.blogspot.com > <*(:-? - wizard who doesn't know the answer. > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >