Dear R experts, Excuse me if my question will be stupid... I'd like to fit data with x^2 polynomial: d <- read.table(file = "Oleg.dat", head = TRUE) d X T 3720.00 4.113 3715.00 4.123 3710.00 4.132 ... out <- lm(T ~ poly(X, 4), data = d) out Call: lm(formula = T ~ poly(X, 2), data = d) Coefficients: (Intercept) poly(X, 2)1 poly(X, 2)2 9.803 -108.075 51.007 So, d$T best fitted with function 9.803 -108.075 * X + 51.007 * X^2, yes? T1 <- 9.803 -108.075 * d$X + 51.007 * d$X^2 T1 705453240 703557595 701664500 699773956 ... So, T1 obviosly gets non-sensible values.. :( Why? Thanks a lot! -- WBR, Timur.
Look at ?poly. It's doing something your not expecting. What you want is lm(T ~ X + I(X^2), data = d) Regards, Sundar Timur Elzhov wrote:> Dear R experts, > > Excuse me if my question will be stupid... > I'd like to fit data with x^2 polynomial: > > d <- read.table(file = "Oleg.dat", head = TRUE) > d > X T > 3720.00 4.113 > 3715.00 4.123 > 3710.00 4.132 > ... > > out <- lm(T ~ poly(X, 4), data = d) > out > Call: > lm(formula = T ~ poly(X, 2), data = d) > > Coefficients: > (Intercept) poly(X, 2)1 poly(X, 2)2 > 9.803 -108.075 51.007 > > So, d$T best fitted with function > 9.803 -108.075 * X + 51.007 * X^2, > yes? > > T1 <- 9.803 -108.075 * d$X + 51.007 * d$X^2 > T1 > 705453240 > 703557595 > 701664500 > 699773956 > ... > > So, T1 obviosly gets non-sensible values.. :( Why? > Thanks a lot! > > -- > WBR, > Timur. > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
On Tue, 3 Feb 2004, Timur Elzhov wrote:> Dear R experts, > > Excuse me if my question will be stupid... > I'd like to fit data with x^2 polynomial: ><snip>> out <- lm(T ~ poly(X, 4), data = d) > out > Call: > lm(formula = T ~ poly(X, 2), data = d) > > Coefficients: > (Intercept) poly(X, 2)1 poly(X, 2)2 > 9.803 -108.075 51.007 > > So, d$T best fitted with function > 9.803 -108.075 * X + 51.007 * X^2,No. The predictors are not X and X^2, but two orthogonal polynomials. Look at the help page for poly(). -thomas
The function "poly" produces orthogonal polynomials, and those depend on the exact combinations of levels of X in "d". Consider the following: > round(poly(1:3, 2), 2) 1 2 [1,] -0.71 0.41 [2,] 0.00 -0.82 [3,] 0.71 0.41 > round(poly(1:4, 2), 2) 1 2 [1,] -0.67 0.5 [2,] -0.22 -0.5 [3,] 0.22 -0.5 [4,] 0.67 0.5 Does this answer your question? spencer graves Timur Elzhov wrote:>Dear R experts, > >Excuse me if my question will be stupid... >I'd like to fit data with x^2 polynomial: > >d <- read.table(file = "Oleg.dat", head = TRUE) >d > X T > 3720.00 4.113 > 3715.00 4.123 > 3710.00 4.132 > ... > >out <- lm(T ~ poly(X, 4), data = d) >out > Call: > lm(formula = T ~ poly(X, 2), data = d) > > Coefficients: > (Intercept) poly(X, 2)1 poly(X, 2)2 > 9.803 -108.075 51.007 > >So, d$T best fitted with function > 9.803 -108.075 * X + 51.007 * X^2, >yes? > >T1 <- 9.803 -108.075 * d$X + 51.007 * d$X^2 >T1 > 705453240 > 703557595 > 701664500 > 699773956 > ... > >So, T1 obviosly gets non-sensible values.. :( Why? >Thanks a lot! > >-- >WBR, >Timur. > >______________________________________________ >R-help at stat.math.ethz.ch mailing list >https://www.stat.math.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > >
Do read ?poly: you have orthogonal polynomials. On Tue, 3 Feb 2004, Timur Elzhov wrote:> Dear R experts, > > Excuse me if my question will be stupid... > I'd like to fit data with x^2 polynomial: > > d <- read.table(file = "Oleg.dat", head = TRUE) > d > X T > 3720.00 4.113 > 3715.00 4.123 > 3710.00 4.132 > ... > > out <- lm(T ~ poly(X, 4), data = d)You asked for 4 and got 2? Really?> out > Call: > lm(formula = T ~ poly(X, 2), data = d) > > Coefficients: > (Intercept) poly(X, 2)1 poly(X, 2)2 > 9.803 -108.075 51.007 > > So, d$T best fitted with function > 9.803 -108.075 * X + 51.007 * X^2, > yes?No! -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
On Tue, Feb 03, 2004 at 05:27:40PM +0000, Prof Brian Ripley wrote:>> out <- lm(T ~ poly(X, 4), data = d) > You asked for 4 and got 2? Really?No, in fact I have a 4-power model, I just posted example with power of 2, for simplicity. I forgot to replace the poly argument :) Thanks too all who helped me! -- WBR, Timur.