choose_order function

Choosing order of a polynomial model

Choosing order of a polynomial model

This function takes a simple linear regression model and displays the adjusted R^2 and AICc for the original model (order 1) and for polynomial models up to a specified maximum order and plots the fitted models.

choose_order(M,max.order=6,sort=FALSE,loc="topleft",...)

Arguments

  • M: A simple linear regression model fitted with lm()
  • max.order: The maximum order of the polynomial model to consider.
  • sort: How to sort the results. If TRUE, "R2", "r2", "r2adj", or "R2adj", sorts from highest to lowest adjusted R^2. If "AIC", "aic", "AICC", "AICc", sorts by AICc.
  • loc: Location of the legend. Can also be "top", "topright", "bottomleft", "bottom", "bottomright", "left", "right", "center"
  • ...: Additional arguments to plot(), e.g., pch

Details

The function outputs a table of the order of the polynomial and the according adjusted R^2 and AICc. One strategy for picking the best order is to find the highest value of R^2 adjusted, then to choose the smallest order (simplest model) that has an R^2 adjusted within 0.005. Another strategy is the find the lowest value of AICc, then to choose the smallest order that has an AICc no more than 2 higher.

The scatterplot of the data is provided and the fitted models are displayed as well.

References

Introduction to Regression and Modeling

Author(s)

Adam Petrie

Examples

data(BULLDOZER) M <- lm(SalePrice~YearMade,data=BULLDOZER) #Unsorted list, messing with plot options to make it look alright choose_order(M,pch=20,cex=.3) #Sort by R2adj. A 10th order polynomial is highest, but this seems overly complex choose_order(M,max.order=10,sort=TRUE) #Sort by AICc. 4th order is lowest, but 2nd order is simpler and within 2 of lowest choose_order(M,max.order=10,sort="aic")
  • Maintainer: Adam Petrie
  • License: GPL (>= 2)
  • Last published: 2020-02-21

Useful links