poly {base} | R Documentation

## Compute Orthogonal Polynomials

### Description

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.

### Usage

    poly(x, ..., degree = 1, coefs = NULL)
    polym(..., degree)
    predict(object, newdata, ...)

### Arguments

`x, newdata` | a numeric vector at which to evaluate the polynomial. `x` can also be a matrix.
`degree` | the degree of the polynomial
`coefs` | for prediction, coefficients from a previous fit.
`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.

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 use in the ``predict'' part of the code.

### Value

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 `"coefs"` which contains the centring and normalization constants used in constructing the orthogonal polynomials. The matrix is given class `c("poly", "matrix")` as from R 1.5.0.
Other cases of `poly` and `polym`, 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.

### Author(s)

B. D. Ripley

### References

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

### See Also

`contr.poly`

### Examples

    (z <- poly(1:10, 3))
    predict(z, seq(2, 4, 0.5))
    poly(seq(4, 6, 0.5), 3, coefs = attr(z, "coefs"))

    polym(1:4, c(1, 4:6), degree=3) # or just poly()
    poly(cbind(1:4, c(1, 4:6)), degree=3)

[Package Contents]