如何计算检测概率?

时间:2019-08-23 18:51:20

标签: r statistics

我是基本用户,请注意我的长问题

我需要计算检测概率:POD = H /(H + M)

5个不同类别;但我只写一个以减少混乱

light = [1,5)

我有两列数据(在CSV文件中),“已观察”和“估计”

我需要一个脚本来遍历我的数据,并在[1,5]范围内将观察到的和估计的归为“轻”。

然后,如果“观察到的”很轻并且相应的“估计”也是如此,则为命中(H) 如果“观察到”很轻,但相应的“估计”不是,则为未命中(M)

然后将H和M相加,得出POD = H /(H + M)

数据样本:

observation, Estimation
0.2, 0.4
0.8, 0.8
1.0, 2.0
2.4, 0.9
3.1, 1.3
0.6, 0.5
1.2, 0.8
0.7, 0.9
2.3, 1.0

1 个答案:

答案 0 :(得分:0)

我不确定以下问题是什么,Light的数据格式不清楚,我将使用list个轻类别。

POD <- function(O, E, Light){
  obs <- Light[1] <= O & O < Light[2]
  est <- Light[1] <= E & E < Light[2]
  H <- sum(obs & est)
  M <- sum(obs & !est)
  if(H + M > 0) H/(H + M) else 0
}


POD(O = df1[[1]], E = df1[[2]], Light = c(1, 5))
#[1] 0.6

现在列出灯光类别。

LightCategories <- list(Cat1 = c(0, 0.5),
                        Cat2 = c(0.5, 1),
                        Cat3 = c(1, 5))

sapply(LightCategories, function(lc){
  POD(O = df1[[1]], E = df1[[2]], Light = lc)
})
#Cat1 Cat2 Cat3 
# 1.0  1.0  0.6 

数据。

df1 <- read.csv(text = "
observation, Estimation
0.2, 0.4
0.8, 0.8
1.0, 2.0
2.4, 0.9
3.1, 1.3
0.6, 0.5
1.2, 0.8
0.7, 0.9
2.3, 1.0
")