量化交易平臺Quantopian講座(7)——線性回歸

線性回歸是用于度量兩個變量間關(guān)聯(lián)關(guān)系的一種技術(shù)手段。例如有一個獨立自變量X,一個依賴于X的因變量Y,線性回歸可以幫助我們得到一個最佳擬合數(shù)據(jù)集的線性模型Y=α+βX。舉個栗子,特斯拉為因變量Y,標(biāo)普500ETF作為自變量X,通過線性回歸,我們就可以知道特斯拉股價是如何隨著標(biāo)普500ETF價格波動而波動的。
Python的statsmodels是一個內(nèi)建的線性回歸庫,首先我們先利用它自定義一個線性回歸函數(shù),該函數(shù)既包含了線性回歸的執(zhí)行,同時也把結(jié)果以圖表的形式進(jìn)行展示。

自定義線性回歸函數(shù)

最終它會給出一個最佳匹配的線性模型,但是該模型是否能夠反映變量間的真實關(guān)系,卻還需要進(jìn)一步的判斷,輸出的結(jié)果中會包含模型的一些統(tǒng)計學(xué)指標(biāo),如R方(R-squared)與F檢驗,這些指標(biāo)可以從一定層面上反映線性模型的好壞。
自定義函數(shù)中使用的回歸算法為最小二乘法,首先來簡單介紹一下其數(shù)學(xué)原理

最小二乘法(OLS/Ordinary Least Squares)

線性回歸的過程可以看做是為了獲得最佳擬合效果,而不斷移動回歸線的過程。如何定義“最佳”,就需要一個目標(biāo)函數(shù),在最小二乘法里,目標(biāo)函數(shù)被定義為:

最小二乘法目標(biāo)函數(shù)

注: 其中a和b,代表Y=α+βX中α和β的候選值,最小二乘法的目標(biāo)函數(shù)表示將每個真實的數(shù)據(jù)點與擬合線上的差異取平方,并進(jìn)行求和,擬合度越高,這個值也就越小
經(jīng)過迭代優(yōu)化,最終就會得到一條最優(yōu)的回歸擬合線。
回歸線

示例

接下來我們使用特斯拉(TSLA)和標(biāo)普500ETF(SPY)2016年的價格數(shù)據(jù)來示范一次線性回歸,我們先利用pct_change()函數(shù)將價格數(shù)據(jù)轉(zhuǎn)化為價格波動率數(shù)據(jù),然后對這兩組波動率數(shù)據(jù)進(jìn)行線性回歸。

示例代碼

簡單的幾行代碼就完成了一次線性回歸,但是面對打印的結(jié)果,可能會有點懵,結(jié)果中涉及一些統(tǒng)計學(xué)概念,這里不做過于深入的講解,目前只需要明白,線性回歸算法一定會得到一個結(jié)果,但能否很好的反映真實關(guān)聯(lián),還需要對結(jié)果的各項指標(biāo)進(jìn)行分析才能確定。
指標(biāo)一

注:其中OLS表示使用的為最小二乘法進(jìn)行回歸
R-squared/Adj. R-squared 指標(biāo)表示回歸線對數(shù)據(jù)的擬合程度
F-statistic/Prob (F-statistic) 表示模型是否能顯著預(yù)測因變量的變化

指標(biāo)二

注:const代表常量(α),x1標(biāo)識自變量前系數(shù)(β)
得到的回歸線為Y=1.138X+0.0005

指標(biāo)三

注:Dubin-Watson 用于檢測數(shù)據(jù)是否是自相關(guān)的
最終繪制的圖形如下,包含了散點圖與最終的回歸線。
繪制圖形

已知參數(shù) vs 估計值

心中請牢記一點,所有通過線性回歸得到參數(shù)都支持對于真實α與β的一個估計,除非你知道數(shù)據(jù)的真實處理過程,否則你將永遠(yuǎn)無法知道背后真正的α與β。根據(jù)明天的數(shù)據(jù)產(chǎn)生的回歸結(jié)果就可能與今天的結(jié)果不盡相同,真實的參數(shù)也可能會發(fā)生變化,所以在顯示的分析過程中,對于參數(shù)估計的標(biāo)準(zhǔn)誤差(standard error)要極其的小心,標(biāo)準(zhǔn)誤差會在之后的文章中詳細(xì)介紹。
我們通過兩組數(shù)據(jù)來說明下,線性回歸雖然都會得到一個線性模型,但是卻不一定是有效的。
第一組數(shù)據(jù),X與Y為兩組隨機數(shù),

示例代碼

不出所料,我們得到了一條回歸線(Y=0.0972X+0.4187*),但是可以看到R方值非常小,由此可以判定這個線性關(guān)系是無效的。
回歸結(jié)果

繪圖結(jié)果

第二組數(shù)據(jù),我們在X上增加一些人為噪聲數(shù)據(jù)來構(gòu)建出Y

示例代碼

再來對比看看回歸結(jié)果,回歸線為Y=1.0405X+0.0081*,這次R方非常接近于1,由此可以推斷Y與X之間確實存在線性關(guān)系的可能性較大。
回歸結(jié)果

如何評估回歸結(jié)果

一個有效的回歸模型依賴于以下幾條假設(shè)

  • 自變量不是隨機的
  • 誤差項的方差在觀測集內(nèi)為常量(這條對于評估擬合的好壞程度至關(guān)重要)
  • 誤差項不是自相關(guān)的,杜賓-沃森統(tǒng)計用于檢測自相關(guān)性,如果結(jié)果接近于2,那么則不存在自相關(guān)。
  • 誤差項服從正態(tài)分布。如果這個條件不滿足,則有些統(tǒng)計則無法使用,如F檢驗。
    如果以上條件均滿足,那么我們就可以放心的使用結(jié)果中的統(tǒng)計資料來分析擬合程度,例如R方體現(xiàn)了模型可解釋的因變量的總變分(total variation),即模型對于數(shù)據(jù)的擬合程度。
    在作一個預(yù)測時,孤零零的預(yù)測值往往是不夠的,還需要補充置信區(qū)間,上例的線性回歸結(jié)果中包含了95%的置信區(qū)間,我們通過seaborn庫可以將此部分信息也繪制到圖表當(dāng)中。


    示例代碼

    95%置信區(qū)間

回歸標(biāo)準(zhǔn)誤差(standard error)

標(biāo)準(zhǔn)誤差用于衡量誤差項(?)的標(biāo)準(zhǔn)差(standard deviation)的一個指標(biāo),通過線性回歸的尺度參數(shù)(scale parameter)開方得到。(注:scale parameter,location parameter)
估計的標(biāo)準(zhǔn)誤差公式為:

估計的標(biāo)準(zhǔn)誤差

**注:最標(biāo)準(zhǔn)的關(guān)系式為:Y=α+βX+? 其中?表示誤差項 **
如之前得到的回歸線,得到的回歸參數(shù)均為估計值,
回歸線

考慮到回歸參數(shù)本身的標(biāo)準(zhǔn)誤差,標(biāo)準(zhǔn)誤差公式調(diào)整如下:
調(diào)整后的回歸標(biāo)準(zhǔn)誤差

其中Sf為尺度參數(shù)(scale parameter),由此我們可以得到Y(jié)值得95%的置信區(qū)間為
Y值95%置信區(qū)間

其中tc為 t檢驗95%置信度下的關(guān)鍵值(critical value)

最后,比較下線性回歸與相關(guān)性分析的一些異同

線性回歸 vs 相關(guān)性分析

  • 線性回歸會給出一個特定的線性模型,但是它的使用僅限于變量間是線性相關(guān)的情況。
  • 相關(guān)性是線性相關(guān)與非線性相關(guān)的統(tǒng)稱,但它不會產(chǎn)生一個實際模型。
  • 兩者都通過協(xié)方差進(jìn)行度量
  • 將X多維化,線性回歸可以得到Y(jié)與多自變量間關(guān)系的模型

本篇完,感謝閱讀,歡迎訂閱:)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容