การถดถอยเชิงเส้น
เราจะสมมติให้อัตราการเจริญพันธุ์เป็นฟังก์ชันเชิงเส้นของอัตราการไม่รู้หนังสือในกลุ่มผู้หญิง กล่าวคือ \(f = a i + b\) โดยที่ \(a\) คือความชัน และ \(b\) คือจุดตัดแกน จุดตัดแกนสามารถมองได้ว่าเป็นอัตราการเจริญพันธุ์ขั้นต่ำ ซึ่งน่าจะอยู่ในช่วงระหว่างหนึ่งถึงสอง ส่วนความชันบอกให้เราทราบว่าอัตราการเจริญพันธุ์เปลี่ยนแปลงไปอย่างไรตามอัตราการไม่รู้หนังสือ เส้นที่เหมาะสมที่สุดหาได้โดยใช้ np.polyfit()
ให้พล็อตข้อมูลพร้อมกับเส้นที่เหมาะสมที่สุด และแสดงค่าความชันและจุดตัดแกน (ลองคิดดูว่าค่าเหล่านี้มีหน่วยอะไร?)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Statistical Thinking in Python (ตอนที่ 2)
คำแนะนำการฝึกหัด
- คำนวณค่าความชันและจุดตัดแกนของเส้นถดถอยโดยใช้
np.polyfit()โดยfertilityอยู่บนแกน y และilliteracyอยู่บนแกน x - แสดงค่าความชันและจุดตัดแกนที่ได้จากการถดถอยเชิงเส้น
- สำหรับการพล็อตเส้นที่เหมาะสมที่สุด ให้สร้างอาร์เรย์
xที่ประกอบด้วยค่า 0 และ 100 โดยใช้np.array()จากนั้นคำนวณค่าyตามพารามิเตอร์การถดถอยที่ได้ นั่นคือy = a * x + b - พล็อตข้อมูลและเส้นถดถอยในกราฟเดียวกัน อย่าลืมกำกับชื่อแกน
- กด ส่งคำตอบ เพื่อแสดงกราฟ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Plot the illiteracy rate versus fertility
_ = plt.plot(illiteracy, fertility, marker='.', linestyle='none')
plt.margins(0.02)
_ = plt.xlabel('percent illiterate')
_ = plt.ylabel('fertility')
# Perform a linear regression using np.polyfit(): a, b
a, b = ____
# Print the results to the screen
print('slope =', a, 'children per woman / percent illiterate')
print('intercept =', b, 'children per woman')
# Make theoretical line to plot
x = ____
y = ____ * ____ + ____
# Add regression line to your plot
_ = plt.plot(____, ____)
# Draw the plot
plt.show()