Calculates orthogonal polynomials (P.W. Lane).

### Options

`MAXDEGREE` = scalar |
Maximum degree of polynomial to be calculated; default is the number of identifiers in the pointer specified by the `POLYNOMIAL` parameter |
---|---|

`WEIGHTS` = variate |
Weights to be used in orthogonalization; default `*` gives an equal weight to each unit |

### Parameters

`X` = variates |
Values from which to calculate the polynomials; no default – this parameter must be set |
---|---|

`POLYNOMIAL` = pointers |
Identifiers of variates to store results; no default – this parameter must be set |

### Description

Polynomials of low degree can be fitted by ordinary linear regression, estimating effects of terms `X`

, `X**2`

, `X**3`

, and so on for a variate `X`

. However, it is sometimes preferable to arrange that successive polynomial terms are orthogonal to each other; certainly, there are likely to be numerical problems with polynomials of degree five or more, if they are not orthogonal. `ORTHPOLYNOMIAL`

calculates orthogonal polynomials up to a specified maximum degree from a given variate. The orthogonalization can be weighted by specifying a variate of weights.

Options: `MAXDEGREE`

, `WEIGHTS`

. Parameters: `X`

, `POLYNOMIAL`

.

### Method

Successive formation of polynomials, starting with *p*_{1} = *x* – mean(*x*), ensuring orthogonality of *p _{i}* with

*p*

_{1}…

*p*–

_{i}_{1}; that is:

∑ ( *weight* × *p _{i}* ×

*p*) = 0

_{j}### Action with `RESTRICT`

A variate in the `X`

parameter can be restricted: the restriction is transferred to the calculated polynomials, and to the weight variate if specified.

### See also

Procedure: `VORTHPOLYNOMIAL`

.

Commands for: Calculations and manipulation.

### Example

CAPTION 'ORTHPOLYNOMIAL example',!t(\ 'The example models changes of population with time by fitting a',\ 'quartic regression model; future populations are predicted by',\ 'including future dates with weight zero. Thus population figures',\ '(variate pop) are available for dates 1811, 1821 ... 1931; for',\ 'dates 1941, 1951 ... 1991 population figures are given as missing',\ 'values * and weights w as 0.'); STYLE=meta,plain VARIATE [VALUES=1811, 1821 ... 1991] year & [VALUES=13(1), 6(0)] w & [VALUES=10.16, 12.00, 13.90, 15.91, 17.93, 20.07, 22.71,\ 25.97, 29.00, 32.53, 36.07, 37.89, 39.95, 6(*)] pop PRINT 'Get (weighted) orthogonal polynomials up to degree 4.' ORTHPOLYNOMIAL [MAX=4; WEIGHT=w] year; POLY=p2 PRINT year,w,pop,p2[]; FIELD=5,2,6,4(12); DEC=0,0,2,4(0) PRINT 'Fit quartic model: correlations should be zero.' MODEL [WEIGHT=w] pop FIT [PRINT=model,summary,estimates,correlation,fitted] p2[] PRINT 'Display dangers of extrapolation!' RKEEP FITTED=fitted GRAPH [NROWS=21; NCOLUMNS=61] fitted,pop; year; METHOD=curve,point PRINT 'Compare with non-orthogonal polynomials.' CALC year2,year3,year4 = year,year2,year3 * year FIT year,year2,year3,year4