[R] Regression on non linear model

Prof Brian D Ripley ripley at stats.ox.ac.uk
Thu Oct 14 08:38:39 CEST 1999

On 13 Oct 1999, Douglas Bates wrote:

> Peppy <s.adi.purnomo at EnergyLink.co.nz> writes:
> > I have a model that I believe to be non linear.  The relationship is
> > something like:
> > 
> > Response = Var1 + Var1^2 + Var1^3
> In terms of the way the parameters enter the model, this is still a
> linear model, even though it is nonlinear in terms of the variable.
> > Can I examine this relationship using glm or lm?  However, glm or lm gives
> > out pnly 1 coeficient for the model which is on Var1,  unless I created some
> > dummy var like (Var2 = Var1^2 and Var3 = Var1^3).
> You are correct.  This is a deficiency in the model formula language
> used in R.  The meaning of the ^2 operator in formulas is appropriate
> for factors but not the expected meaning for numeric variables.
> > Is there any other function handling this relationship?  
> The preferred way to do this is to use the I() function to protect
> the ^2 and ^3 from being evaluated as part of the linear model
> formula.  That is, write the call to lm with
>  formula = Response ~ Var1 + I(Var1^2) + I(Var1^3)

I was doing this in a practical class yesterday. There is another way,

Response ~ poly(Var1, 3)

which fits the same cubic model by using orthogonal polynomials, and
that has a number of numerical and statistical advantages. The fitted
values will be the same, but the coefficients are those of the orthogonal
polynomials, not the terms in the polynomial.  As I was telling my
students, you might like to compare the two approaches.

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 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list