เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Fit โมเดลเพื่อพยากรณ์ความน่าจะเป็นในการรอดชีวิตของนกกระจอก

ในแบบฝึกหัดนี้ จะประมาณค่าความน่าจะเป็นที่นกกระจอกจะรอดชีวิตจากพายุหิมะรุนแรง โดยอาศัยลักษณะทางกายภาพของนก ชุดข้อมูล sparrow ถูกโหลดไว้ให้แล้ว ตัวแปรผลลัพธ์ที่ต้องการพยากรณ์คือ status ("Survived", "Perished") และตัวแปรที่จะนำมาใช้ได้แก่:

  • total_length: ความยาวของนกจากปลายปากถึงปลายหาง (มม.)
  • weight: น้ำหนัก (กรัม)
  • humerus: ความยาวของกระดูกต้นแขน (กระดูกที่เชื่อมปีกกับลำตัว) (นิ้ว)

เมื่อใช้ glm() (docs) เพื่อสร้างโมเดล logistic regression ต้องระบุ family = binomial อย่างชัดเจน:

glm(formula, data = data, family = binomial)

จากนั้นจะเรียกใช้ summary() และ broom::glance() เพื่อตรวจสอบโมเดล logistic regression ในรูปแบบต่างๆ หนึ่งในตัววัดที่จะพิจารณาคือค่าที่เทียบเคียงกับ \(R^2\) ซึ่งเรียกว่า pseudo-\(R^2\)

$$ pseudoR^2 = 1 - \frac{deviance}{null.deviance} $$

ค่า deviance มีความหมายคล้ายกับ variance กล่าวคือเป็นการวัดความแปรผันในข้อมูลประเภทหมวดหมู่ ส่วน pseudo-\(R^2\) มีความหมายคล้ายกับ \(R^2\) ในการถดถอยมาตรฐาน โดย \(R^2\) วัด "ความแปรปรวนที่อธิบายได้" ของโมเดล ขณะที่ pseudo-\(R^2\) วัด "deviance ที่อธิบายได้"

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Supervised Learning ใน R: การถดถอย

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ตามที่แนะนำในวิดีโอ จะพยากรณ์ผลลัพธ์ในรูปแบบ TRUE และ FALSE สร้างคอลัมน์ใหม่ survived ใน data frame sparrow โดยให้มีค่าเป็น TRUE เมื่อ status == "Survived"
  • สร้าง formula fmla ที่แสดงความสัมพันธ์ของ survived กับตัวแปรที่สนใจ แล้วแสดงผลลัพธ์
  • Fit โมเดล logistic regression เพื่อพยากรณ์ความน่าจะเป็นในการรอดชีวิตของนกกระจอก และกำหนดโมเดลให้กับตัวแปร sparrow_model
  • เรียก summary() เพื่อดูค่าสัมประสิทธิ์ของโมเดล รวมถึงค่า deviance และ null deviance
  • เรียก glance() กับโมเดลเพื่อดูค่า deviance และตัววัดอื่นๆ ในรูปแบบ data frame แล้วกำหนดผลลัพธ์จาก glance() ให้กับตัวแปร perf
  • คำนวณค่า pseudo-\(R^2\)

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# sparrow is available
summary(sparrow)

# Create the survived column
sparrow$survived <- ___

# Create the formula
(fmla <- _____)

# Fit the logistic regression model
sparrow_model <- ___

# Call summary
___

# Call glance
(perf <- ___)

# Calculate pseudo-R-squared
(pseudoR2 <- ___)
แก้ไขและรันโค้ด