CommencerCommencer 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 à quelle vitesse cela peut dérailler. Vous avez appris qu’avec une droite de régression linéaire, vous pouvez obtenir 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 crab préchargé, vous allez étudier 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 est un modèle linéaire (un cas particulier des GLM)
  • la famille Binomial est un modèle de régression logistique.

Cet exercice fait partie du cours

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

Afficher le cours

Instructions

  • 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 via 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 via la formule GLM, utilisez Binomial() pour l’argument family.
  • Ajustez un modèle avec glm() avec les arguments appropriés et utilisez print() et summary() pour afficher les résumés des modèles ajustés.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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