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