Lineares Modell und eine binäre Zielvariable
Im Video hast du gesehen, wie das Anpassen eines linearen Modells an eine binäre Zielvariable schnell schiefgehen kann. Du hast gelernt, dass sich aus der angepassten Geraden Schätzwerte \(\hat{y}\) ergeben können, die nicht zur Logik des Problems passen, da die Zielvariable nur die Werte 0 und 1 annimmt.
Mit dem vorab geladenen Datensatz crab untersuchst du diesen Effekt, indem du y als Funktion von x im GLM-Framework modellierst.
Erinnere dich an die GLM-Formulierung:
glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()
Dabei gibst du formula, data und family an.
Außerdem gilt für ein GLM:
- mit der Gaussian-Familie erhältst du ein lineares Modell (ein Spezialfall der GLMs)
- mit der Binomial-Familie erhältst du ein logistisches Regressionsmodell.
Diese Übung ist Teil des Kurses
Generalisierte lineare Modelle in Python
Anleitung zur Übung
- Verwende den Datensatz
crabund definiere die Modellformel so, dassydurchwidthvorhergesagt wird. - Um ein lineares Modell mit der GLM-Formel zu fitten, verwende
Gaussian()als family-Argument. Das setzt voraus, dass y kontinuierlich und näherungsweise normalverteilt ist. - Um ein logistisches Modell mit der GLM-Formel zu fitten, verwende
Binomial()als family-Argument. - Fitte ein Modell mit
glm()mit passenden Argumenten und nutzeprint()undsummary(), um Zusammenfassungen der gefitteten Modelle anzuzeigen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____.____)