我是基本用户,请注意我的长问题
我需要计算检测概率: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
答案 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
")