Hồi quy logistic đa biến

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ita Cirovic Donev

Data Science Consultant

Bối cảnh đa biến

  • Công thức mô hình $$ \text{logit}(y) = \beta_0+\beta_1\color{red}{x_1} $$
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Bối cảnh đa biến

  • Công thức mô hình $$ \text{logit}(y) = \color{blue}{\beta_0}+\color{blue}{\beta_1}\color{red}{x_1} $$
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Bối cảnh đa biến

  • Công thức mô hình $$ \text{logit}(y) = \beta_0+\beta_1x_1 + \beta_2\color{red}{x_2} + ... + \beta_p \color{red}{x_p} $$
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Bối cảnh đa biến

  • Công thức mô hình $$ \text{logit}(y) = \beta_0+\beta_1x_1 + \color{blue}{\beta_2}\color{red}{x_2} + ... + \color{blue}{\beta_p}\color{red}{x_p} $$

  • Trong Python

    model = glm('y ~ x1 + x2 + x3 + x4', 
              data = my_data, 
              family = sm.families.Binomial()).fit()
    
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ví dụ - đổi giếng

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
===============================================================================
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ví dụ - đổi giếng

                  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
  • Cả hai hệ số đều có ý nghĩa thống kê
  • Dấu của hệ số hợp lý
  • Thay đổi 1 đơn vị của distance100 làm logit giảm 0,89
  • Thay đổi 1 đơn vị của arsenic làm logit tăng 0,46
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ảnh hưởng khi thêm biến

  • Tác động của biến arsenic
  • distance100 đổi từ -0,62 thành -0,89
  • Xa giếng an toàn hơn
    • Khả năng nồng độ asen cao hơn
                  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  
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Đa cộng tuyến

  • Các biến tương quan với biến khác trong mô hình

Cấu trúc của hai biến với tương quan lần lượt 0.8 0.4 0, -0.4 và -0.8.

  • Độ lệch chuẩn của hệ số tăng
    • Hệ số có thể mất ý nghĩa thống kê
1 https://en.wikipedia.org/wiki/Correlation_and_dependence
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Có đa cộng tuyến?

Cần lưu ý?

  • Hệ số không có ý nghĩa, nhưng biến tương quan mạnh với $y$
  • Thêm/bớt biến làm hệ số đổi nhiều
  • Dấu hệ số không hợp lý
  • Các biến có tương quan cặp cao
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Hệ số phóng đại phương sai (VIF)

  • Chẩn đoán dùng rộng rãi nhất cho đa cộng tuyến
    • Tính cho từng biến giải thích
    • Mức độ phương sai của hệ số bị thổi phồng
  • Ngưỡng gợi ý VIF > 2,5
  • Trong Python
from statsmodels.stats.outliers_influence import variance_inflation_factor
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ayo berlatih!

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Preparing Video For Download...