繁体   English   中英

dataframe 中的错误(?)阈值使用 R 和 PROC

[英]Wrong(?) Thresholds in dataframe using R and PROC

我正在尝试计算项目的新截止值,但似乎 a) 我根本不了解阈值或 b) 我在计算时做错了

我使用的数据

data_sub$ENTLASSMANAGEMENT_BIN:二进制变量,包含 0 和 1 data_sub$DOKU_INDEXWERT:决定 ENTLASSMANAGEMENT_BIN 是 0 还是 1 的值。1 到 41 之间的数字

glm.fit=glm(data_sub$ENTLASSMANAGEMENT_BIN ~ data_sub$DOKU_INDEXWERT, family=binomial)
lines(data_sub$DOKU_INDEXWERT, glm.fit$fitted.values)

画出我的 ROC

par(pty = "s")
roc(data_sub$ENTLASSMANAGEMENT_BIN, glm.fit$fitted.values, 
    plot = TRUE, legacy.axes=TRUE, col="#377eb8", lwd=4, print.auc=TRUE)

这个 ROC 对我来说看起来不错,所以我想我只需要获得阈值,我就可以选择一个新的截止值。

所以我制作了一个新的 dataframe,其中包含真阳性百分比 (tpp) 和假阳性百分比 (fpp) 以及阈值:

roc.info <- roc(data_sub$ENTLASSMANAGEMENT_BIN, glm.fit$fitted.values, legacy.axes=TRUE)
roc.df <- data.frame(tpp=roc.info$sensitivities*100,
                     fpp= (1- roc.info$specificities)*100,
                     threshholds=roc.info$thresholds)
head(roc.df)

但是门槛对我来说似乎很奇怪:

> head(roc.df)
        tpp       fpp threshholds
1 100.00000 100.00000        -Inf
2  98.31461  72.64957   0.1178571
3  96.62921  58.11966   0.2178571
4  92.13483  41.02564   0.3095238
5  89.88764  34.18803   0.3750000
6  87.07865  28.20513   0.4940476

它们不应该类似于 data_sub$DOKU_INDEXWERT 中的数字吗? 如果它们高于我的截止值的最高数字,我不明白我该如何解释这些......

我是不是计算错了? 或者我只是误解了阈值?

谢谢!

我想我发现了我的错误:无论如何这可能对其他人有用。 我使用了 glm.fit$fitted.values 因为否则我会得到我的数据应该是数字的错误。 我现在改用 as.numeric(data_sub$DOKU_INDEXWERT) 并且它有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM