วิธีการพล็อตเส้นโค้งการถดถอยโลจิสติกใน r


บ่อยครั้งที่คุณอาจต้องการพล็อตเส้นโค้งของแบบจำลองการถดถอยโลจิสติกที่ติดตั้งใน R

โชคดีที่มันทำได้ค่อนข้างง่ายและบทช่วยสอนนี้จะอธิบายวิธีการทำทั้งใน base R และ ggplot2

ตัวอย่าง: การวาดเส้นโค้งการถดถอยโลจิสติกในฐาน R

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

 #fit logistic regression model
model <- glm(vs ~ hp, data=mtcars, family=binomial)

#define new data frame that contains predictor variable
newdata <- data. frame (hp=seq(min(mtcars$hp), max(mtcars$hp),len= 500 ))

#use fitted model to predict values of vs
newdata$vs = predict(model, newdata, type=" response ")

#plot logistic regression curve
plot(vs ~hp, data=mtcars, col=" steelblue ")
lines(vs ~ hp, newdata, lwd= 2 )

เส้นโค้งการถดถอยโลจิสติกในฐาน R

แกน x แสดงค่าของตัวแปรทำนาย hp และแกน y แสดงความน่าจะเป็นที่คาดการณ์ไว้ของตัวแปรตอบสนอง am

เราจะเห็นได้อย่างชัดเจนว่าค่าที่สูงกว่าของตัวแปรทำนาย hp นั้นสัมพันธ์กับความน่าจะเป็นที่ต่ำกว่าของตัวแปรตอบสนองเทียบ กับ การเท่ากับ 1

ตัวอย่าง: การวางแผนกราฟการถดถอยโลจิสติกใน ggplot2

โค้ดต่อไปนี้แสดงวิธีปรับให้พอดีกับโมเดลการถดถอยโลจิสติกเดียวกัน และวิธีการพล็อตกราฟการถดถอยโลจิสติกโดยใช้ไลบรารีการแสดงภาพข้อมูล ggplot2 :

 library (ggplot2)

#plot logistic regression curve
ggplot(mtcars, aes (x=hp, y=vs)) + 
  geom_point(alpha=.5) +
  stat_smooth(method=" glm ", se=FALSE, method. args = list(family=binomial)) 

เส้นโค้งการถดถอยโลจิสติกใน ggplot2

โปรดทราบว่านี่คือเส้นโค้งเดียวกันกับที่สร้างขึ้นในตัวอย่างก่อนหน้าโดยใช้ฐาน R

สามารถเปลี่ยนสไตล์ของเส้นโค้งได้เช่นกัน ตัวอย่างเช่น เราสามารถเปลี่ยนเส้นโค้งให้เป็นเส้นประสีแดง:

 library (ggplot2)

#plot logistic regression curve
ggplot(mtcars, aes (x=hp, y=vs)) + 
  geom_point(alpha=.5) +
  stat_smooth(method=" glm ", se=FALSE, method. args = list(family=binomial),
              col=" red ", lty= 2 ) 

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

รู้เบื้องต้นเกี่ยวกับการถดถอยโลจิสติก
วิธีดำเนินการ Logistic Regression ใน R (ทีละขั้นตอน)
วิธีการดำเนินการถดถอยโลจิสติกใน Python (ทีละขั้นตอน)
วิธีใช้ฟังก์ชัน seq ใน R

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

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