如何在R中的两条曲线之间找到正区域

时间:2017-05-24 17:32:44

标签: r

我试图仅在两条曲线之间找到正区域,就像在一条曲线更高且仅在那条曲线的位置。曲线是时间序列和水平线。这是它创建的情节的图片:https://i.stack.imgur.com/ZrPH4.png。我不想要水平线更高的区域,所以我无法找到它们之间的差异曲线区域。我尝试在auc函数中使用threshold参数:

auc((1:96), STLFMondayBlock1$mean[(1:96)], thresh = 11648.93)但是我得到的阈值高于没有阈值的值:1035514没有阈值,1213062有阈值。

1 个答案:

答案 0 :(得分:1)

使用简化示例:

x1 <- c(0, 0, rep(1, 4), rep(0, 4), rep(1, 4), 0, 0, 0)
x2 <- rep(0.5, length(x1))
d <- x1 - x2

a <- cumsum(ifelse(d > 0, d, 0))
tail(a, 1)
# 4

par(mar=c(2, 2, 1, 1))
matplot(cbind(x1, x2, a), type="s", lwd=2, col=1:3)
legend("topleft", legend="positive area between curves",
  col=3, lty=3, lwd=2, bty="n")

enter image description here
如您所见,如果您取两条曲线之间的差异并仅将正值相加,则得到两条曲线之间的总正面积。