AUC: Area Under the Curve

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/StatsAndCIs.r

Description

Calculate the area under the curve with a simple "trapezoid" algorithm and with a more elaborated spline approach. The curve must be given by vectors of xy-coordinates.

Usage

1
2
3
AUC(x, y, from = min(x, na.rm = TRUE), to = max(x, na.rm = TRUE), 
    method = c("trapezoid", "step", "spline"), 
    absolutearea = FALSE, subdivisions = 100, na.rm = FALSE, ...) 

Arguments

x, y

the xy-points of the curve

method

The type of interpolation. Can be "trapezoid" (default), "step" or "spline". The value "spline" results in the area under the natural cubic spline interpolation.

from

The value from where to start calculating the area under the curve. Defaults to the smallest x value. Must not be smaller that that.

to

The value from where to end the calculation of the area under the curve. Defaults to the greatest x value. Must not be larger than that.

absolutearea

logical, determines whether negative areas should be added to the total area under the curve. By default the AUC function subtracts areas that have negative y values. Set absolutearea=TRUE to add the absolute value of the negative areas to the total area.

subdivisions

an integer telling how many subdivisions should be used for integrate (for non-linear approximations). Ignored if method is not spline.

na.rm

logical, indicating whether NA values should be stripped before the computation proceeds. In this case only the complete.cases of x and y will be used. na.rm defaults to FALSE.

...

additional arguments passed on to approx (for linear approximations). In particular rule can be set to determine how values outside the range of x is handled.

Details

If method is set to "trapezoid" then the curve is formed by connecting all points by a direct line (composite trapezoid rule). If "step" is chosen then a stepwise connection of two points is used in the sense that the y-value of the lower x-value is used for the range up to the next x-point.

For area under a spline interpolation, AUC() uses the splinefun() function in combination with integrate() to calculate a numerical integral.

The AUC() function can handle unsorted time values (by sorting x), missing observations, ties for the x values (by ignoring duplicates), and integrating over part of the area or even outside the area.

Value

numeric value of the area under the curve.

Author(s)

Andri Signorell <andri@signorell.net>, spline part by Claus Ekstrom <claus@rprimer.dk>

See Also

integrate, splinefun

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
AUC(x=c(1,3), y=c(1,1))

AUC(x=c(1,2,3), y=c(1,2,4), method="trapezoid")
AUC(x=c(1,2,3), y=c(1,2,4), method="step")

plot(x=c(1,2,2.5), y=c(1,2,4), type="l", col="blue", ylim=c(0,4))
lines(x=c(1,2,2.5), y=c(1,2,4), type="s", col="red")

x <- seq(0, pi, length.out=200)
AUC(x=x, y=sin(x)) 
AUC(x=x, y=sin(x), method="spline") 

AndriSignorell/DescTools documentation built on April 8, 2021, 5:51 a.m.