Puzzling coefficients for linear fitting to polynom
Thanks for the clarifications. It seems the confusion resulted from making one assumption more than necessary regarding the behavior of poly(). Best wishes, Firas.
On Fri, 2008-03-07 at 18:33 +1000, Bill.Venables at csiro.au wrote:
It does help if you read the help information for poly.
?poly x <- 1:3 y <- c(1, 4, 9) f <- lm(y ~ poly(x, 2, raw = TRUE)) ## note raw = TRUE coef(f)
(Intercept) poly(x, 2, raw = TRUE)1 poly(x, 2, raw = TRUE)2
0 0 1
You were assuming a power basis for the polynomial, 1, x, x^2. If you want to use that you must declare that using raw = TRUE. The default is to use an orthogonal polynomial basis, and you can expect the coefficients relative to that to be, well, puzzling. Bill Venables CSIRO Laboratories PO Box 120, Cleveland, 4163 AUSTRALIA Office Phone (email preferred): +61 7 3826 7251 Fax (if absolutely necessary): +61 7 3826 7304 Mobile: +61 4 8819 4402 Home Phone: +61 7 3286 7700 mailto:Bill.Venables at csiro.au http://www.cmis.csiro.au/bill.venables/ -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Firas Swidan, PhD Sent: Friday, 7 March 2008 6:16 PM To: r-help at r-project.org Subject: [R] Puzzling coefficients for linear fitting to polynom Hi, I can not comprehend the linear fitting results of polynoms. For example, given the following data (representing y = x^2):
x <- 1:3 y <- c(1, 4, 9)
performing a linear fit
f <- lm(y ~ poly(x, 2))
gives weird coefficients:
coefficients(f)
(Intercept) poly(x, 2)1 poly(x, 2)2 4.6666667 5.6568542 0.8164966 However the fitted() result makes sense:
fitted(f)
1 2 3 1 4 9 This is very confusing. How should one understand the result of coefficients()? Thanks for any tips, Firas.
Firas Swidan, PhD Founder and CEO Olymons: Blessing Machines with Vision (TM) http://www.olymons.com P.O.Box 8125 Nazareth 16480 Israel Cell: +.972.(0)54.733.1788