Regresia logistică multivariabilă

Modele Liniare Generalizate în Python

Ita Cirovic Donev

Data Science Consultant

Configurație multivariabilă

  • Formula modelului $$ \text{logit}(y) = \beta_0+\beta_1\color{red}{x_1} $$
Modele Liniare Generalizate în Python

Configurație multivariabilă

  • Formula modelului $$ \text{logit}(y) = \color{blue}{\beta_0}+\color{blue}{\beta_1}\color{red}{x_1} $$
Modele Liniare Generalizate în Python

Configurație multivariabilă

  • Formula modelului $$ \text{logit}(y) = \beta_0+\beta_1x_1 + \beta_2\color{red}{x_2} + ... + \beta_p \color{red}{x_p} $$
Modele Liniare Generalizate în Python

Configurație multivariabilă

  • Formula modelului $$ \text{logit}(y) = \beta_0+\beta_1x_1 + \color{blue}{\beta_2}\color{red}{x_2} + ... + \color{blue}{\beta_p}\color{red}{x_p} $$

  • În Python

    model = glm('y ~ x1 + x2 + x3 + x4', 
              data = my_data, 
              family = sm.families.Binomial()).fit()
    
Modele Liniare Generalizate în Python

Exemplu - schimbarea fântânii

formula = 'switch ~ distance100 + arsenic'
wells_fit = glm(formula = formula, data = wells, 
                family = sm.families.Binomial()).fit()
===============================================================================
                  coef    std err          z      P>|z|      [0.025      0.975]
-------------------------------------------------------------------------------
Intercept       0.0027      0.079      0.035      0.972      -0.153       0.158
distance100    -0.8966      0.104     -8.593      0.000      -1.101      -0.692
arsenic         0.4608      0.041     11.134      0.000       0.380       0.542
===============================================================================
Modele Liniare Generalizate în Python

Exemplu - schimbarea fântânii

                  coef    std err          z      P>|z|      [0.025      0.975]
-------------------------------------------------------------------------------
Intercept       0.0027      0.079      0.035      0.972      -0.153       0.158
distance100    -0.8966      0.104     -8.593      0.000      -1.101      -0.692
arsenic         0.4608      0.041     11.134      0.000       0.380       0.542
  • Ambii coeficienți sunt semnificativi statistic
  • Semnul coeficienților este logic
  • O variație unitară în distance100 corespunde unei diferențe negative de 0,89 în logit
  • O variație unitară în arsenic corespunde unei diferențe pozitive de 0,46 în logit
Modele Liniare Generalizate în Python

Impactul adăugării unei variabile

  • Impactul variabilei arsenic
  • distance100 se modifică de la -0,62 la -0,89
  • Mai departe de fântâna sigură
    • Probabilitate mai mare de niveluri ridicate de arsenic
                  coef    std err 
---------------------------------
Intercept       0.0027      0.079
distance100    -0.8966      0.104
arsenic         0.4608      0.041  
                  coef    std err
---------------------------------
Intercept       0.6060      0.060
distance100    -0.6291      0.097  
Modele Liniare Generalizate în Python

Multicolinearitate

  • Variabile corelate cu alte variabile din model

Structura a două variabile cu corelație de 0,8, 0,4, 0, -0,4 și -0,8 respectiv.

  • Creșterea erorilor standard ale coeficienților
    • Coeficienții pot deveni nesemnificativi statistic
1 https://en.wikipedia.org/wiki/Correlation_and_dependence
Modele Liniare Generalizate în Python

Prezența multicolinearității?

Ce trebuie urmărit?

  • Coeficientul nu este semnificativ, dar variabila este puternic corelată cu $y$
  • Adăugarea/eliminarea unei variabile modifică semnificativ coeficienții
  • Semnul coeficientului nu este logic
  • Variabilele au corelație pereche ridicată
Modele Liniare Generalizate în Python

Factorul de inflație a varianței (VIF)

  • Cel mai utilizat diagnostic pentru multicolinearitate
    • Calculat pentru fiecare variabilă explicativă
    • Indică cât de inflată este varianța coeficientului
  • Prag recomandat VIF > 2,5
  • În Python
from statsmodels.stats.outliers_influence import variance_inflation_factor
Modele Liniare Generalizate în Python

Să exersăm!

Modele Liniare Generalizate în Python

Preparing Video For Download...