Hướng dẫn linear regression in python statsmodels - hồi quy tuyến tính trong mô hình thống kê python

Các mô hình tuyến tính với các lỗi phân phối độc lập và giống hệt nhau và cho các lỗi với tính không đồng nhất hoặc tự tương quan. Mô -đun này cho phép ước tính bằng bình phương tối thiểu (OLS), bình phương tối thiểu có trọng số (WLS), bình phương tối thiểu tổng quát (GLS) và bình phương nhỏ nhất khả thi với các lỗi AR (P) tự động tương quan.

Xem tham chiếu mô -đun cho các lệnh và đối số.

Ví dụ;

# Load modules and data
In [1]: import numpy as np

In [2]: import statsmodels.api as sm

In [3]: spector_data = sm.datasets.spector.load()

In [4]: spector_data.exog = sm.add_constant(spector_data.exog, prepend=False)

# Fit and summarize OLS model
In [5]: mod = sm.OLS(spector_data.endog, spector_data.exog)

In [6]: res = mod.fit()

In [7]: print(res.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  GRADE   R-squared:                       0.416
Model:                            OLS   Adj. R-squared:                  0.353
Method:                 Least Squares   F-statistic:                     6.646
Date:                Tue, 08 Feb 2022   Prob (F-statistic):            0.00157
Time:                        18:23:05   Log-Likelihood:                -12.978
No. Observations:                  32   AIC:                             33.96
Df Residuals:                      28   BIC:                             39.82
Df Model:                           3                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
GPA            0.4639      0.162      2.864      0.008       0.132       0.796
TUCE           0.0105      0.019      0.539      0.594      -0.029       0.050
PSI            0.3786      0.139      2.720      0.011       0.093       0.664
const         -1.4980      0.524     -2.859      0.008      -2.571      -0.425
==============================================================================
Omnibus:                        0.176   Durbin-Watson:                   2.346
Prob(Omnibus):                  0.916   Jarque-Bera (JB):                0.167
Skew:                           0.141   Prob(JB):                        0.920
Kurtosis:                       2.786   Cond. No.                         176.
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

Các ví dụ chi tiết có thể được tìm thấy ở đây:

  • OLS

  • WLS

  • GLS

  • LS đệ quy

  • Lăn ls

Tài liệu kỹ thuật¶

Mô hình thống kê được giả định là

\ (Y = x \ beta + \ mu \), trong đó \ (\ mu \ sim n \ left (0, \ sigma \ right). \), where \(\mu\sim N\left(0,\Sigma\right).\)

Tùy thuộc vào các thuộc tính của \ (\ sigma \), chúng tôi hiện có bốn lớp có sẵn:\(\Sigma\), we have currently four classes available:

  • GLS: bình phương tối thiểu nhất cho hiệp phương sai tùy ý \ (\ sigma \)\(\Sigma\)

  • OLS: bình phương tối thiểu cho I.I.D. Lỗi \ (\ sigma = \ textbf {i} \)\(\Sigma=\textbf{I}\)

  • WLS: bình phương tối thiểu có trọng số cho các lỗi dị hợp\(\text{diag}\left (\Sigma\right)\)

  • GLSAR: Các bình phương nhỏ nhất khả thi với các lỗi AR (P) tự động tương quan \ (\ sigma = \ sigma \ left (\ rho \ rears\(\Sigma=\Sigma\left(\rho\right)\)

Tất cả các mô hình hồi quy xác định các phương pháp tương tự và tuân theo cùng một cấu trúc, và có thể được sử dụng theo cách tương tự. Một số trong số chúng chứa các phương thức và thuộc tính cụ thể mô hình bổ sung.

GLS là siêu lớp của các lớp hồi quy khác ngoại trừ các đệ quy, rollingwls và rollingols.

Người giới thiệu¶

Tài liệu tham khảo chung cho các mô hình hồi quy:

  • D.C. Montgomery và E.A. PECK. Giới thiệu về phân tích hồi quy tuyến tính. lần 2. Ed., Wiley, 1992.

Tài liệu tham khảo kinh tế lượng cho các mô hình hồi quy:

  • R.Davidson và J.G. Mackinnon. Lý thuyết và phương pháp kinh tế học, Hồi Oxford, 2004.

  • W.Green. Phân tích kinh tế học, lần thứ 5, Pearson, 2003.

Thuộc tính¶

Sau đây là mô tả dài dòng hơn về các thuộc tính chủ yếu là phổ biến cho tất cả các lớp hồi quy

pinv_wexogarrayarray

P x N Moore-Penrose Pseudoinverse của ma trận thiết kế trắng. Nó xấp xỉ bằng \ (\ left (x^{t} \ sigma^{-1} x \ right)^{-1} x^{t} \ psi \), trong đó \ (\ psi \) sao cho \ (\ psi \ psi^{t} = \ sigma^{-1} \).\(\left(X^{T}\Sigma^{-1}X\right)^{-1}X^{T}\Psi\), where \(\Psi\) is defined such that \(\Psi\Psi^{T}=\Sigma^{-1}\).

Cholsimgainvarrayarray

Ma trận hình tam giác n x n trên \ (\ psi^{t} \) thỏa mãn \ (\ psi \ psi^{t} = \ sigma^{-1} \).\(\Psi^{T}\) that satisfies \(\Psi\Psi^{T}=\Sigma^{-1}\).

df_modelfloatfloat

Mức độ tự do mô hình. Điều này bằng P - 1, trong đó p là số lượng hồi quy. Lưu ý rằng việc chặn không được tính là sử dụng một mức độ tự do ở đây.

df_residfloatfloat

Mức độ tự do còn lại. Đây là N - P bằng nhau trong đó n là số lượng quan sát và P là số lượng tham số. Lưu ý rằng việc chặn được tính là sử dụng một mức độ tự do ở đây.

llffloatfloat

Giá trị của hàm khả năng của mô hình được trang bị.

Nobsfloatfloat

Số lượng quan sát n

normalized_cov_paramsarrayarray

Một mảng p x p bằng \ ((x^{t} \ sigma^{-1} x)^{-1} \).\((X^{T}\Sigma^{-1}X)^{-1}\).

Sigmaarrayarray

Ma trận hiệp phương sai n x\(\mu\sim N\left(0,\Sigma\right)\).

Wexogarrayarray

Ma trận thiết kế trắng \ (\ psi^{t} x \).\(\Psi^{T}X\).

Wendogarrayarray

Biến phản ứng trắng \ (\ psi^{t} y \).\(\Psi^{T}Y\).

Tham chiếu mô -đun

Các lớp học mô hình

OLS(endog[, exog, missing, hasconst])

Bình phương nhỏ nhất

GLS(endog, exog[, sigma, missing, hasconst])

Bình phương ít nhất

WLS(endog, exog[, weights, missing, hasconst])

Có trọng số bình phương tối thiểu

GLSAR(endog[, exog, rho, missing, hasconst])

Bình phương nhỏ nhất với cấu trúc hiệp phương sai AR

yule_walker(x[, order, method, df, inv, demean])

Ước tính các tham số AR (P) từ một chuỗi bằng cách sử dụng các phương trình Yule-Walker.

burg(endog[, order, demean])

Tính toán công cụ ước tính tham số AP (P) của Burg.

QuantReg(endog, exog, **kwargs)

Hồi quy lượng tử

RecursiveLS(endog, exog[, constraints])

Kiểu bình phương tối thiểu

RollingWLS(endog, exog[, window, weights, ...])

Cuộn bình phương ít có trọng lượng

OLS0(endog, exog[, window, min_nobs, ...])

Lăn bình phương tối thiểu bình thường

OLS1()

Một việc thực hiện các quá trình sử dụng kernel Gaussian.

OLS2(endog, exog, exog_scale, ...[, cov])

Phù hợp với mô hình hồi quy trung bình/phương sai Gaussian.

OLS3(endog, exog, **kwargs)

Cắt lát hồi quy nghịch đảo (thưa ngài)

OLS4(endog, exog, **kwargs)

Hướng dẫn Hessian Hessian (Tiến sĩ)

OLS5(endog, exog, ...)

Ước tính phương sai trung bình được cắt lát (Lưu)

Các lớp kết quả Lớp

Phù hợp với mô hình hồi quy tuyến tính trả về một lớp kết quả. OLS có một lớp kết quả cụ thể với một số phương pháp bổ sung so với lớp kết quả của các mô hình tuyến tính khác.

OLS6(model, params[, ...])

Lớp này tóm tắt sự phù hợp của mô hình hồi quy tuyến tính.

OLS7(model, params[, ...])

Lớp kết quả cho một mô hình OLS.

OLS8(predicted_mean, ...[, df, ...])

Kết quả lớp học cho dự đoán.

OLS9(model, params)

Kết quả cho các mô hình ước tính bằng cách sử dụng chính quy

GLS0(model, params[, ...])

Phiên bản kết quả cho mô hình Quantreg

GLS1(model, params, filter_results)

Lớp để giữ kết quả từ việc lắp mô hình bình phương tối thiểu đệ quy.

GLS2(model, store, ...)

Kết quả từ hồi quy lăn

GLS3(model, mlefit)

Kết quả lớp cho các mô hình hồi quy quy trình Gaussian.

GLS4(model, params, eigs)

Kết quả lớp cho một hồi quy giảm kích thước.

Sự khác biệt giữa StatSmodels và Sklearn Repression tuyến tính là gì?

Một sự khác biệt chính giữa hai thư viện là cách chúng xử lý các hằng số. Scikit-LEARN cho phép người dùng chỉ định xem có nên thêm hằng số thông qua tham số hay không, trong khi lớp OLS của StatSmodels có chức năng thêm hằng số vào một mảng nhất định.Scikit-learn allows the user to specify whether or not to add a constant through a parameter, while statsmodels' OLS class has a function that adds a constant to a given array.

Làm thế nào để bạn thực hiện hồi quy tuyến tính trong Python?

Hồi quy tuyến tính với scikit-learn..
Bước 1 và 2: Nhập các gói và lớp và cung cấp dữ liệu.Đầu tiên, bạn nhập Numpy và Sklearn.linear_model.linearregression và cung cấp các đầu vào và đầu ra đã biết: ....
Bước 3: Tạo một mô hình và phù hợp với nó.....
Bước 4: Nhận kết quả.....
Bước 5: Dự đoán phản hồi ..

Làm thế nào để bạn sử dụng StatSmodels trong Python?

Phù hợp với một mô hình trong StatSmodels thường liên quan đến 3 bước dễ dàng: Sử dụng lớp mô hình để mô tả mô hình.Lắp mô hình bằng phương pháp lớp.Kiểm tra kết quả bằng phương pháp tóm tắt.Use the model class to describe the model. Fit the model using a class method. Inspect the results using a summary method.

Python Statsmodels có tốt không?

Khi bạn cần một loạt các mô hình hồi quy tuyến tính, các mô hình tuyến tính hỗn hợp, hồi quy với các biến phụ thuộc riêng biệt và nhiều hơn - StatSmodels có các tùy chọn.Nó cũng có một cú pháp gần gũi hơn với R vì vậy, đối với những người đang chuyển sang Python, StatSmodels là một lựa chọn tốt.StatsModels is a good choice.