Лінійна модель і бінарна залежна змінна
У відео ви бачили приклад підгонки лінійної моделі до бінарної залежної змінної та те, як швидко це може призвести до помилок. Ви дізналися, що за лінійного наближення можна отримати підганяні значення \(\hat{y}\), які суперечать логіці задачі, адже залежна змінна набуває лише значень 0 і 1.
Використовуючи попередньо завантажений набір даних crab, ви дослідите цей ефект, змоделювавши y як функцію x у межах підходу GLM.
Згадайте, що формулювання моделі GLM таке:
glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()
де ви задаєте formula, data і family.
Також згадайте, що GLM із:
- сім'єю Gaussian — це лінійна модель (окремий випадок GLM)
- сім'єю Binomial — це модель логістичної регресії.
Ця вправа є частиною курсу
Узагальнені лінійні моделі в 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(____.____)