Linjär modell och en binär responsvariabel
I videon såg du ett exempel på hur en linjär modell anpassas till en binär responsvariabel och hur det snabbt kan gå fel. Du lärde dig att de anpassade värdena \(\hat{y}\) som den linjära modellen producerar inte stämmer överens med problemets logik, eftersom responsvariabeln bara antar värdena 0 och 1.
Med det förinstallerade crab-datasetet ska du undersöka detta fenomen genom att modellera y som en funktion av x inom GLM-ramverket.
Kom ihåg att GLM-modellen formuleras så här:
glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()
där du anger formula, data och family.
Kom även ihåg att en GLM med:
- gaussisk familj är en linjär modell (ett specialfall av GLM)
- binomialfamilj är en logistisk regressionsmodell.
Den här övningen är en del av kursen
Generaliserade linjära modeller i Python
Övningsinstruktioner
- Använd
crab-datasetet och definiera modellformeln så attyprediceras avwidth. - För att anpassa en linjär modell med GLM-formeln, använd
Gaussian()som family-argument – detta antar att y är kontinuerlig och approximativt normalfördelad. - För att anpassa en logistisk modell med GLM-formeln, använd
Binomial()som family-argument. - Anpassa en modell med
glm()och lämpliga argument, och använd sedanprint()ochsummary()för att granska sammanfattningarna av de anpassade modellerna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____.____)