何小年,段鳳華
(湖南醫藥學院,醫學人文與信息管理學院,湖南,懷化 418000)
Python是一種專門處理金融、高級數學、統計和時間序列,便于繪制圖像工具,可應用于科學統計、人工智能、教育、Web開發、GUI開發、操作系統開發等諸多領域的編程語言。由荷蘭人吉多·范羅蘇姆開發的免費開源編程軟件,具有免費性、開源性和非美國直接起源性[1]。統計分析常用的軟件有Excel、MATLAB、SPSS和R等[2-4],本文嘗試應用Python語言進行統計學線性回歸內容實訓,實現對源于美國的許多教學科研技術產品的替代。
回歸分析(regression analysis)主要是探討自變量與因變量間的相互關系,通過構建自變量與因變量之間相互關系的回歸模型,對因變量的未來演變趨進行預測,也可用于理解哪些自變量與因變量的相關程度,并探索這些關系的形式。業界已經開發了許多用于執行回歸分析的技術,其中較為常見的回歸分析方法包括線性回歸、多項式回歸、邏輯回歸、嶺回歸、逐步回歸等[5]。本文運用Python進行線性回歸分析。
在Python的第三方庫中,以sklearn (scikit-learn)較為常見,是著名的機器學習庫,對機器學習方法提供了封裝,包括回歸(regression)、降維(dimensionality reduction)、分類(classfication)、聚類(clustering)等,擁有完善的文檔,這種優點使其上手簡單。因為其包含了大量數據集,節約了收集和整理數據集合的時間,所以是目前比較流行的的機器學習與實踐的工具。
運用sklearn庫構建線性回歸模型時,需要經過如下步驟:
(1) 根據預測的目標,確定自變量和因變量;
(2) 繪制散點圖,選擇回歸模型的類型;
(3) 估計模型參數,建立回歸模型;
(4) 對回歸模型進行檢驗;
(5) 利用回歸模型進行預測。
案例1 本文采用文獻[6]中《華爾街日報年鑒》(1999)公布的美國部分航空公司業績案例,案例信息見表1,問題為研究航班正點率與投訴率之間有何關系?若目前已知美國航空公司航班正點率為出發點,預測每10萬旅客投訴的人次數是多少?
航班正點率與投訴率之間的線性關系回歸分析步驟如下。
(1) 根據案例的已知信息,來確定自變量和因變量。
已知航空公司的航班正點率,預測每10萬名旅客投訴的次數,所以,航班的正點率為自變量,每10萬名旅客投訴次數為因變量。我們以y表示因變量,x表示自變量。

表1 航空公司航班正點率與乘客投訴率信息
(2) 繪制出所有自變量和因變量的散點圖,并觀察圖形,來判斷是否能夠建立回歸方程。
根據案例中數據所繪的散點圖(見圖1),航空公司航班正點率與每10萬名旅客投訴次數之間具有明顯的線性相關,即航空公司航班正點率越大,每10萬名旅客投訴次數也就越小。由此,可以繪出航班正點率與每10萬名旅客投訴次數之間的線性回歸圖(如圖2)。

圖1 航班正點率和投訴率散點圖

圖2 航班投訴率預測值圖
(3) 估計模型參數,建立回歸模型
根據圖2,可以建立航班正點率與每10萬名乘客投訴次數之間的一元線性回歸模型如下:
y=α+βx+ε
(1)
這里的α為常數項(即Y軸上的截距),β為回歸直線的斜率,ε為隨機誤差,ε的平方和即為殘差,殘差是確定線性回歸系數擬合性好壞的最主要方法之一。
(4) 對回歸模型進行檢驗
回歸方程的精度是表示實際觀測值和與回歸方程的擬合程度的指標,即對擬合優度進行度量。
(2)
可決系數R2越大即越接近于數字1,則表示回歸模型擬合的程度就越好。如果擬合的回歸模型精度符合需求,就可以利用擬合出的回歸模型,根據已有的自變量數據來估計因變量相對應的結果。
由圖3可以看到,模型的擬合優度(即R2=0.779)說明模型的擬合效果很好,可以使用這個模型進行未知數據的預測了。

圖3 航班正點率和投訴率回歸分析結果截圖
(5) 利用回歸模型進行預測
由圖2顯示預測直線,由圖3可知α=6.018,β=-0.07即可建立如下的線性回歸模型

(3)
假設航空公司航班的正點率等于70%,則使用回歸方程預測每10萬名旅客投訴次數約為1.088 8;如果航空公司航班的正點率等于80%,使用回歸方程預測每10萬名旅客投訴次數約為0.384 7。
運行結果如圖1~圖3所示。
案例2 為了探討中國部分區域居民平均消費開支及平均可支配收入之間數量關系,通過中國統計年鑒獲得2016年中國部分區域居民平均消費開支及平均可支配收入統計數據(見表2)。

表2 2016年中國部分區域居民平均消費開支及平均
問題為對居民消費支出和居民可支配收入作相關分析;對居民消費支出和居民可支配收入進行回歸分析;利用所建立的回歸模型,預測某地區居民人均可支配收入為60 000元和65 000元時人均消費支出水平的預測值。
采用案例1的代碼,運行結果如圖4~圖6所示。圖4是中國部分區域居民平均消費開支和平均可支配收入散點圖;圖5是中國部分區域居民平均消費開支的預測值預測值圖;圖6是中國部分區域居民平均消費開支和平均可支配收入回歸分析結果圖。從圖6可能得出中國部分區域居民人均可支配收入和居民人平均消費支出相關系數為0.986 791,表明二者之間有高度的線性相關關系;R2=0.974,說明回歸模型擬合程度比較好;線性回歸模型為y=1 496.505 210 203 147 7+0.660 270 886 170 55x,其中,y是消費支出,x是可支配收入;當居民人均可支配收入達到60 000元和65 000元時,預計居民人均消費支出y的預測值分別為 41 112.758 380 44和44 414.112 811 29。

圖4 中國部分區域居民平均消費開支和平均可支配

圖5 中國部分區域居民平均消費開支的預測值圖

圖6 中國部分區域居民平均消費開支和平均可支配
本文采用2個案例的數據,建立了一元線性回歸模型,使用Python中的sklearn庫構建線性回歸模型,估計了變量之間的相關系數,對因變量進行了估計,從而得出了比較好的回歸模型和預測的結論,在教學中可以采用直觀的圖形方法來揭示統計學中的較為復雜的數學模型。為學生提供直觀認識,解決了課程中概念抽象不直觀、難理解的難題,可以加深學生對知識的理解,實現了復雜問題簡單化,對于激發學生學習興趣、從而改善教學效果,提高教學質量,具有重要的作用。