Uogólnione modele liniowe w Pythonie
Ita Cirovic Donev
Data Science Consultant
Importowanie statsmodels
import statsmodels.api as sm
Obsługa formuł
import statsmodels.formula.api as smf
Bezpośrednie użycie glm()
from statsmodels.formula.api import glm
Podejście oparte na FORMULE
from statsmodels.formula.api import glm
model = glm(formula, data, family)
Podejście oparte na TABLICACH
import statsmodels.api as sm
X = sm.add_constant(X)
model = sm.glm(y, X, family)
$$\texttt{\color{#00A388}{zmienna objaśniana}} \sim \texttt{\color{#FF6138}{zmienna(e) objaśniająca}}$$ $$\texttt{\color{#00A388}{wyjście}} \sim \texttt{\color{#FF6138}{wejście(a)}}$$
formula = 'y ~ x1 + x2'
x1 jako zmienną kategorycznąx1 a x2x1 i x2 oraz osobne zmiennefamily = sm.families.____()
Dostępne rodziny funkcji:
Inne rodziny rozkładów dostępne są na stronie statsmodels.
print(model_GLM.summary())
Generalized Linear Model Regression Results
=============================================================================
Dep. Variable: y No. Observations: 173
Model: GLM Df Residuals: 171
Model Family: Binomial Df Model: 1
Link Function: logit Scale: 1.0000
Method: IRLS Log-Likelihood: -97.226
Date: Mon, 21 Jan 2019 Deviance: 194.45
Time: 11:30:01 Pearson chi2: 165.
No. Iterations: 4 Covariance Type: nonrobust
=============================================================================
coef std err z P>|z| [0.025 0.975]
-----------------------------------------------------------------------------
Intercept -12.3508 2.629 -4.698 0.000 -17.503 -7.199
width 0.4972 0.102 4.887 0.000 0.298 0.697
=============================================================================
$\texttt{\color{#007AFF}{.params}}$ wyświetla współczynniki regresji
model_GLM.params
Intercept -12.350818
width 0.497231
dtype: float64
$\texttt{\color{#007AFF}{.conf\_int(alpha=0.05, cols=None)}}$ wyświetla przedziały ufności
model_GLM.conf_int()
0 1
Intercept -17.503010 -7.198625
width 0.297833 0.696629
model_GLM.predict(test_data)
0 0.029309
1 0.470299
2 0.834983
3 0.972363
4 0.987941
Uogólnione modele liniowe w Pythonie