第八章:回歸
什麼是回歸分析?
回歸分析是一種用自變數解釋因變數的方法,可以描述兩者之間的關係,也可以使用歷史數據建立模型來預測未來。
本章將解決以下問題:
1、如何擬合和解釋回歸模型、鑒別模型潛在問題的方法、並解決這些問題。
2、如何選擇變數,變數不是越多越好,有一些變數並不氣作用,有些兩者間存在共線性。
3、模型在現實世界中的表現如何。
4、預測變數的重要程度。
一:回歸的多面性
1、列出了各種回歸類型以及各自的用途,本節主要講述簡單線性回歸、多項式回歸和多元線性回歸。
二:OLS回歸
在使用OLS進行回歸分析時,對數據有一個假定:1、正態性。2、獨立性。3、線性。4、同方差性。
能否舉出這幾個假定的反面示例?
1、使用lm()函數擬合回歸模型,簡單線性回歸。
fit <- lm(weight ~ height, data=women)nsummary(fit)nwomen$weightnfitted(fit)nresiduals(fit)nplot(women$height,women$weight,n main="Women Age 30-39", n xlab="Height (in inches)", n ylab="Weight (in pounds)")nabline(fit)n
上面代碼得出的結果主要關注以下幾點:
1、回歸方程。2、殘差值的四分位數。3、回歸係數的顯著性程度。4、R方(多元判定係數)。5、殘差標準誤。
2、多項式回歸
fit2 <- lm(weight ~ height + I(height^2), data=women)nsummary(fit2)nplot(women$height,women$weight,n main="Women Age 30-39",n xlab="Height (in inches)",n ylab="Weight (in lbs)")nlines(women$height,fitted(fit2))n
關注點與簡單回歸模型相同。
多項式模型可以通過轉換為線性模型。
car包中的scatterplot()函數可以提供散點圖、線性擬合曲線和平滑擬合曲線還有箱線圖。
3、多元線性回歸
多項式回歸也是多元回歸的一個特例。lm()需要的是數據框。
第一步應該檢查變數間的相關性,相關係數太大的兩個變數選擇一個即可。
檢測兩變數關係圖中的峰值代表什麼含義?
fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data=states)nsummary(fit)n
當預測變數不止一個時,回歸係數的含義是,一個預測變數增加一個單位,其他預測變數保持不變時,因變數將要增加的數量。
4、有交互項的多元線性回歸
如何理解effect函數?
三、回歸診斷
模型建立以後,但模型是否合適?使用OLS進行回歸求模型時前面講過4個前提條件,因此,檢驗模型是否合適的方法看他在多大程度上滿足了這幾個統計假設。如果是在不滿足統計假設的情況下做出的模型,那麼他的預測效果將很差。
當模型滿足假設檢驗,可以通過confint函數求出置信區間。
1、標準方法
fit <- lm(weight ~ height, data=women)npar(mfrow=c(2,2))nplot(fit)n
通過生成的四副圖形可以判斷模型是否符合統計假設。
通過右下角的圖形可以鑒別出離群點、高槓桿值點和強影響點。
離群點多表明預測效果不佳,槓桿值高的點不一定是有影響力的觀測值,可以通過庫克距離進行識別。
二次擬合的診斷圖
fit2 <- lm(weight ~ height + I(height^2), data=women)nopar <- par(no.readonly=TRUE)npar(mfrow=c(2,2))nplot(fit2)npar(opar)n
通過圖形可以看出刪除兩個點擬合效果會更好,刪除數據時要非常謹慎,畢竟模型是用來匹配數據而不是反過來。
剛才我們用了plot對模型假設進行了檢驗,但是檢驗方法不止一種,接下來我們介紹下面幾種。
2、改進的方法
plot函數是一個函數將檢驗圖全部繪製出來,而接下來的方法是每檢驗一個統計假設就需要一個函數。
正態性、學生化殘差圖。
fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data=states)nqqPlot(fit, labels=row.names(states), id.method="identify",n simulate=TRUE, main="Q-Q Plot")n
圖形表明所有的點都落在置信區間內,表明正態性假設很好。還有一種檢驗正態性的方法是residplot函數,他可以生成直方圖和正態曲線,判斷正態性更加一目了然。
獨立性誤差
使用杜賓瓦特檢驗可以判斷數據是否呈自相關性。
線性
如何從成分殘差圖中看出因變數與自變數呈線性關係?
同方差性
通過ncvTest函數和圖形都可以判定出是否有同方差。
線性模型的綜合驗證
對於模型檢驗,我們首先進行一個函數的檢驗,接著分開檢驗,最後,用gvlma()函數進行綜合檢驗
多重共線性
多重共線性會使模型參數的置信區間過大,使單個係數解釋起來很困難。
四、異常值
1、離群點
在正態性檢驗的圖形中,在置信區間以外的點是離群點。標準化殘差大於2或小於-2的可能是離群點。使用outlierTest函數可以直接判斷出來誰是離群點。
2、高槓桿值點
高槓桿值點可能是強影響點也可能不是。
3、強影響點
庫克檢驗可以判定強影響點,但是不提供這些點如何影響模型的信息,變數添加圖彌補了這個缺陷。
檢驗三個點的方法有很多,接下來這個函數可以將三種點繪製到一張圖上。
五、改進措施
前面花了大段時間學習如何回歸診斷,接下來學習當發現回歸模型有問題是怎樣改進。
1、刪除觀測點
是否要刪除離群點要看情況,異常點也可能是有趣的東西。刪除離群點和強影響點後可以提高正態假設的擬合度,刪除後模型需要重新擬合。
2、變數變換
當模型不符合正態性、線性或者同方差線性假設時,一個或多個變數的變化通常會改善或調整模型效果,但要謹慎變換。變數變換看不懂。
3、增刪變數
刪除有多重共線性的變數。
4、其他方法
不同的情況可以使用不同的回歸函數。至於什麼時候需要提高OLS的擬合度,什麼時候變換一種方法,這是對主題知識理解的基礎上做出的判斷。
六、選擇最佳模型
1、模型比較
使用兩個函數既可以對模型的使用程度進行比較。但是如果有多個模型怎樣進行比較?
2、變數選擇
如果有多個模型不是一個個進行比較,而是對變數進行刪減。相對於逐步回歸模型,我更喜歡全子集回歸。全子集回歸的缺陷是有大量變數時,全子集回歸會變得很慢。
七、深層次分析
本節用於介紹模型泛化能力和相對重要性的方法。
1、交叉驗證
建立模型的目的是為了預測,所謂交叉驗證,將數據分成兩部分,一部分用於建立模型,另一部分用於檢驗模型。通過函數可以驗證出預測的驗證結果和實際的驗證結果。
通過選擇有更好泛化能力的模型,可以通過交叉驗證選擇變數。
2、相對重要性
相對重要性是評價那些變數對預測更重要。與權重類似。對變數的相對重要性進行排序。預測變數不相關,可以通過相關係數進行排序,但大部分情況下,預測變數有相關性。第一個方法是比較標準化回歸係數,第二是使用相對權重,他更容易判斷,更直觀。
小結:回歸分析首先要建立模型,然後檢驗模型,改進模型,選擇最佳模型,進一步驗證。
推薦閱讀: