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

Линейная модель и бинарная зависимая переменная

В видео вы видели пример подгонки линейной модели к бинарной зависимой переменной и то, как быстро могут возникнуть проблемы. Вы узнали, что при подгонке прямой линии можно получить подогнанные значения \(\hat{y}\), которые не согласуются с логикой задачи, поскольку зависимая переменная принимает значения 0 и 1.

Используя предварительно загруженный набор данных crab, вы изучите этот эффект, моделируя y как функцию от x в рамках GLM.

Напомним, что формула модели GLM имеет вид:

glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()

где указываются formula, data и family.

Также напомним, что GLM с:

  • семейством Гаусса — это линейная модель (частный случай GLM)
  • биномиальным семейством — это модель логистической регрессии.

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

Обобщённые линейные модели в Python

Посмотреть курс

Инструкции к упражнению

  • Используя набор данных crab, задайте формулу модели так, чтобы y предсказывалась через width.
  • Чтобы подогнать линейную модель с помощью формулы GLM, укажите Gaussian() в качестве аргумента family — это предполагает, что y непрерывна и приближённо нормально распределена.
  • Чтобы подогнать логистическую модель с помощью формулы GLM, укажите Binomial() в качестве аргумента family.
  • Подгоните модель с помощью glm(), передав нужные аргументы, и используйте print() и summary() для просмотра сводок подогнанных моделей.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Define model formula
formula = '____ ~ ____'

# Define probability distribution for the response variable for 
# the linear (LM) and logistic (GLM) model
family_LM = sm.families.____
family_GLM = sm.families.____

# Define and fit a linear regression model
model_LM = glm(formula = ____, data = ____, family = ____).fit()
print(____.____)

# Define and fit a logistic regression model
model_GLM = glm(formula = ____, data = ____, family = ____).fit()
print(____.____)
Редактировать и запускать код