ПочатиПочніть безкоштовно

Лінійна регресія

Припустімо, що показник народжуваності є лінійною функцією жіночої неписьменності. Тобто, \(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()
Редагувати та запускати код