# auc: Compute the area under the curve for two vectors. In MESS: Miscellaneous Esoteric Statistical Scripts

## Description

Compute the area under the curve using linear or natural spline interpolation for two vectors where one corresponds to the x values and the other corresponds to the y values.

## Usage

 ```1 2``` ```auc(x, y, from = min(x, na.rm = TRUE), to = max(x, na.rm = TRUE), type = c("linear", "spline"), absolutearea = FALSE, ...) ```

## Arguments

 `x` a numeric vector of x values. `y` a numeric vector of y values of the same length as x. `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. `type` The type of interpolation. Defaults to "linear" for area under the curve for linear interpolation. The value "spline" results in the area under the natural cubic spline interpolation. `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. `...` additional arguments passed on to approx. In particular rule can be set to determine how values outside the range of x is handled.

## Details

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, missing observations, ties for the time values, and integrating over part of the area or even outside the area.

## Value

The value of the area under the curve.

## Author(s)

Claus Ekstrom [email protected]

`approx`, `splinefun`, `integrate`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15``` ```x <- 1:4 y <- c(0, 1, 1, 5) auc(x, y) # AUC from 0 to max(x) where we allow for extrapolation auc(x, y, from=0, rule=2) # Use value 0 to the left auc(x, y, from=0, rule=2, yleft=0) # Use 1/2 to the left auc(x, y, from=0, rule=2, yleft=.5) # Use 1/2 to the left with spline interpolation auc(x, y, from=0, rule=2, yleft=.5) ```