Statsmodels:快速入門
本文是系列文章的第二篇,旨在幫助大家快速入門并理解statsmodels庫的工作過程。為了達到這個目的,我找到了一個很好的例子,并將其介紹給大家。下面我們將逐步介紹這個例子。 引入相關模塊 在這個
本文是系列文章的第二篇,旨在幫助大家快速入門并理解statsmodels庫的工作過程。為了達到這個目的,我找到了一個很好的例子,并將其介紹給大家。下面我們將逐步介紹這個例子。
引入相關模塊
在這個例子中,我們主要使用了pandas和statsmodels庫。pandas的DataFrame類用于數(shù)據(jù)處理,statsmodels的回歸分析模塊(sm)用于進行回歸分析,而模塊用于生成設計矩陣。
獲取數(shù)據(jù)
本例中所使用的數(shù)據(jù)保存在一個CSV文件中,并且可以通過pandas的read_csv函數(shù)方便地讀?。║RL鏈接:)。我們可以先查看數(shù)據(jù)的前五行,但由于數(shù)據(jù)的列較多,顯示會有些混亂。因此,我們需要篩選出我們感興趣的列。
下面是經(jīng)過篩選后的數(shù)據(jù):
(這里插入表格展示被篩選后的數(shù)據(jù))
由于最后一行包含NaN值,我們需要使用dropna函數(shù)刪除該行數(shù)據(jù)。
生成設計矩陣
我們建立的模型是y BX,因此需要分別求得y和X矩陣。而使用dmatrices函數(shù)可以方便地生成設計矩陣。
這是y矩陣:
(這里插入表格展示y矩陣)
這是X矩陣:
(這里插入表格展示X矩陣)
我們會發(fā)現(xiàn)分類變量已經(jīng)自動轉換成了啞變量。
OLS回歸分析
OLS指的是普通最小二乘法,通過fit方法對回歸方程進行估計,計算結果保存在summary中。
這是輸出的模型估計結果:
(這里插入表格展示模型估計結果)
數(shù)據(jù)線性檢驗
接下來,我們要進一步檢驗數(shù)據(jù)是否適合使用OLS方法。首先,我們檢驗數(shù)據(jù)是否具有線性關系,而虛無假設是數(shù)據(jù)具有線性關系。我們可以使用Rainbow test來進行線性檢驗。
輸出結果如下:
第一個值為F值,第二個值為P值。顯然,我們未能拒絕虛無假設,即數(shù)據(jù)具有線性關系。
繪制偏回歸線
最后,我們繪制偏回歸線,觀察數(shù)據(jù)點是否分布在估計得到的直線附近。下圖展示了控制Region和Literacy后,Wealth對Lottery的回歸關系。
(這里插入圖表展示偏回歸線)