在《機器學習---最小二乘線性回歸模型的5個基本假設(Machine Learning Least Squares Linear Regression Assumptions)》一文中闡述了最小二乘線性回歸的5個基本假設以及違反這些假設條件會產生的后果。那么,我們怎么檢測出是否有違反假設的情況出現以及如何解決出現的問題呢?(注:內生性的問題比較復雜,這里暫時略過。)
非線性的檢測
1,殘差圖(residual plot):x軸是預測值,y軸是殘差。用來查看模型是否很好地擬合數據,如果殘差分布有規律可循,說明擬合得不好。
可以看出,上面最后一張圖顯示可以用非線性模型擬合。(中間這張圖是說殘差的方差沒有保持不變,產生了異方差問題)
2,偏殘差圖(partial residual plot):用來查看哪個變量需要進行非線性變換。
非線性的解決辦法
使用特征的非線性變換:https://www.cnblogs.com/HuZihu/p/10144425.html,特征組合,分箱,樣條回歸
共線性或多重共線性的檢測
1,計算兩變量之間的相關關系,如果一組變量之間高度相關,就說明這組變量之間存在共線性問題
- 兩個變量都是定量變量:計算兩個變量之間的皮爾遜相關系數(Pearson's r),對於多組變量,可繪制相關系數矩陣(correlation matrix)
- 兩個變量都是定性變量:卡方檢驗
- 兩個變量中既有定量變量,又有定性變量:單因素方差分析(one-way ANOVA)
2,大部分變量的系數分別不顯著(t-test),但是它們又聯合顯著(F-test),那么就說明它們之間存在多重共線性的問題
3,計算每個變量的方差膨脹因子(variance inflation factor,VIF):VIF=1/(1−R2),若VIF>10,說明該變量可能存在多重共線性性問題
4,估算出的系數符號與期望相反,比如說變量X1和Y之間應該是正相關關系,結果估算出的該變量的系數β1卻是負數,那就說明該變量可能存在多重共線性性問題
共線性或多重共線性的解決辦法
在實際運用中,共線性問題是不可避免的。除了數據本身會帶來共線性問題,回歸模型的結構也會帶來這個問題,比如當有交互項的時候,或用高階模型的時候。
源於數據的共線性:1,去掉引起共線性的不重要的特征:這點比較難處理,因為你不知道哪個變量是不重要的
2,不做改變(雖然參數不准,但是預測值不受影響):這點不太推薦,因為經常需要向別人解釋模型
3,對相關變量進行組合,生成一個新的綜合變量
4,設計一個實驗
5,使用加權回歸模型
結構化共線性問題: 6,對特征進行標准化處理:https://www.cnblogs.com/HuZihu/p/9761161.html
自相關性的檢測
1,自相關圖(Autocorrelation Plot):看是否有截尾或拖尾
2,殘差圖:根據時間順序畫出 的殘差關系圖。
隨着時間的推移,如果殘差並不是散亂的,而是有序的,這就說明存在自相關性。
3,杜賓-瓦特森檢驗(Durbin-Watson test)
自相關性的解決辦法
使用時間序列分析
隨機誤差正態性的檢測
1,Q-Q圖:如果圖中的散點呈直線狀,表示誤差為正態分布,否則為非正態分布。
非正態分布有兩種情況:
(1)峰度有問題:
(2)偏度有問題:
隨機誤差分布不服從正態分布的解決辦法
對特征進行變換,比如說取對數,平方根等
(注:如果只有輕微偏差,那么不影響模型。)
異方差的檢測
1,殘差圖:如果異方差存在,會在圖中看到明顯的規律。
Y是次數,服從泊松分布:
Y是比率,服從二項分布:
漏斗狀:
異方差的解決辦法
1,漏斗狀:對Y進行變換,將Y變為log(Y);Y是比率,服從二項分布:對Y進行變換,將Y變為;Y是次數,服從泊松分布:對Y進行變換,將Y變為
(注:對數變換之后會縮小異方差的范圍)
2,改用加權最小二乘法WLS進行估計
(注:加權最小二乘法是對原模型進行加權處理,對較小的殘差平方賦予較大的權重,對較大的殘差平方賦予較小的權重,這樣可以消除其異方差性,然后再使用普通最小二乘法進行參數估計。)