Лінійна регресія
Припустімо, що показник народжуваності є лінійною функцією жіночої неписьменності. Тобто, \(f = a i + b\), де \(a\) — це кутовий коефіцієнт (slope), а \(b\) — вільний член (intercept). Вільний член можна тлумачити як мінімальний рівень народжуваності, імовірно десь між одним і двома. Кутовий коефіцієнт показує, як змінюється рівень народжуваності зі зростанням неписьменності. Найкращу лінію апроксимації можна знайти за допомогою np.polyfit().
Побудуйте дані та лінію найкращого наближення. Виведіть кутовий коефіцієнт і вільний член. (Замисліться: у яких вони одиницях?)
Ця вправа є частиною курсу
Статистичне мислення в Python (Частина 2)
Інструкції до вправи
- Обчисліть кутовий коефіцієнт і вільний член регресійної прямої за допомогою
np.polyfit(). Пам'ятайте:fertilityна осі y, аilliteracy— на осі x. - Виведіть значення кутового коефіцієнта та вільного члена з лінійної регресії.
- Щоб побудувати лінію найкращого наближення, створіть масив
x, що складається з 0 і 100, використовуючиnp.array(). Потім обчисліть теоретичні значенняyна основі параметрів регресії, тобтоy = a * x + b. - Побудуйте на одному графіку дані та регресійну пряму. Обов'язково підпишіть осі.
- Натисніть Submit Answer, щоб відобразити свій графік.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()