R: Area Under the Curve

AUC {DescTools} | R Documentation

## Area Under the Curve

### Description

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

### Usage

    AUC(x, y, from = min(x, na.rm = TRUE), to = max(x, na.rm = TRUE),
        method = c("trapezoid", "step", "spline", "linear"),
        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"`, `"linear"` 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.
`to` | The value from where to end the calculation of the area under the curve. Defaults to the greatest x value.
`absolutearea` | A logical value that determines if 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. Ignored if `method` is not `spline`.
`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.

For linear interpolation the `AUC()` function computes the area under the curve using the composite trapezoid rule. For area under a spline interpolation, `AUC()` uses the splinefun function in combination with the 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

    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")

[Package DescTools version 0.99.32 Index]