Hướng dẫn linear regression python residuals - phần dư python hồi quy tuyến tính

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:

  1. Xem xét ví dụ sẽ được sử dụng trong hướng dẫn này
  2. Kiểm tra tuyến tính
  3. 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].

Chủ Đề