Learn R Programming

inflection (version 1.3.6)

bede: Bisection Extremum Distance Estimator Method

Description

It iterates in a way similar to the well known bisection method in root finding, with the only exception that our \([a_{n},b_{n}]\) intervals contain the inflection point now and the rule for choosing them follows definitions and Lemmas of [1], [2].

Usage

bede(x, y, index)

Arguments

x

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

y

The numeric vector of the noisy or not y-ordinates, must be of length at least 4.

index

If data is convex/concave then index=0 If data is concave/convex then index=1

Value

It returns a list of two elements:

iplast

the last EDE estimation that was found

iters

a matrix with 4 columns ("n", "a", "b", "EDE") that give the number of x-y pairs used at each iteration, the [a,b] range where we searched and the EDE estimated inflection point.

Details

It is the fastest solution for very large data sets, over one million rows.

References

[1]Demetris T. Christopoulos (2014). Developing methods for identifying the inflection point of a convex/concave curve. arXiv:1206.5478v2 [math.NA]. https://arxiv.org/pdf/1206.5478v2.pdf

[2]Demetris T. Christopoulos (2016). On the efficient identification of an inflection point.International Journal of Mathematics and Scientific Computing, (ISSN: 2231-5330), vol. 6(1). https://veltech.edu.in/wp-content/uploads/2016/04/Paper-04-2016.pdf

See Also

See also the simple version ede, edeci and iterations plot using findipiterplot.

Examples

Run this code
# NOT RUN {
#
#Fisher-pry model with heavy noise, unequal spaces
#and 1 million cases:
N=10^6+1;
set.seed(2017-05-11);x=sort(runif(N,0,10));y=5+5*tanh(x-5)+runif(N,-1,1);
#
ptm <- proc.time()
tede=ede(x,y,0);tede;proc.time() - ptm
#         j1     j2      chi
# EDE 351061 648080 4.997139
# user  system elapsed 
# 0.02    0.02    0.05 
#
# }

Run the code above in your browser using DataLab