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
  • 13,015
  • 7
  • 27
  • 57

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
  • 8,169
  • 3
  • 15
  • 37