Skip to content

lm coefficients

6 messages · Sundar Dorai-Raj, Thomas Lumley, Spencer Graves +2 more

#
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:

            
#
On Tue, 3 Feb 2004, Timur Elzhov wrote:

            
<snip>
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:

            
#
Do read ?poly: you have orthogonal polynomials.
On Tue, 3 Feb 2004, Timur Elzhov wrote:

            
You asked for 4 and got 2?  Really?
No!
#
On Tue, Feb 03, 2004 at 05:27:40PM +0000, Prof Brian Ripley wrote:

            
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.