線性回歸是用于度量兩個變量間關(guān)聯(lián)關(guān)系的一種技術(shù)手段昵慌。例如有一個獨立自變量X,一個依賴于X的因變量Y淳蔼,線性回歸可以幫助我們得到一個最佳擬合數(shù)據(jù)集的線性模型Y=α+βX未状。舉個栗子艰垂,特斯拉為因變量Y,標普500ETF作為自變量X胰柑,通過線性回歸,我們就可以知道特斯拉股價是如何隨著標普500ETF價格波動而波動的踩官。
Python的statsmodels
是一個內(nèi)建的線性回歸庫颖系,首先我們先利用它自定義一個線性回歸函數(shù),該函數(shù)既包含了線性回歸的執(zhí)行趁啸,同時也把結(jié)果以圖表的形式進行展示。
最終它會給出一個最佳匹配的線性模型栅哀,但是該模型是否能夠反映變量間的真實關(guān)系留拾,卻還需要進一步的判斷咳蔚,輸出的結(jié)果中會包含模型的一些統(tǒng)計學(xué)指標舌涨,如R方(R-squared)與F檢驗温技,這些指標可以從一定層面上反映線性模型的好壞焊刹。
自定義函數(shù)中使用的回歸算法為最小二乘法俩滥,首先來簡單介紹一下其數(shù)學(xué)原理
最小二乘法(OLS/Ordinary Least Squares)
線性回歸的過程可以看做是為了獲得最佳擬合效果挂据,而不斷移動回歸線的過程个绍。如何定義“最佳”,就需要一個目標函數(shù),在最小二乘法里至非,目標函數(shù)被定義為:
注: 其中a和b戳杀,代表Y=α+βX中α和β的候選值题造,最小二乘法的目標函數(shù)表示將每個真實的數(shù)據(jù)點與擬合線上的差異取平方丢习,并進行求和,擬合度越高钉汗,這個值也就越小
經(jīng)過迭代優(yōu)化卢未,最終就會得到一條最優(yōu)的回歸擬合線。
示例
接下來我們使用特斯拉(TSLA)和標普500ETF(SPY)2016年的價格數(shù)據(jù)來示范一次線性回歸矮固,我們先利用pct_change()函數(shù)將價格數(shù)據(jù)轉(zhuǎn)化為價格波動率數(shù)據(jù)守伸,然后對這兩組波動率數(shù)據(jù)進行線性回歸剂娄。
簡單的幾行代碼就完成了一次線性回歸,但是面對打印的結(jié)果惯吕,可能會有點懵,結(jié)果中涉及一些統(tǒng)計學(xué)概念,這里不做過于深入的講解,目前只需要明白疚俱,線性回歸算法一定會得到一個結(jié)果梁钾,但能否很好的反映真實關(guān)聯(lián),還需要對結(jié)果的各項指標進行分析才能確定拇勃。
注:其中OLS表示使用的為最小二乘法進行回歸
R-squared/Adj. R-squared 指標表示回歸線對數(shù)據(jù)的擬合程度
F-statistic/Prob (F-statistic) 表示模型是否能顯著預(yù)測因變量的變化
注:const代表常量(α)瓣赂,x1標識自變量前系數(shù)(β)
得到的回歸線為Y=1.138X+0.0005
注:Dubin-Watson 用于檢測數(shù)據(jù)是否是自相關(guān)的
最終繪制的圖形如下牙勘,包含了散點圖與最終的回歸線恭金。
已知參數(shù) vs 估計值
心中請牢記一點揪惦,所有通過線性回歸得到參數(shù)都支持對于真實α與β的一個估計纫塌,除非你知道數(shù)據(jù)的真實處理過程措左,否則你將永遠無法知道背后真正的α與β。根據(jù)明天的數(shù)據(jù)產(chǎn)生的回歸結(jié)果就可能與今天的結(jié)果不盡相同,真實的參數(shù)也可能會發(fā)生變化,所以在顯示的分析過程中,對于參數(shù)估計的標準誤差(standard error)要極其的小心,標準誤差會在之后的文章中詳細介紹。
我們通過兩組數(shù)據(jù)來說明下,線性回歸雖然都會得到一個線性模型,但是卻不一定是有效的蛙埂。
第一組數(shù)據(jù)被辑,X與Y為兩組隨機數(shù)宏怔,
不出所料玷或,我們得到了一條回歸線(Y=0.0972X+0.4187*),但是可以看到R方值非常小炬灭,由此可以判定這個線性關(guān)系是無效的。
第二組數(shù)據(jù)畜伐,我們在X上增加一些人為噪聲數(shù)據(jù)來構(gòu)建出Y
再來對比看看回歸結(jié)果鲤脏,回歸線為Y=1.0405X+0.0081*阻问,這次R方非常接近于1忆畅,由此可以推斷Y與X之間確實存在線性關(guān)系的可能性較大。
如何評估回歸結(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)中。
回歸標準誤差(standard error)
標準誤差用于衡量誤差項(?)的標準差(standard deviation)的一個指標,通過線性回歸的尺度參數(shù)(scale parameter)開方得到名秀。(注:scale parameter考阱,location parameter)
估計的標準誤差公式為:
**注:最標準的關(guān)系式為:Y=α+βX+? 其中?表示誤差項 **
如之前得到的回歸線,得到的回歸參數(shù)均為估計值捐友,
考慮到回歸參數(shù)本身的標準誤差宜狐,標準誤差公式調(diào)整如下:
其中Sf為尺度參數(shù)(scale parameter),由此我們可以得到Y(jié)值得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é)方差進行度量
- 將X多維化挖函,線性回歸可以得到Y(jié)與多自變量間關(guān)系的模型
本篇完哲思,感謝閱讀徘郭,歡迎訂閱:)