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

การถดถอยเชิงเส้น

เราจะสมมติให้อัตราการเจริญพันธุ์เป็นฟังก์ชันเชิงเส้นของอัตราการไม่รู้หนังสือในกลุ่มผู้หญิง กล่าวคือ \(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()
แก้ไขและรันโค้ด