iT邦幫忙

0

[Python]回歸模型01─運用OLS做回歸

  • 分享至 

  • xImage
  •  

Hi! 大家好,我是Eric,這次要來用Python做回歸模型。

/images/emoticon/emoticon82.gif



1. 載入套件。

import statsmodels.api as sm     #回歸模型套件
import numpy as np               #資料處理套件
import pandas as pd              #資料處理套件

2. 輸入資料。

df0 = pd.read_csv("TaipeiAllBus 0105.csv")   #輸入資料
df0

https://ithelp.ithome.com.tw/upload/images/20220126/20115774y0jVtO9EOW.png

3. 資料前處理。

df0_X = df0.drop("volumn", axis=1)           #將作為y的變數volunm刪去,並另存為x
df0_X1 = df0_X.drop("transfer01", axis=1)    #之後要做相關係數,而因為transfer01變數為虛擬變數,故不須納入做相關係數,故刪除

df0_y = df0[["volumn"]]      #製作變數y

4. 相關係數檢驗。

rDf0 = df0_X1.corr()  #查看數據間的相關係數
print(rDf0)


%matplotlib inline
sns.set(font_scale=1.5)

sns.set_context({"figure.figsize":(8,8)})
sns.heatmap(data = rDf0, square = True, cmap="RdBu_r", annot = True) 

https://ithelp.ithome.com.tw/upload/images/20220126/20115774sxLZYX2mVD.png

5. 檢視資料分布情形。

import seaborn as sns               #載入分布圖形套件
import matplotlib.pyplot as plt     #載入畫圖套件

sns.pairplot(df0, x_vars=["People","MRTpax", "shift", "kilometer"], y_vars='volumn', size=7, aspect=0.8, kind='reg')  
plt.show()

https://ithelp.ithome.com.tw/upload/images/20220126/20115774DlZFCnMVsq.png

6. 建模。

df0_X = sm.add_constant(df0_X)   #增加模型的常數,使更為符合回歸模型

model0 = sm.OLS(df0_y, df0_X)    #OLS回歸
results0 = model0.fit()

print(results0.summary())

7. 大功告成。
下圖就是回歸的結果,可以看到各個x變數的係數,以及P值,檢驗哪些x變數對於y具有顯著影響,另外也可由R2檢驗模型的解釋能力。

https://ithelp.ithome.com.tw/upload/images/20220126/20115774nCGrNVo4FH.png


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言