Learn R Programming

Momocs (version 1.1.6)

opoly: Calculate orthogonal polynomial fits on open outlines

Description

Calculates orthogonal polynomial coefficients, through a linear model fit (see lm), from a matrix of (x; y) coordinates or a Opn object

Usage

opoly(x, ...)

# S3 method for default opoly(x, degree, ...)

# S3 method for Opn opoly(x, degree, baseline1 = c(-0.5, 0), baseline2 = c(0.5, 0), nb.pts = 120, ...)

Arguments

x
a matrix (or a list) of (x; y) coordinates
...
useless here
degree
polynomial degree for the fit (the Intercept is also returned)
baseline1
numeric the \((x; y)\) coordinates of the first baseline by default \((x= -0.5; y=0)\)
baseline2
numeric the \((x; y)\) coordinates of the second baseline by default \((x= 0.5; y=0)\)
nb.pts
number of points to sample and on which to calculate polynomials

Value

a list with components when applied on a single shape:
  • coeff the coefficients (including the intercept)
  • ortho whether orthogonal or natural polynomials were fitted
  • degree degree of the fit (could be retrieved through coeff though)
  • baseline1 the first baseline point (so far the first point)
  • baseline2 the second baseline point (so far the last point)
  • r2 the r2 from the fit
  • mod the raw lm model
otherwise an OpnCoe object.

See Also

Other polynomials: npoly, opoly_i

Examples

Run this code
data(olea)
o <- olea[1]
op <- opoly(o, degree=4)
op
# shape reconstruction
opi <- opoly_i(op)
lines(opi, col='red')
# R2 for degree 1 to 10
r <- numeric()
for (i in 1:10) { r[i] <- opoly(o, degree=i)$r2 }
plot(2:10, r[2:10], type='b', pch=20, col='red', main='R2 / degree')

Run the code above in your browser using DataLab