Mô hình trạng thái logit python

Một đối tượng dạng mảng gồm các giá trị booleans, số nguyên hoặc chỉ mục cho biết tập hợp con của df sẽ sử dụng trong mô hình. Giả sử df là một con gấu trúc. Khung dữ liệu

drop_cols

Các cột để loại bỏ khỏi ma trận thiết kế. Không thể được sử dụng để loại bỏ các điều khoản liên quan đến phân loại

* lập luận

Các đối số vị trí bổ sung được chuyển đến mô hình

**kwargs

Chúng được chuyển đến mô hình với một ngoại lệ. Từ khóa eval_env được chuyển đến patsy. Nó có thể là một đối tượng patsy:patsy.EvalEnvironment hoặc một số nguyên cho biết độ sâu của không gian tên sẽ sử dụng. Ví dụ, mặc định eval_env=0 sử dụng không gian tên gọi. Nếu bạn muốn sử dụng bộ môi trường “sạch” eval_env=-1

Trả về . model

Ví dụ mô hình

ghi chú

dữ liệu phải xác định __getitem__ với các khóa trong công thức thuật ngữ args và kwargs được chuyển sang phần khởi tạo mô hình. e. g. , một mảng rec hoặc có cấu trúc gọn gàng, một từ điển hoặc một DataFrame của gấu trúc

Bạn có thấy bài viết hữu ích không? . Vui lòng chia sẻ phản hồi có giá trị của bạn và giúp tôi đối xử với bạn bằng nội dung tốt hơn trong tương lai
Mô-đun statsmodels trong Python cung cấp nhiều hàm và lớp cho phép bạn điều chỉnh các mô hình thống kê khác nhau

Ví dụ từng bước sau đây cho thấy cách thực hiện hồi quy logistic bằng cách sử dụng các hàm từ mô hình trạng thái

Bước 1. Tạo dữ liệu

Trước tiên, hãy tạo một DataFrame gấu trúc chứa ba biến

  • Số giờ đã học (Giá trị số nguyên)
  • Phương pháp nghiên cứu (Phương pháp A hoặc B)
  • Kết quả thi (Đạt hoặc Không đạt)

Chúng tôi sẽ điều chỉnh mô hình hồi quy logistic bằng cách sử dụng số giờ nghiên cứu và phương pháp nghiên cứu để dự đoán liệu một học sinh có vượt qua kỳ thi nhất định hay không

Đoạn mã sau cho biết cách tạo DataFrame của gấu trúc

import pandas as pd

#create DataFrame
df = pd.DataFrame({'result': [0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
                              0, 1, 1, 1, 0, 1, 1, 1, 1, 1],
                   'hours': [1, 2, 2, 2, 3, 2, 5, 4, 3, 6,
                            5, 8, 8, 7, 6, 7, 5, 4, 8, 9],
                   'method': ['A', 'A', 'A', 'B', 'B', 'B', 'B',
                             'B', 'B', 'A', 'B', 'A', 'B', 'B',
                             'A', 'A', 'B', 'A', 'B', 'A']})

#view first five rows of DataFrame
df.head()

	result	hours	method
0	0	1	A
1	1	2	A
2	0	2	A
3	0	2	B
4	0	3	B

Bước 2. Phù hợp với mô hình hồi quy logistic

Tiếp theo, chúng ta sẽ điều chỉnh mô hình hồi quy logistic bằng cách sử dụng hàm logit()

import statsmodels.formula.api as smf

#fit logistic regression model
model = smf.logit('result ~ hours + method', data=df).fit()

#view model summary
print(model.summary())

Optimization terminated successfully.
         Current function value: 0.557786
         Iterations 5
                           Logit Regression Results                           
==============================================================================
Dep. Variable:                 result   No. Observations:                   20
Model:                          Logit   Df Residuals:                       17
Method:                           MLE   Df Model:                            2
Date:                Mon, 22 Aug 2022   Pseudo R-squ.:                  0.1894
Time:                        09:53:35   Log-Likelihood:                -11.156
converged:                       True   LL-Null:                       -13.763
Covariance Type:            nonrobust   LLR p-value:                   0.07375
===============================================================================
                  coef    std err          z      P>|z|      [0.025      0.975]
-------------------------------------------------------------------------------
Intercept      -2.1569      1.416     -1.523      0.128      -4.932       0.618
method[T.B]     0.0875      1.051      0.083      0.934      -1.973       2.148
hours           0.4909      0.245      2.002      0.045       0.010       0.972
===============================================================================

Các giá trị trong cột coef của đầu ra cho chúng ta biết mức thay đổi trung bình trong nhật ký tỷ lệ vượt qua kỳ thi

Ví dụ

  • Sử dụng phương pháp nghiên cứu B có liên quan đến mức tăng trung bình của. 0875 trong log tỷ lệ đỗ kỳ thi so với học theo phương pháp A
  • Mỗi giờ nghiên cứu bổ sung có liên quan đến mức tăng trung bình của. 4909 trong nhật ký tỷ lệ đậu kỳ thi

Các giá trị trong P>. z. cột đại diện cho giá trị p cho mỗi hệ số

Ví dụ

  • Phương pháp nghiên cứu có giá trị p là. 934. Vì giá trị này không nhỏ hơn. 05, điều đó có nghĩa là không có mối quan hệ có ý nghĩa thống kê giữa số giờ học và việc học sinh có vượt qua kỳ thi hay không
  • Số giờ được nghiên cứu có giá trị p là. 045. Vì giá trị này nhỏ hơn. 05, có nghĩa là có một mối quan hệ có ý nghĩa thống kê giữa số giờ học và việc học sinh có vượt qua kỳ thi hay không

Bước 3. Đánh giá hiệu suất mô hình

Để đánh giá chất lượng của mô hình hồi quy logistic, chúng ta có thể xem xét hai số liệu ở đầu ra

1. Giả R bình phương

Giá trị này có thể được coi là giá trị thay thế cho giá trị bình phương R cho mô hình hồi quy tuyến tính

Nó được tính bằng tỷ lệ của hàm khả năng đăng nhập tối đa của mô hình null so với mô hình đầy đủ

Giá trị này có thể nằm trong khoảng từ 0 đến 1, với các giá trị cao hơn cho thấy mô hình phù hợp hơn

Trong ví dụ này, giá trị bình phương R giả là. 1894, khá thấp. Điều này cho chúng ta biết rằng các biến dự đoán trong mô hình không thực hiện tốt công việc dự đoán giá trị của biến phản hồi

2. giá trị p LLR

Giá trị này có thể được coi là giá trị thay thế cho giá trị p cho giá trị F tổng thể của mô hình hồi quy tuyến tính

Nếu giá trị này thấp hơn một ngưỡng nhất định (e. g. a =. 05) thì chúng ta có thể kết luận rằng mô hình về tổng thể là "hữu ích" và tốt hơn trong việc dự đoán các giá trị của biến phản hồi so với mô hình không có biến dự báo

Trong ví dụ này, giá trị p LLR là. 07375. Tuỳ theo mức ý nghĩa mà ta chọn (e. g. . 01,. 05,. 1) chúng ta có thể hoặc không thể kết luận rằng toàn bộ mô hình là hữu ích