Hồi quy tuyến tính
Ta sẽ giả định rằng mức sinh là một hàm tuyến tính của tỷ lệ mù chữ ở nữ. Nghĩa là, \(f = a i + b\), trong đó \(a\) là hệ số góc và \(b\) là tung độ gốc. Bạn có thể hiểu tung độ gốc như mức sinh tối thiểu, có lẽ nằm đâu đó giữa một và hai. Hệ số góc cho biết mức sinh thay đổi như thế nào theo tỷ lệ mù chữ. Ta có thể tìm đường thẳng khớp tốt nhất bằng np.polyfit().
Hãy vẽ dữ liệu và đường khớp tốt nhất. In ra hệ số góc và tung độ gốc. (Hãy nghĩ: đơn vị của chúng là gì?)
Bài tập này là một phần của khóa học
Tư duy Thống kê với Python (Phần 2)
Hướng dẫn bài tập
- Tính hệ số góc và tung độ gốc của đường hồi quy bằng
np.polyfit(). Nhớ rằngfertilitynằm trên trục y vàilliteracytrên trục x. - In ra hệ số góc và tung độ gốc từ hồi quy tuyến tính.
- Để vẽ đường khớp tốt nhất, tạo một mảng
xgồm 0 và 100 bằngnp.array(). Sau đó, tính các giá trị lý thuyết củaydựa trên các tham số hồi quy của bạn, tức lày = a * x + b. - Vẽ dữ liệu và đường hồi quy trên cùng một biểu đồ. Nhớ gắn nhãn cho các trục.
- Nhấn Gửi để hiển thị biểu đồ của bạn.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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()