量化投資學習筆記17——迴歸分析:一些問題的處理

數據違背基本假設的處理
常見的問題:異方差,自相關,異常值。
異方差
指隨機誤差項的方差不是一個常數,而是隨着自變量的取值變化而變化。
帶來的問題:①使用最小二乘法(OLE)求解參數時,參數的估計值雖然無偏,但不是最小方差線性無偏估計。②參數的顯著性檢驗無效。③迴歸方程的應用效果不理想。
產生原因:①模型缺少某些解釋變量,缺省變量本身的方差被包含在隨機誤差的方差中。②模型本身選取有問題,非線性的選擇了線性模型。
其它原因:樣本量過少、測量誤差、異常數據、時序分析或使用面板數據。
檢驗:
殘差圖分析,散點如果隨機分佈無規律,表明方差符合要求,若有明顯的規律性,表明有異方差性。
等級相關係數法,又稱斯皮爾曼檢驗(spearman)
還有其它檢驗方法:相關圖分析、Park檢驗和Gleiser檢驗、Goldfeld-Quandt檢驗、Breusch-Pagan檢驗、White檢驗。
用上次的多元線性迴歸來實操一下。畫殘差圖和密度分佈圖。
resid = model.resid
plt.scatter(data["mpg"], resid)
plt.savefig("residual.png")
plt.close()
resid.plot.density()
plt.savefig("resid_density.png")
plt.close()

看着還好。
用scipy.stats裏的工具來檢測異方差性。
print(stats.stats.spearmanr(resid.values, data["mpg"].values))
結果爲:
SpearmanrResult(correlation=0.18725359199432956, pvalue=0.30478050953662256)
p > 0.05,沒有證據顯示有異方差性。
解決異方差的方法,用加權最小二乘法等方法。
自相關
指模型中隨機誤差項的相關係數不等於0。即變量前後數值之間存在相關關係。
帶來的問題:①用最小二乘法求解是雖然無偏,但估計量的方差不是最小。②估計量的方差是有偏的。③顯著性檢驗失效。④存在序列相關時,最小二乘法對抽樣誤差很敏感。⑤應用效果不理想。
常見原因:①模型遺漏關鍵變量。②錯誤的迴歸函數形式。③蛛網現象。指一個變量對另一個變量的影響有延遲性。④對數據加工整理使數據項之間出現自相關。
檢驗方法:畫et,et+1圖,計算自相關係數,DW檢驗法。
用自相關係數做檢驗
acf = smt.stattools.acf(resid.values, nlags = 5)
print(acf)

fig = smt.graphics.plot_acf(resid, lags=5, alpha=0.5)
fig.savefig("acf.png")
結果
[ 1. 0.03101277 -0.03869666 0.07033212 -0.23045137 0.02303189]

除了兩個點,均無自相關性。
消除自相關的方法:迭代法、差分法、BOX-COX變換法等。
DW檢驗法
dw = durbin_watson(resid)
print(dw)
結果:1.8608933684548286
在0-2區間內,無關聯性。
異常值
異常或極端值引起較大殘差,影響迴歸擬合的效果。
成因:數據錄入錯誤,測量錯誤,數據隨機誤差,缺少重要自變量,缺少觀察數據,存在異方差,模型錯誤。
一般認爲超過±3方差即爲異常值。
本文代碼: https://github.com/zwdnet/MyQuant/tree/master/17

我發文章的四個地方,歡迎大家在朋友圈等地方分享,歡迎點“在看”。
我的個人博客地址:https://zwdnet.github.io
我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
我的博客園博客地址: https://www.cnblogs.com/zwdnet/
我的微信個人訂閱號:趙瑜敏的口腔醫學學習園地

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章