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.
poly(x, ..., degree = 1, coefs = NULL, raw = FALSE, simple = FALSE) polym (..., degree = 1, coefs = NULL, raw = FALSE)
## S3 method for class 'poly': predict(object, newdata, \dots)
- x, newdata
- a numeric vector at which to evaluate the
xcan also be a matrix. Missing values are not allowed in
- the degree of the polynomial. Must be less than the
number of unique points if
raw = TRUE.
- for prediction, coefficients from a previous fit.
- if true, use raw and not orthogonal polynomials.
- logical indicating if a simple matrix (with no further
dimnames) should be returned. For speedup only.
- an object inheriting from class
"poly", normally the result of a call to
polywith a single vector argument.
polym: further vectors.
predict.poly: arguments to be passed to or from other methods.
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
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.
predict part of
... is just a convenience wrapper for
coef is ignored. Conversely, if
called with a single argument in
... it is a wrapper for
coefs=NULLas per default): A matrix with rows corresponding to points in
xand 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
polym(*, coefs=, and
predict.poly(): a matrix.
This routine is intended for statistical purposes such as
contr.poly: it does not attempt to orthogonalize to
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.
cars for an example of polynomial regression.
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)) options(od)