CommencezCommencez gratuitement

Modèle linéaire et variable réponse binaire

Dans la vidéo, vous avez vu un exemple d'ajustement d'un modèle linéaire à une variable réponse binaire et comment la situation peut rapidement se détériorer. Vous avez appris qu'avec un ajustement linéaire, on obtient des valeurs ajustées \(\hat{y}\) qui ne respectent pas la logique du problème, puisque la variable réponse ne prend que les valeurs 0 et 1.

À l'aide du jeu de données préchargé crab, vous étudierez cet effet en modélisant y en fonction de x dans le cadre des GLM.

Rappelez-vous que la formulation d'un GLM est :

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

où vous précisez formula, data et family.

Rappelez aussi qu'un GLM avec :

  • la famille Gaussian correspond à un modèle linéaire (un cas particulier des GLM)
  • la famille Binomial correspond à une régression logistique.

Cette activité fait partie du cours

Modèles linéaires généralisés en Python

Voir le cours

Instructions de l’exercice

  • En utilisant le jeu de données crab, définissez la formule du modèle de sorte que y soit prédite par width.
  • Pour ajuster un modèle linéaire avec la formule GLM, utilisez Gaussian() pour l'argument family, ce qui suppose que y est continue et approximativement distribuée normalement.
  • Pour ajuster un modèle logistique avec la formule GLM, utilisez Binomial() pour l'argument family.
  • Ajustez un modèle avec glm() en fournissant les bons arguments, puis utilisez print() et summary() pour afficher les résumés des modèles ajustés.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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(____.____)
Modifier et exécuter le code