Re: [問題] ROC曲線結果

看板Statistics作者 ( )時間10年前 (2013/12/11 16:22), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《zedan (zedan)》之銘言: : 請問各位前輩 : 若有一命題"預測有哪些因素的人吃某藥可能會比較有效果" : 方式是先分"吃藥後自覺有效" 及"無效"兩個group : 先跑 independnet T test 看那些因素在這兩組中是有顯著差異的 : (比如發現: BMI越重的人吃起來似乎越有效) : 接下來想跑ROC曲線抓出cutoff point : (比如抓出BMI 30以上, 可視為吃藥有沒有效的標的) : 我是參考 http://www2.cmu.edu.tw/~biostat/online/teaching_corner_046-1.pdf : 結果我發現跑下來 BMI的 sensitivity+specificity 最高是在兩個極端 : (比如:sensitivity+specificity 在BMI 16 及35兩點最大,等於1) : 這樣是代表統計沒意義嗎, 還是要忽略兩端極值, : 再中間再找一個 sensitivity+specificity 最大的點 : (比如BMI 22 加起來為 0.92) : 不得其解~ 希望各位幫忙解惑 感恩

12/06 16:16,
(比如BMI 22 加起來為 0.92) , 這句話代表 AUC = 0.92
12/06 16:16

12/06 16:17,
sensitivity+specificity 最大的點 , 是一個選項
12/06 16:17

12/06 16:17,
其他還看過相乘開根號
12/06 16:17
AUC並非0.92 ROC曲線的繪製有點麻煩... 先想像一個情況,我有一個檢驗工具要拿來驗癌症, 這個檢驗工具可測得血中的某癌症指標(A)濃度(假設A濃度越高越有可能罹癌)。 以下是模擬數據: A濃度 有病 沒病 1 1 9 2 3 7 3 5 5 4 8 2 5 9 1 total 26 24 於是當我設定不同cut-off值,sensitivity和(1-specificity)分別如下 A濃度 SEN SPE 1-SPE >=1 26/26 0/24 24/24 >=2 25/26 9/24 15/24 >=3 22/26 16/24 8/24 >=4 17/26 21/24 3/24 >=5 9/26 23/24 1/24 使用下列R指令即可繪圖: SEN<-c(1, 0.961538462, 0.846153846, 0.653846154, 0.346153846) FSEN<-c(1, 0.625, 0.333333333, 0.125, 0.041666667) plot(FSEN,SEN,xlab="False Positive", ylab="True Positive", type="l") 至於怎麼用R算AUC...等我查一下資料= = 因為我只有用過SAS和SPSS作ROC曲線... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.173.162.2

12/11 16:23, , 1F
恩 AUC是面積 當時寫的不對
12/11 16:23, 1F

12/11 16:24, , 2F
反正概念差不多就那樣 圖畫出來就立刻學會了
12/11 16:24, 2F
R程式碼範例: #請先安裝pROC package。 install.packages("pROC",repos="http://R-Forge.R-project.org") library(pROC) #先建立模擬資料檔(這種手動輸入方法比較笨 = = ) #亦可用模擬邏輯斯迴歸的方法模擬,日後再詳述。 outcome<-c("ca","ca","ca","ca","ca","ca","ca","ca","ca","ca", "ca","ca","ca","ca","ca","ca","ca","ca","ca","ca","ca","ca", "ca","ca","ca","ca", "health","health","health","health","health","health","health", "health","health","health","health","health","health","health", "health","health","health","health","health","health","health", "health","health","health") conA<-c(1,2,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5, 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,4,4,5) id<-c(1:50) #把上面的資料整合成一個dataframe。 data<-data.frame(id,outcome,conA) #以下參數依序為"是否罹癌"、"A濃度",而levels指定control組是"沒有罹癌" roc(data$outcome,data$conA, levels=c("health","ca")) 結果: Call: roc.default(response = data$outcome, predictor = data$conA, levels = c("health", "ca")) Data: data$conA in 24 controls (data$outcome health) < 26 cases (data$outcome ca). Area under the curve: 0.8045 亦可使用該指令繪圖: result<-roc(data$outcome,data$conA, levels=c("health","ca")) plot.roc(result) ※ 編輯: anovachen 來自: 1.173.162.2 (12/11 16:52) ※ 編輯: anovachen 來自: 1.173.162.2 (12/11 16:57)
文章代碼(AID): #1Ig22-TG (Statistics)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Ig22-TG (Statistics)