上文介紹了簡單的一元線性回歸,再進一步將自變量擴展到多維,就是今天這邊介紹的重點——多元線性回歸。例如假設因變量Y與自變量X1,...,Xk之間存在線性關系:
多元線性關系
注:其中?表示誤差項
在金融中,也經常會寫成以下形式,這就是我們常說的alpha(超額收益)和beta(風險收益)的由來
金融常見寫法
回歸的原理與一元線性回歸類似,需要找到最優的擬合平面(超平面),同樣還是需要使用最小二乘法,使得平方誤差值最小。一旦得到了回歸系數(既各β系數),我們就可以通過該模型對于X的新觀測值進行Y值預測了,每個βj告訴我們如果其他系數保持不變的情況下,Y會隨著其變化的程度。
首先,我們先構造一個已知的線性模型Y=X1+X2,其中X2我們通過在平方拋物線加上X1得到,所以可以線性模型也可寫為Y=2X1+X1^2:
示例代碼
繪制圖形
有了原始數據后,我們就可以使用
statsmodels
對其進行線性回歸了示例代碼
最終得到的線性模型為:
線性回歸結果
可以看到這里模型中X1前的系數是1,而沒有考慮X2=X^2+X1,這是因為在回歸過程中是元素是被分割開來處理的。
多元線性回歸示例
在真實的股票分析過程中,也有類似的情況,例如對兩只股票數據進行線性回歸,可能會得到很高的β值,但是如果我們再引入一只第三方股票(例如標普500ETF),可能才能發現前兩只股票的關聯都是源于與這只基準股票,通過這種方法,可以更為準確地衡量兩只股票的顯著性。
第一步,我們先獲取兩只股票(AT&T與Fiserv)與標普500ETF(SPY)的價格數據,并對AT&T與Fiserv進行一輪線性回歸
第二步,再引入標普500ETF的數據,將其作為另一個自變量引入回歸過程
引入500ETF數據
得到回歸線后,緊接著的一個問題就是如何對其進行驗證,我們先采用一個最直觀的辦法——將自變量、因變量預測值繪制為圖表,可以過濾一些明顯存在的問題。
示例代碼
繪制圖表
注:黃色為預測值,藍色為AT&T的真實價格
當然,也可以使用更為專業的統計學分析進行深入的驗證與分析,summary()函數提供了多元線性回歸的一些統計學數據。
指標1
注:OLS表示使用的為最小二乘法
R-squared/Adj. R-squared 指標表示回歸線對數據的擬合程度
F-statistic/Prob (F-statistic) 表示模型是否能顯著預測因變量的變化
指標2
const代表常量(α),x1標識自變量前系數(β1),x2標識自變量前系數(β2)
得到的回歸線為Y=10.8489 - 0.1936X1 + 0.1836X2
模型假設
如上這些統計學指標是否有效,取決于如下的一些假設(與上篇文章中一元線性回歸的假設一致):
- 自變量不是隨機的
- 誤差項的方差在觀測集內為常量(這條對于評估擬合的好壞程度至關重要)
- 誤差項不是自相關的,杜賓-沃森統計用于檢測自相關性,如果結果接近于2,那么則不存在自相關。
- 誤差項服從正態分布。如果這個條件不滿足,則有些統計則無法使用,如F檢驗。
除此之外,多元線性回歸模型還需要一個額外的假設: - 自變量間不存在嚴格線性關系,否則就會出現相同的線性方程有為多種表現方式的情況,從而無法計算出唯一的β系數。
模型選擇
如何為因變量找到最合適的模型,是我們關注的究極目的。引入太多的自變量,可能會導致過度擬合,但如果自變量過少,擬合效果又會太差。目前業內最為主流的做法是逐步回歸法。前向逐步回歸從一個“空模型”起步,對每個獨立的自變量進行檢驗,從中選擇使得模型最優的一個,通常使用AIC或BIC進行衡量(越小越好)。然后之后每步從剩下的自變量中選出一個增加到模型中,使用線性檢驗該自變量組合,并通過AIC與BIC找到最優的一個選擇,這樣最終就能得到一個最優的模型。這種方法也有其局限性,如果特定的自變量在算法執行的前段就被剔除出算法,該方法可能會找不到理論上的最優模型,所以在現實使用中,逐步回歸法還是需要結合人為的判斷。
模型選擇示例(自變量間存在嚴格線性關系)
首先我們手工構建一個包含4個自變量的線性模型:
手工構建的線性方程
為自變量生成對應的序列數據,各自變量間都有一定的關系,但需要注意的是對于X4變量,這里直接將其賦值為X1的數據的5倍(嚴格線性關系)
示例代碼
自變量圖示
我們使用
statsmodels
直接對其進行多元線性回歸,示例代碼
注:可以看到結果中Beta2與Beta3擬合還是非常準確的,但是Beta1和Beta4則存在較大差異
由此可見,自變量間的嚴格線性關系會導致回歸系數的不確定(逐步回歸法也無法規避該問題)在這種情況下,就應該人為將X4剔除。
原理也很容易理解,因為如果X1與X4間存在嚴格線性關系(如X1=X2),那么線性方程就可以轉化出無數的可能性(Y=X1+X2=0.5X1+1.5X2=1.5X1+0.5X2)。
還有很多方式去檢查模型與自變量的優劣,這部分會在之后的文章中再深入介紹。
本篇就到這里,感謝閱讀,歡迎訂閱:)