Lineair model en een binaire responsvariabele
In de video zag je een voorbeeld van het fitten van een lineair model op een binaire responsvariabele en hoe dat snel mis kan gaan. Je leerde dat je, gegeven de lineaire lijnfit, geschatte waarden \(\hat{y}\) kunt krijgen die niet logisch zijn voor het probleem, omdat de responsvariabele alleen de waarden 0 en 1 aanneemt.
Met de vooringeladen crab-gegevensset ga je dit effect onderzoeken door y als functie van x te modelleren met het GLM-raamwerk.
Onthoud dat de GLM-modelformulering is:
glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()
waarbij je de formula, data en family opgeeft.
Onthoud ook dat een GLM met:
- de Gaussian-familie een lineair model is (een speciaal geval van GLM's)
- de Binomial-familie een logistisch regressiemodel is.
Deze oefening maakt deel uit van de cursus
Generalized Linear Models in Python
Oefeninstructies
- Gebruik de
crab-gegevensset en definieer de modelformule zodatywordt voorspeld doorwidth. - Gebruik voor een lineair model met de GLM-formule
Gaussian()voor het family-argument; daarbij neem je aan dat y continu en ongeveer normaal verdeeld is. - Gebruik voor een logistisch model met de GLM-formule
Binomial()voor het family-argument. - Fit een model met
glm()met de juiste argumenten en gebruikprint()ensummary()om de samenvattingen van de gefitte modellen te bekijken.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____.____)