НачатьНачать бесплатно

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

Предположим, что рождаемость является линейной функцией уровня женской безграмотности. То есть \(f = a i + b\), где \(a\) — наклон, а \(b\) — точка пересечения с осью. Точку пересечения можно интерпретировать как минимальный уровень рождаемости, который, вероятно, находится где-то между единицей и двойкой. Наклон показывает, как уровень рождаемости меняется в зависимости от уровня безграмотности. Найти линию наилучшего соответствия можно с помощью np.polyfit().

Постройте график данных и линию наилучшего соответствия. Выведите значения наклона и точки пересечения. (Подумайте: в каких единицах они выражены?)

Это упражнение является частью курса

Статистическое мышление на 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()
Редактировать и запускать код