uik: Implementation of Unit Invariant Knee (UIK) method for...

View source: R/uik.R

uikR Documentation

Implementation of Unit Invariant Knee (UIK) method for finding the knee point of a curve

Description

It finds the UIK estimation for elbow or knee point of a curve, see [1] for details.

Usage

uik(x, y)

Arguments

x

The numeric vector of x-abscissas, must be of length at least 4.

y

The numeric vector of y-abscissas, must be of length at least 4.

Details

Given the x, y numeric vectors it first checks the curve by using check_curve and classifies it as convex, concave or convex/concave, concave/convex.

Value

It returns the x-abscissa which is the UIK estimation for the knee point.

Author(s)

Demetris T. Christopoulos

References

[1] Christopoulos, Demetris T., Introducing Unit Invariant Knee (UIK) As an Objective Choice for Elbow Point in Multivariate Data Analysis Techniques (March 1, 2016). Available at SSRN: https://ssrn.com/abstract=3043076 or http://dx.doi.org/10.2139/ssrn.3043076

See Also

check_curve and d2uik

Examples

## Lets create a convex data set
x=seq(1,10,0.05)
y=1/x
plot(x,y)
knee=uik(x,y)
knee
## [1] 3.15
abline(v=knee)
## Lets add noise to them now
set.seed(20190625)
x=seq(1,10,0.05)
y=1/x+runif(length(x),-0.02,0.02)
plot(x,y)
knee=uik(x,y)
knee
## [1] 3.3
abline(v=knee)

inflection documentation built on June 15, 2022, 5:07 p.m.