I'm attempting to calculate the area between two plots using R's integrate
function. I have two forecast curves that I'm able to place on the same plot and also shade in the area between the two curves, for visualisation:
x1 = seq(1,200,1)
y1 = # 200 numbers from 0.02 - 1.000
y2 = # 200 numbers from 0.00 - 0.95
plot(x1,y1,type="l",bty="L",xlab="Forecast Days",ylab="Curve Actuals")
points(x1,y2,type="l",col="red")
polygon(c(x1,rev(x1)),c(y2,rev(y1)),col="skyblue")
Following the example here https://stat.ethz.ch/pipermail/r-help/2010-September/251756.html I've attempted to execute the same code for my data to calculate the are between the two curves. As stated in the example "the area between two curves is the same as the integral of the difference between these two curves (resp. its absolute values)":
f1 = approxfun(x1, y1-y2) # piecewise linear function
f2 = function(x) abs(f1(x)) # take the positive value
integrate(f2, 1, 200)
However I get the following error:
Error in integrate(f2, 1, 200) : maximum number of subdivisions reached
Appreciate any clarity that can be shed on this. Thanks!