線性回歸是用于度量兩個變量間關聯關系的一種技術手段。例如有一個獨立自變量X,一個依賴于X的因變量Y,線性回歸可以幫助我們得到一個最佳擬合數據集的線性模型Y=α+βX。舉個栗子,特斯拉為因變量Y,標普500ETF作為自變量X,通過線性回歸,我們就可以知道特斯拉股價是如何隨著標普500ETF價格波動而波動的。
Python的statsmodels
是一個內建的線性回歸庫,首先我們先利用它自定義一個線性回歸函數,該函數既包含了線性回歸的執行,同時也把結果以圖表的形式進行展示。
最終它會給出一個最佳匹配的線性模型,但是該模型是否能夠反映變量間的真實關系,卻還需要進一步的判斷,輸出的結果中會包含模型的一些統計學指標,如R方(R-squared)與F檢驗,這些指標可以從一定層面上反映線性模型的好壞。
自定義函數中使用的回歸算法為最小二乘法,首先來簡單介紹一下其數學原理
最小二乘法(OLS/Ordinary Least Squares)
線性回歸的過程可以看做是為了獲得最佳擬合效果,而不斷移動回歸線的過程。如何定義“最佳”,就需要一個目標函數,在最小二乘法里,目標函數被定義為:
注: 其中a和b,代表Y=α+βX中α和β的候選值,最小二乘法的目標函數表示將每個真實的數據點與擬合線上的差異取平方,并進行求和,擬合度越高,這個值也就越小
經過迭代優化,最終就會得到一條最優的回歸擬合線。
示例
接下來我們使用特斯拉(TSLA)和標普500ETF(SPY)2016年的價格數據來示范一次線性回歸,我們先利用pct_change()函數將價格數據轉化為價格波動率數據,然后對這兩組波動率數據進行線性回歸。
簡單的幾行代碼就完成了一次線性回歸,但是面對打印的結果,可能會有點懵,結果中涉及一些統計學概念,這里不做過于深入的講解,目前只需要明白,線性回歸算法一定會得到一個結果,但能否很好的反映真實關聯,還需要對結果的各項指標進行分析才能確定。
注:其中OLS表示使用的為最小二乘法進行回歸
R-squared/Adj. R-squared 指標表示回歸線對數據的擬合程度
F-statistic/Prob (F-statistic) 表示模型是否能顯著預測因變量的變化
注:const代表常量(α),x1標識自變量前系數(β)
得到的回歸線為Y=1.138X+0.0005
注:Dubin-Watson 用于檢測數據是否是自相關的
最終繪制的圖形如下,包含了散點圖與最終的回歸線。
已知參數 vs 估計值
心中請牢記一點,所有通過線性回歸得到參數都支持對于真實α與β的一個估計,除非你知道數據的真實處理過程,否則你將永遠無法知道背后真正的α與β。根據明天的數據產生的回歸結果就可能與今天的結果不盡相同,真實的參數也可能會發生變化,所以在顯示的分析過程中,對于參數估計的標準誤差(standard error)要極其的小心,標準誤差會在之后的文章中詳細介紹。
我們通過兩組數據來說明下,線性回歸雖然都會得到一個線性模型,但是卻不一定是有效的。
第一組數據,X與Y為兩組隨機數,
不出所料,我們得到了一條回歸線(Y=0.0972X+0.4187*),但是可以看到R方值非常小,由此可以判定這個線性關系是無效的。
第二組數據,我們在X上增加一些人為噪聲數據來構建出Y
再來對比看看回歸結果,回歸線為Y=1.0405X+0.0081*,這次R方非常接近于1,由此可以推斷Y與X之間確實存在線性關系的可能性較大。
如何評估回歸結果
一個有效的回歸模型依賴于以下幾條假設
- 自變量不是隨機的
- 誤差項的方差在觀測集內為常量(這條對于評估擬合的好壞程度至關重要)
- 誤差項不是自相關的,杜賓-沃森統計用于檢測自相關性,如果結果接近于2,那么則不存在自相關。
-
誤差項服從正態分布。如果這個條件不滿足,則有些統計則無法使用,如F檢驗。
如果以上條件均滿足,那么我們就可以放心的使用結果中的統計資料來分析擬合程度,例如R方體現了模型可解釋的因變量的總變分(total variation),即模型對于數據的擬合程度。
在作一個預測時,孤零零的預測值往往是不夠的,還需要補充置信區間,上例的線性回歸結果中包含了95%的置信區間,我們通過seaborn庫可以將此部分信息也繪制到圖表當中。
示例代碼
95%置信區間
回歸標準誤差(standard error)
標準誤差用于衡量誤差項(?)的標準差(standard deviation)的一個指標,通過線性回歸的尺度參數(scale parameter)開方得到。(注:scale parameter,location parameter)
估計的標準誤差公式為:
**注:最標準的關系式為:Y=α+βX+? 其中?表示誤差項 **
如之前得到的回歸線,得到的回歸參數均為估計值,
考慮到回歸參數本身的標準誤差,標準誤差公式調整如下:
其中Sf為尺度參數(scale parameter),由此我們可以得到Y值得95%的置信區間為
其中tc為 t檢驗95%置信度下的關鍵值(critical value)
最后,比較下線性回歸與相關性分析的一些異同
線性回歸 vs 相關性分析
- 線性回歸會給出一個特定的線性模型,但是它的使用僅限于變量間是線性相關的情況。
- 相關性是線性相關與非線性相關的統稱,但它不會產生一個實際模型。
- 兩者都通過協方差進行度量
- 將X多維化,線性回歸可以得到Y與多自變量間關系的模型
本篇完,感謝閱讀,歡迎訂閱:)