On 14/01/2015 14:20, Stanislav Aggerwal wrote:> This method of finding yhat as x %*% b works when I use raw polynomials:
>
> x<-1:8
> y<- 1+ 1*x + .5*x^2
> fit<-lm(y~poly(x,2,raw=T))
> b<-coef(fit)
> xfit<-seq(min(x),max(x),length=20)
> yfit<-b[1] + poly(xfit,2,raw=T) %*% b[-1]
> plot(x,y)
> lines(xfit,yfit)
>
> But it doesn't work when I use orthogonal polynomials:
>
> fit<-lm(y~poly(x,2))
> b<-coef(fit)
> yfit<-b[1] + poly(xfit,2) %*% b[-1]
> plot(x,y)
> lines(xfit,yfit,col='red')
>
> I have a feeling that the second version needs to incorporate poly() coefs
> (alpha and norm2) somehow. If so, please tell me how.
>
> I do know how to use predict() for this. I just want to understand how
> poly() works.
What matters is how lm() and predict() use poly(): see ?makepredictcall
and its code.
str(fit) might also help.
>
> Thanks very much for any help
> Stan
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>
Please do, and do not send HTML.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford
1 South Parks Road, Oxford OX1 3TG, UK