poly

0th

Percentile

Compute Orthogonal Polynomials

Returns or evaluates orthogonal polynomials of degree 1 to degree over the specified set of points x: these are all orthogonal to the constant polynomial of degree 0. Alternatively, evaluate raw polynomials.

Keywords
math
Usage
poly(x, …, degree = 1, coefs = NULL, raw = FALSE, simple = FALSE)
polym  (…, degree = 1, coefs = NULL, raw = FALSE)

# S3 method for poly predict(object, newdata, …)

Arguments
x, newdata

a numeric vector at which to evaluate the polynomial. x can also be a matrix. Missing values are not allowed in x.

degree

the degree of the polynomial. Must be less than the number of unique points when raw is false, as by default.

coefs

for prediction, coefficients from a previous fit.

raw

if true, use raw and not orthogonal polynomials.

simple

logical indicating if a simple matrix (with no further attributes but dimnames) should be returned. For speedup only.

object

an object inheriting from class "poly", normally the result of a call to poly with a single vector argument.

poly, polym: further vectors. predict.poly: arguments to be passed to or from other methods.

Details

Although formally degree should be named (as it follows ), an unnamed second argument of length 1 will be interpreted as the degree, such that poly(x, 3) can be used in formulas.

The orthogonal polynomial is summarized by the coefficients, which can be used to evaluate it via the three-term recursion given in Kennedy & Gentle (1980, pp.343--4), and used in the predict part of the code.

poly using is just a convenience wrapper for polym: coef is ignored. Conversely, if polym is called with a single argument in it is a wrapper for poly.

Value

For poly and polym() (when simple=FALSE and coefs=NULL as per default): A matrix with rows corresponding to points in x and columns corresponding to the degree, with attributes "degree" specifying the degrees of the columns and (unless raw = TRUE) "coefs" which contains the centering and normalization constants used in constructing the orthogonal polynomials and class c("poly", "matrix").

For poly(*, simple=TRUE), polym(*, coefs=<non-NULL>), and predict.poly(): a matrix.

Note

This routine is intended for statistical purposes such as contr.poly: it does not attempt to orthogonalize to machine accuracy.

References

Chambers, J. M. and Hastie, T. J. (1992) Statistical Models in S. Wadsworth & Brooks/Cole.

Kennedy, W. J. Jr and Gentle, J. E. (1980) Statistical Computing Marcel Dekker.

See Also

contr.poly.

cars for an example of polynomial regression.

Aliases
  • poly
  • polym
  • predict.poly
  • makepredictcall.poly
Examples
library(stats) # NOT RUN { od <- options(digits = 3) # avoid too much visual clutter (z <- poly(1:10, 3)) predict(z, seq(2, 4, 0.5)) zapsmall(poly(seq(4, 6, 0.5), 3, coefs = attr(z, "coefs"))) zm <- zapsmall(polym ( 1:4, c(1, 4:6), degree = 3)) # or just poly(): (z1 <- zapsmall(poly(cbind(1:4, c(1, 4:6)), degree = 3))) ## they are the same : stopifnot(all.equal(zm, z1, tol = 1e-15)) ## poly(<matrix>, df) --- used to fail till July 14 (vive la France!), 2017: m2 <- cbind(1:4, c(1, 4:6)) pm2 <- zapsmall(poly(m2, 3)) # "unnamed degree = 3" stopifnot(all.equal(pm2, zm, tol = 1e-15)) options(od) # }
Documentation reproduced from package stats, version 3.5.1, License: Part of R 3.5.1

Community examples

Looks like there are no examples yet.