วิธีสร้าง roc curve ใน sas


การถดถอยแบบลอจิสติก เป็นวิธีการที่เราสามารถใช้เพื่อให้พอดีกับแบบจำลองการถดถอยเมื่อตัวแปรตอบสนองเป็นไบนารี

เพื่อประเมินว่าแบบจำลองการถดถอยโลจิสติกเหมาะสมกับชุดข้อมูลได้ดีเพียงใด เราสามารถดูตัวชี้วัดสองตัวต่อไปนี้:

  • ความไว: ความน่าจะเป็นที่แบบจำลองคาดการณ์ผลลัพธ์ที่เป็นบวกสำหรับการสังเกต เมื่อผลลัพธ์เป็นบวกจริงๆ สิ่งนี้เรียกอีกอย่างว่า “อัตราบวกที่แท้จริง”
  • ความจำเพาะ: ความน่าจะเป็นที่แบบจำลองทำนายผลลัพธ์ที่เป็นลบสำหรับการสังเกต เมื่อผลลัพธ์เป็นลบจริงๆ สิ่งนี้เรียกอีกอย่างว่า “อัตราติดลบที่แท้จริง”

วิธีหนึ่งในการแสดงภาพการวัดทั้งสองนี้คือการสร้าง เส้นโค้ง ROC ซึ่งย่อมาจากเส้นโค้ง “ลักษณะการทำงานของตัวรับ” นี่คือกราฟที่แสดงความไวและความเฉพาะเจาะจงของแบบจำลองการถดถอยลอจิสติก

ตัวอย่างทีละขั้นตอนต่อไปนี้แสดงวิธีสร้างและตีความเส้นโค้ง ROC ใน SAS

ขั้นตอนที่ 1: สร้างชุดข้อมูล

ขั้นแรก เราจะสร้างชุดข้อมูลที่ประกอบด้วยข้อมูลเกี่ยวกับตัวแปรต่อไปนี้สำหรับนักเรียน 18 คน:

  • การรับเข้าเรียนในวิทยาลัยบางแห่ง (1 = ใช่, 0 = ไม่ใช่)
  • เกรดเฉลี่ย (ระดับ 1 ถึง 4)
  • คะแนน ACT (ระดับ 1 ถึง 36)
 /*create dataset*/
data my_data;
    input acceptance gpa act;
    datalines ;
1 3 30
0 1 21
0 2 26
0 1 24
1 3 29
1 3 34
0 3 31
1 2 29
0 1 21
1 2 21
0 1 15
1 3 32
1 4 31
1 4 29
0 1 24
1 4 29
1 3 21
1 4 34
;
run ;

ขั้นตอนที่ 2: ปรับโมเดลการถดถอยโลจิสติกและสร้างเส้นโค้ง ROC

ต่อไป เราจะใช้ proc Logistics เพื่อให้เหมาะสมกับโมเดลการถดถอยโลจิสติก โดยใช้ “การยอมรับ” เป็นตัวแปรตอบสนอง และใช้ “gpa” และ “act” เป็นตัวแปรทำนาย

เราจะระบุ การลดลง เพื่อให้ SAS รู้วิธีทำนายความน่าจะเป็นที่ตัวแปรตอบสนองจะใช้ค่า 1

นอกจากนี้เรายังจะใช้ plots(only)=roc เพื่อสร้างเส้นโค้ง ROC สำหรับโมเดล:

 /*fit logistic regression model & create ROC curve*/
proc logistic data =my_data descending plots ( only )=roc;
  model acceptance = gpa act;
run ;

เส้นโค้ง ROC ใน SAS

ขั้นตอนที่ 3: ตีความเส้นโค้ง ROC

ยิ่งเส้นโค้ง ROC พอดีกับมุมซ้ายบนของโครงเรื่องมากเท่าใด โมเดลก็จะคาดการณ์ค่าของค่าตอบสนองในชุดข้อมูลได้ดีขึ้นเท่านั้น

จากกราฟด้านบน เราจะเห็นว่าเส้นโค้ง ROC สีน้ำเงินมีแนวโน้มที่จะโอบมุมซ้ายบน ซึ่งบ่งชี้ว่าแบบจำลองการถดถอยโลจิสติกทำงานได้ดีในการทำนายค่าของค่าตอบสนอง

ในการหาปริมาณว่าแบบจำลองการถดถอยโลจิสติกเหมาะสมกับข้อมูลมากน้อยเพียงใด เราสามารถคำนวณ AUC ซึ่งเป็นพื้นที่ใต้เส้นโค้ง ซึ่งจะบอกเราว่าโครงเรื่องอยู่ใต้เส้นโค้งเป็นจำนวนเท่าใด

ยิ่ง AUC ใกล้ 1 มากเท่าใด โมเดลก็ยิ่งดีเท่านั้น โมเดลที่มี AUC เท่ากับ 0.5 ไม่ได้ดีไปกว่าโมเดลที่มีการจำแนกแบบสุ่ม

ใต้ชื่อกราฟด้านบน เราจะเห็นว่า AUC ของรุ่นนี้คือ 0.9351

เนื่องจากค่านี้อยู่ใกล้หนึ่งจึงเป็นการยืนยันว่าโมเดลทำนายค่าของค่าตอบสนองได้ดี

นอกจากนี้เรายังสามารถใช้ค่า AUC เพื่อเปรียบเทียบความเหมาะสมของแบบจำลองการถดถอยโลจิสติกต่างๆ

ตัวอย่างเช่น สมมติว่าเราใส่โมเดลการถดถอยโลจิสติกที่แตกต่างกันสองแบบ และคำนวณค่า AUC สำหรับแต่ละโมเดล:

  • AUC ของโมเดล 1: 0.9351
  • AUC ของโมเดล 2: 0.8140

เนื่องจาก AUC ของโมเดล 1 มีขนาดใหญ่ จึงบอกเราว่าโมเดล 1 ทำงานได้ดีกว่าในการปรับข้อมูลให้เหมาะสมกว่าโมเดล 2

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน SAS:

วิธีดำเนินการถดถอยเชิงเส้นอย่างง่ายใน SAS
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน SAS
วิธีดำเนินการถดถอยโลจิสติกใน SAS

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *