0

My model is

lm(formula = medv ~ crim + indus + rm + dis + crim * indus)

I have to add the polynomial term rm*rm of order 2 to the above model. How do we do this in R?

NelsonGon
  • 12,469
  • 5
  • 25
  • 52

1 Answers1

4

Here's two options.

lm(formula = medv ~ crim + indus + poly(rm, 2, raw = TRUE) + dis + crim * indus)
lm(formula = medv ~ crim + indus + rm + dis + crim * indus + I(rm^2))

The first uses poly(..., raw = TRUE) where raw = TRUE ensures the coefficients can be intepreted as usual. The latter uses the as is operator I(...) which evaluates whats within it before using it in a the formula context. Note that x^2 isn't translated into the normal polynomial in R within a formula context.

Oliver
  • 7,303
  • 3
  • 12
  • 35