簡體   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