如何找到两个ecdf函数之间的最大水平距离?

时间:2019-07-25 07:41:19

标签: r distance ecdf

我有两个向量 Y Z ,其中包含双精度数字。 Y的长度是596,Z的长度是1437。我将在下面附加一些示例。

Y: 0.700000  0.716667  0.716667  0.783333  0.816667  0.833333  0.850000  0.883333  0.883333  0.883333 ................14.833330 16.350000 17.150000

Z: 0.3166667 0.4166670 0.4500000 0.4833330 0.5000000 0.5166670 0.5166670 0.5166670 0.5500000 0.5500000 0.5666670 0.5666670 0.5666670 0.5666670 0.5666670 0.5833330 0.5833330 0.6166670 0.6166670 0.6500000 .....................17.91667

我想找到Y的经验cdf 和Z的经验cdf之间的最大水平距离

what I want to get it is in the picture

我通过KS测试找到了最大的垂直距离,但是找不到水平距离。

下面是我尝试过的方法,但是它效率很低而且是错误的。

       ecdfy <- ecdf(Y)
       ecdfz <- ecdf(Z) 

       for (j in seq(min(Y),max(Y),0.001)){
            for (k in seq(max(Z),max(Z),0.001)){

              if(ecdfy(j)==ecdfz(k)){
                sub <- j-k 
                hor <- rbind(hor,sub)
    } 
  }
}
        max.hor<-max(hor)

0 个答案:

没有答案