โมเดลเชิงเส้นและตัวแปรตอบสนองแบบไบนารี
ในวิดีโอ คุณได้เห็นตัวอย่างการ fit โมเดลเชิงเส้นกับตัวแปรตอบสนองแบบไบนารี และสิ่งที่ผิดพลาดได้เกิดขึ้นอย่างรวดเร็ว คุณได้เรียนรู้ว่าเมื่อใช้เส้นตรงในการ fit ค่าพยากรณ์ \(\hat{y}\) ที่ได้อาจไม่สอดคล้องกับตรรกะของปัญหา เนื่องจากตัวแปรตอบสนองมีค่าได้เพียง 0 หรือ 1 เท่านั้น
โดยใช้ชุดข้อมูล crab ที่โหลดไว้ล่วงหน้า คุณจะศึกษาผลกระทบนี้โดยการสร้างโมเดล y เป็นฟังก์ชันของ x ภายใต้กรอบ GLM
โปรดจำไว้ว่าการกำหนดโมเดล GLM มีรูปแบบดังนี้:
glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()
โดยระบุ formula, data และ family
นอกจากนี้ โปรดจำไว้ว่า GLM ที่ใช้:
- ตระกูล Gaussian คือโมเดลเชิงเส้น (กรณีพิเศษของ GLM)
- ตระกูล Binomial คือโมเดลการถดถอยโลจิสติก
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Generalized Linear Models ใน Python
คำแนะนำการฝึกหัด
- ใช้ชุดข้อมูล
crabเพื่อกำหนดสูตรโมเดลให้yถูกพยากรณ์ด้วยwidth - หากต้องการ fit โมเดลเชิงเส้น ด้วยสูตร GLM ให้ใช้
Gaussian()สำหรับอาร์กิวเมนต์ family ซึ่งสมมติว่า y มีการแจกแจงแบบต่อเนื่องและใกล้เคียงการแจกแจงปกติ - หากต้องการ fit โมเดลโลจิสติก ด้วยสูตร GLM ให้ใช้
Binomial()สำหรับอาร์กิวเมนต์ family - fit โมเดลโดยใช้
glm()พร้อมอาร์กิวเมนต์ที่เหมาะสม จากนั้นใช้print()และsummary()เพื่อดูสรุปผลของโมเดลที่ fit แล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define model formula
formula = '____ ~ ____'
# Define probability distribution for the response variable for
# the linear (LM) and logistic (GLM) model
family_LM = sm.families.____
family_GLM = sm.families.____
# Define and fit a linear regression model
model_LM = glm(formula = ____, data = ____, family = ____).fit()
print(____.____)
# Define and fit a logistic regression model
model_GLM = glm(formula = ____, data = ____, family = ____).fit()
print(____.____)