[英]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.