poly {stats}  R Documentation 
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) polym(..., degree = 1, raw = FALSE) ## S3 method for class 'poly' predict(object, newdata, ...)
x, newdata 
a numeric vector at which to evaluate the
polynomial. 
degree 
the degree of the polynomial. Must be less than the
number of unique points if 
coefs 
for prediction, coefficients from a previous fit. 
raw 
if true, use raw and not orthogonal polynomials. 
object 
an object inheriting from class 
... 

Although formally degree
should be named (as it follows
...
), an unnamed second argument of length 1 will be
interpreted as the degree.
The orthogonal polynomial is summarized by the coefficients, which can
be used to evaluate it via the threeterm 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
.
For poly
with a single vector argument:
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. The matrix
has given class c("poly", "matrix")
.
For poly
and polym
with more than one input, and
predict.poly
: a matrix.
This routine is intended for statistical purposes such as
contr.poly
: it does not attempt to orthogonalize to
machine accuracy.
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"))) zapsmall(polym(1:4, c(1, 4:6), degree = 3)) # or just poly() zapsmall(poly(cbind(1:4, c(1, 4:6)), degree = 3)) options(od)