Model liniowy a binarna zmienna odpowiedzi
W materiale wideo widziałeś przykład dopasowania modelu liniowego do binarnej zmiennej odpowiedzi i to, jak szybko mogą pojawić się problemy. Poznałeś sposób, w jaki na podstawie prostej liniowej można uzyskać wartości dopasowane \(\hat{y}\), które nie są zgodne z logiką problemu – zmienna odpowiedzi przyjmuje bowiem wartości 0 i 1.
Korzystając z wczytanego zbioru danych crab, zbadasz ten efekt, modelując y jako funkcję x w ramach frameworku GLM.
Przypomnij sobie, że formuła modelu GLM ma postać:
glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()
gdzie podajesz argumenty formula, data i family.
Pamiętaj też, że GLM z:
- rodziną Gaussowską to model liniowy (szczególny przypadek GLM),
- rodziną dwumianową to model regresji logistycznej.
To ćwiczenie jest częścią kursu
Uogólnione modele liniowe w Pythonie
Instrukcje do ćwiczenia
- Korzystając ze zbioru danych
crab, zdefiniuj formułę modelu tak, abyybyło przewidywane na podstawiewidth. - Aby dopasować model liniowy przy użyciu formuły GLM, użyj
Gaussian()jako argumentu family – zakłada on, że y jest zmienną ciągłą o przybliżonym rozkładzie normalnym. - Aby dopasować model logistyczny przy użyciu formuły GLM, użyj
Binomial()jako argumentu family. - Dopasuj model za pomocą
glm()z odpowiednimi argumentami, a następnie użyjprint()isummary(), aby wyświetlić podsumowania dopasowanych modeli.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____.____)