Trong hướng dẫn này, bạn sẽ thấy cách thực hiện hồi quy tuyến tính nhiều trong Python bằng cả Sklearn và StatSmodels.
Nội phân chính
- Kiểm tra tuyến tính
- Thực hiện & nbsp; hồi quy tuyến tính nhiều
- [1] Phần đầu tiên hiển thị đầu ra được tạo bởi & nbsp; sklearn:
- [2] Phần thứ hai hiển thị một bảng toàn diện với thông tin thống kê được tạo bởi StatSmodels.
Dưới đây là các chủ đề được đề cập:
- Xem xét ví dụ sẽ được sử dụng trong hướng dẫn này
- Kiểm tra tuyến tính
- Thực hiện & nbsp; hồi quy tuyến tính nhiều
[1] Phần đầu tiên hiển thị đầu ra được tạo bởi & nbsp; sklearn:
- [2] Phần thứ hai hiển thị một bảng toàn diện với thông tin thống kê được tạo bởi StatSmodels.
- unemployment_rate
Dưới đây là các chủ đề được đề cập:
Xem xét ví dụ sẽ được sử dụng trong hướng dẫn này
import pandas as pd data = {'year': [2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016], 'month': [12,11,10,9,8,7,6,5,4,3,2,1,12,11,10,9,8,7,6,5,4,3,2,1], 'interest_rate': [2.75,2.5,2.5,2.5,2.5,2.5,2.5,2.25,2.25,2.25,2,2,2,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75], 'unemployment_rate': [5.3,5.3,5.3,5.3,5.4,5.6,5.5,5.5,5.5,5.6,5.7,5.9,6,5.9,5.8,6.1,6.2,6.1,6.1,6.1,5.9,6.2,6.2,6.1], 'index_price': [1464,1394,1357,1293,1256,1254,1234,1195,1159,1167,1130,1075,1047,965,943,958,971,949,884,866,876,822,704,719] } df = pd.DataFrame[data] print[df]
Thực hiện hồi quy tuyến tính nhiều trong Python
Trong ví dụ sau, chúng tôi sẽ thực hiện hồi quy tuyến tính cho một nền kinh tế hư cấu, trong đó index_price là biến phụ thuộc và 2 biến độc lập/đầu vào là:Kiểm tra tuyến tính
Thực hiện & nbsp; hồi quy tuyến tính nhiều
[1] Phần đầu tiên hiển thị đầu ra được tạo bởi & nbsp; sklearn:
[2] Phần thứ hai hiển thị một bảng toàn diện với thông tin thống kê được tạo bởi StatSmodels.
- Dưới đây là các chủ đề được đề cập:
- Xem xét ví dụ sẽ được sử dụng trong hướng dẫn này
Thực hiện hồi quy tuyến tính nhiều trong Python
import pandas as pd import matplotlib.pyplot as plt data = {'year': [2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016], 'month': [12,11,10,9,8,7,6,5,4,3,2,1,12,11,10,9,8,7,6,5,4,3,2,1], 'interest_rate': [2.75,2.5,2.5,2.5,2.5,2.5,2.5,2.25,2.25,2.25,2,2,2,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75], 'unemployment_rate': [5.3,5.3,5.3,5.3,5.4,5.6,5.5,5.5,5.5,5.6,5.7,5.9,6,5.9,5.8,6.1,6.2,6.1,6.1,6.1,5.9,6.2,6.2,6.1], 'index_price': [1464,1394,1357,1293,1256,1254,1234,1195,1159,1167,1130,1075,1047,965,943,958,971,949,884,866,876,822,704,719] } df = pd.DataFrame[data] plt.scatter[df['interest_rate'], df['index_price'], color='red'] plt.title['Index Price Vs Interest Rate', fontsize=14] plt.xlabel['Interest Rate', fontsize=14] plt.ylabel['Index Price', fontsize=14] plt.grid[True] plt.show[]
Trong ví dụ sau, chúng tôi sẽ thực hiện hồi quy tuyến tính cho một nền kinh tế hư cấu, trong đó index_price là biến phụ thuộc và 2 biến độc lập/đầu vào là:
lãi suất
import pandas as pd import matplotlib.pyplot as plt data = {'year': [2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016], 'month': [12,11,10,9,8,7,6,5,4,3,2,1,12,11,10,9,8,7,6,5,4,3,2,1], 'interest_rate': [2.75,2.5,2.5,2.5,2.5,2.5,2.5,2.25,2.25,2.25,2,2,2,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75], 'unemployment_rate': [5.3,5.3,5.3,5.3,5.4,5.6,5.5,5.5,5.5,5.6,5.7,5.9,6,5.9,5.8,6.1,6.2,6.1,6.1,6.1,5.9,6.2,6.2,6.1], 'index_price': [1464,1394,1357,1293,1256,1254,1234,1195,1159,1167,1130,1075,1047,965,943,958,971,949,884,866,876,822,704,719] } df = pd.DataFrame[data] plt.scatter[df['unemployment_rate'], df['index_price'], color='green'] plt.title['Index Price Vs Unemployment Rate', fontsize=14] plt.xlabel['Unemployment Rate', fontsize=14] plt.ylabel['Index Price', fontsize=14] plt.grid[True] plt.show[]
Xin lưu ý rằng bạn sẽ phải xác nhận rằng một số giả định được đáp ứng trước khi bạn áp dụng các mô hình hồi quy tuyến tính. Đáng chú ý nhất, bạn phải đảm bảo rằng mối quan hệ tuyến tính tồn tại giữa biến phụ thuộc và biến/s độc lập [nhiều hơn về phần kiểm tra tuyến tính].
Bây giờ, hãy nhảy vào bộ dữ liệu mà chúng tôi sẽ sử dụng. Dữ liệu sẽ được ghi lại & NBSP; sử dụng gấu trúc DataFrame:
Thực hiện & nbsp; hồi quy tuyến tính nhiều
[1] Phần đầu tiên hiển thị đầu ra được tạo bởi & nbsp; sklearn:
[2] Phần thứ hai hiển thị một bảng toàn diện với thông tin thống kê được tạo bởi StatSmodels.
Dưới đây là các chủ đề được đề cập:
import pandas as pd from sklearn import linear_model import statsmodels.api as sm data = {'year': [2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016], 'month': [12,11,10,9,8,7,6,5,4,3,2,1,12,11,10,9,8,7,6,5,4,3,2,1], 'interest_rate': [2.75,2.5,2.5,2.5,2.5,2.5,2.5,2.25,2.25,2.25,2,2,2,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75], 'unemployment_rate': [5.3,5.3,5.3,5.3,5.4,5.6,5.5,5.5,5.5,5.6,5.7,5.9,6,5.9,5.8,6.1,6.2,6.1,6.1,6.1,5.9,6.2,6.2,6.1], 'index_price': [1464,1394,1357,1293,1256,1254,1234,1195,1159,1167,1130,1075,1047,965,943,958,971,949,884,866,876,822,704,719] } df = pd.DataFrame[data] x = df[['interest_rate','unemployment_rate']] y = df['index_price'] # with sklearn regr = linear_model.LinearRegression[] regr.fit[x, y] print['Intercept: \n', regr.intercept_] print['Coefficients: \n', regr.coef_] # with statsmodels x = sm.add_constant[x] # adding a constant model = sm.OLS[y, x].fit[] predictions = model.predict[x] print_model = model.summary[] print[print_model]
Xem xét ví dụ sẽ được sử dụng trong hướng dẫn này
[1] Phần đầu tiên hiển thị đầu ra được tạo bởi & nbsp; sklearn:
Intercept:
1798.4039776258564
Coefficients:
[ 345.54008701 -250.14657137]
[2] Phần thứ hai hiển thị một bảng toàn diện với thông tin thống kê được tạo bởi StatSmodels.
Dưới đây là các chủ đề được đề cập:intercept] + [interest_rate coef]*X1 + [unemployment_rate coef]*X2
Xem xét ví dụ sẽ được sử dụng trong hướng dẫn này
Thực hiện hồi quy tuyến tính nhiều trong Python1798.4040] + [345.5401]*X1 + [-250.1466]*X2
[2] Phần thứ hai hiển thị một bảng toàn diện với thông tin thống kê được tạo bởi StatSmodels.
Dưới đây là các chủ đề được đề cập:
OLS Regression Results
==============================================================================
Dep. Variable: index_price R-squared: 0.898
Model: OLS Adj. R-squared: 0.888
Method: Least Squares F-statistic: 92.07
Date: Sat, 30 Jul 2022 Prob [F-statistic]: 4.04e-11
Time: 13:47:01 Log-Likelihood: -134.61
No. Observations: 24 AIC: 275.2
Df Residuals: 21 BIC: 278.8
Df Model: 2
Covariance Type: nonrobust
=====================================================================================
coef std err t P>|t| [0.025 0.975]
-------------------------------------------------------------------------------------
const 1798.4040 899.248 2.000 0.059 -71.685 3668.493
interest_rate 345.5401 111.367 3.103 0.005 113.940 577.140
unemployment_rate -250.1466 117.950 -2.121 0.046 -495.437 -4.856
==============================================================================
Omnibus: 2.691 Durbin-Watson: 0.530
Prob[Omnibus]: 0.260 Jarque-Bera [JB]: 1.551
Skew: -0.612 Prob[JB]: 0.461
Kurtosis: 3.226 Cond. No. 394.
==============================================================================
Xem xét ví dụ sẽ được sử dụng trong hướng dẫn này
Thực hiện hồi quy tuyến tính nhiều trong Python
Trong ví dụ sau, chúng tôi sẽ thực hiện hồi quy tuyến tính cho một nền kinh tế hư cấu, trong đó index_price là biến phụ thuộc và 2 biến độc lập/đầu vào là:
lãi suất
Xin lưu ý rằng bạn sẽ phải xác nhận rằng một số giả định được đáp ứng trước khi bạn áp dụng các mô hình hồi quy tuyến tính. Đáng chú ý nhất, bạn phải đảm bảo rằng mối quan hệ tuyến tính tồn tại giữa biến phụ thuộc và biến/s độc lập [nhiều hơn về phần kiểm tra tuyến tính].