Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Korzystając ze zbioru danych crab, zdefiniuj formułę modelu tak, aby y było przewidywane na podstawie width.
  • 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żyj print() i summary(), 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(____.____)
Edytuj i uruchom kod