第八章:回歸

什麼是回歸分析?

回歸分析是一種用自變數解釋因變數的方法,可以描述兩者之間的關係,也可以使用歷史數據建立模型來預測未來。

本章將解決以下問題:

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、相對重要性

相對重要性是評價那些變數對預測更重要。與權重類似。對變數的相對重要性進行排序。預測變數不相關,可以通過相關係數進行排序,但大部分情況下,預測變數有相關性。第一個方法是比較標準化回歸係數,第二是使用相對權重,他更容易判斷,更直觀。

小結:回歸分析首先要建立模型,然後檢驗模型,改進模型,選擇最佳模型,進一步驗證。

推薦閱讀:

資源分享 | 產品經理數據分析手冊
菜鳥數據科學入門01 - 工具包概略
那些小城裡的分析大師們為什麼發不了財?

TAG:R编程语言 | 数据分析 |