首页 > 解决方案 > 如何在R中找到曲线下的面积?

问题描述

我有两列 X1 ,X2 。我想找到 X1 下的区域和 X2 下的区域。

X = c(1,2,3,4,5)
Y1 = c(2,3,4,2,3)
Y2 = c(6,6,6,6,6)

plot(X,Y1) #Need to get area under this curve i.e auc(Y1)
plot(X,Y2) #Need to get area under this curve i.e auc(Y2)

我需要这个,以便我需要通过 AUC(Y1)/AUC(Y2) 的比率来比较两个区域,即 Y1 和 Y2

我在每个点都需要公共区域。

标签: r

解决方案


假设auc(Y1)你的意思是曲线下的面积

plot(1:5,Y1,type = "l")

您可以只使用梯形规则,其步长为 1 可以这样计算:

auc <- function(y){
  n <- length(y)
  0.5*(y[1]+y[n]+2*sum(y[-c(1,n)]))
}

例如:

> auc(Y1)
[1] 11.5

推荐阅读