我想计算蓝线和灰色对角线之间的区域.

我可以将蓝线下的面积计算为:
library(zoo)
id <- order(x)
AUC <- sum(diff(x[id])*rollmean(y[id],2))
Run Code Online (Sandbox Code Playgroud)
(感谢计算R中曲线下的面积)
任何想法如何找到蓝线和灰线之间的区域?
在此先感谢EC
只是为了确保有一个可以接受的答案,但主要总结其他人的建议:
“数学上”,你想要的是曲线下的面积abs(blue - grey)。
这些值(即绝对差)很容易获得,一旦获得它们,您就可以使用任何类似积分的方法(例如辛普森规则或您链接到的文章中建议的方法)来获得曲面。
作为替代方案,有点像@Saurabh 建议的那样,您可以使用蓝线是阶跃函数(或者不是?)这一事实,而另一条线是直线。为此,您可以对蓝线和灰线交叉的所有 x 值进行求和,或者在蓝线中呈现新值(采取“步骤”)。像这样划分面积只会得到三角形和梯形,您可以简单地取绝对值,然后再将它们全部相加。
即使蓝线不是简单的阶跃函数,但仍然由直线组成,这应该可以工作,尽管您现在必须考虑一些其他情况......