R數據挖掘 第四篇:OLS回歸分析


變量之間存在着相關關系,比如,人的身高和體重之間存在着關系,一般來說,人高一些,體重要重一些,身高和體重之間存在的是不確定性的相關關系。回歸分析是研究相關關系的一種數學工具,它能幫助我們從一個變量的取值區估計另一個變量的取值。

OLS(最小二乘法)主要用於線性回歸的參數估計,它的思路很簡單,就是求一些使得實際值和模型估值之差的平方和達到最小的值,將其作為參數估計值。就是說,通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和為最小。最小二乘法可用於曲線擬合,其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。

一,OLS回歸

OLS法通過一系列的預測變量來預測響應變量(也可以說是在預測變量上回歸響應變量)。線性回歸是指對參數β為線性的一種回歸(即參數只以一次方的形式出現)模型:

Yt=α+βxtt (t=1……n)表示觀測數

  • Yt  被稱作因變量
  • xt  被稱作自變量
  • α、β 為需要最小二乘法去確定的參數,或稱回歸系數
  • μt  為隨機誤差項

OLS線性回歸的基本原則:最優擬合曲線應該使各點到直線的距離的平方和(即殘差平方和,簡稱RSS)最小:

 

OLS線性回歸的目標是通過減少響應變量的真實值與預測值的差值來獲得模型參數(截距項和斜率),就是使RSS最小。

為了能夠恰當地解釋OLS模型的系數,數據必須滿足以下統計假設:

  • 正態性:對於固定的自變量值,因變量值成正太分布
  • 獨立性:個體之間相互獨立
  • 線性相關:因變量和自變量之間為線性相關
  • 同方差性:因變量的方差不隨自變量的水平不同而變化,即因變量的方差是不變的

二,用lm()擬合回歸模型

在R中,擬合回歸模型最基本的函數是lm(),格式為:

lm(formula, data)

formula中的符號注釋:

  • ~ 分割符號,左邊為因變量,右邊為自變量,例如, z~x+y,表示通過x和y來預測z
  • + 分割預測變量
  • : 表示預測變量的交互項,例如,z~x+y+x:y
  • * 表示所有可能的交互項,例如,z~x*y 展開為 z~x+y+x:y
  • ^ 表示交互項的次數,例如,z ~ (x+y)^2,展開為z~x+y+x:y
  • . 表示包含除因變量之外的所有變量,例如,如果只有三個變量x,y和z,那么代碼 z~. 展開為z~x+y+x:y
  • -1 刪除截距項,強制回歸的直線通過原點
  • I() 從算術的角度來解釋括號中的表達式,例如,z~y+I(x^2) 表示的擬合公式是 z=a+by+cx2
  • function 可以在表達式中應用數學函數,例如,log(z) ~x+y

對於擬合后的模型(lm函數返回的對象),可以應用下面的函數,得到模型的更多額外的信息。

  • summary() 展示擬合模型的詳細結果
  • coefficients() 列出捏模型的參數(截距項intercept和斜率)
  • confint() 提供模型參數的置信區間
  • residuals() 列出擬合模型的殘差值
  • fitted() 列出擬合模型的預測值
  • anova() 生成一個擬合模型的方差分析表
  • predict() 用擬合模型對新的數據預測響應變量

例如,使用基礎安裝包中的數據集women(包含了年齡在30-39歲之間女性的身高和體重信息),通過身高來預測體重。

1,線性擬合

使用lm()函數來擬合模型,獲得模型對象fit

fit <- lm(weight~height,data=women)

使用summary()函數來查看模型的信息:

> summary(fit)

Call:
lm(formula = weight ~ height, data = women)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.7333 -1.1333 -0.3833  0.7417  3.1167 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -87.51667    5.93694  -14.74 1.71e-09 ***
height        3.45000    0.09114   37.85 1.09e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.525 on 13 degrees of freedom
Multiple R-squared:  0.991,    Adjusted R-squared:  0.9903 
F-statistic:  1433 on 1 and 13 DF,  p-value: 1.091e-14

殘差標准差(Residual standard error):表示模型用身高來預測體重的平均誤差

R的平方項(Multiple R-squared):表明模型可以解釋體重99.1%的方差,是實際和預測值之間相關系數的平方。

F統計量(F-statistic):檢驗所有的預測變量預測響應變量是否都在某個概率水平之上,

從Coefficients 組中,可以看到 Intercept(截距項)是 - 87.51667,height的系數是3.45,截距項和系數的標准差、t值和Pr(>|t|),其中,Pr(>|t|) 表示雙邊檢驗的p值

注,p值的表示方法通常有p-value,或Pr,p值是概率,表示某一事件發生的可能性大小。如果P值很小,說明原假設情況的發生的概率很小,而如果出現了,根據小概率原理,我們就有理由拒絕原假設,P值越小,我們拒絕原假設的理由越充分。總之,P值越小,表明結果越顯著。

因此可以得到預測等式:

Weight= - 87.51667 + 3.45 * Height

繪制擬合的直線:

> plot(women$height, women$weight,xlab='height',ylab='weight')
> abline(fit)

2,多項式擬合

使用lm(),在formula參數中使用I()函數來進行多項式擬合

> fit2 <- lm(weight~I(height^2),data=women)
> plot(women$height, women$weight,xlab='height',ylab='weight')
> lines(women$height,fitted(fit2))
> summary(fit2)

Call:
lm(formula = weight ~ I(height^2), data = women)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.2562 -0.7636 -0.1837  0.4622  2.2654 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 2.390e+01  2.109e+00   11.34 4.12e-08 ***
I(height^2) 2.659e-02  4.926e-04   53.98  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.072 on 13 degrees of freedom
Multiple R-squared:  0.9956,    Adjusted R-squared:  0.9952 
F-statistic:  2913 on 1 and 13 DF,  p-value: < 2.2e-16

非線性模型可用nls()函數進行擬合。 

 三,回歸診斷(標准方法

 回歸診斷用於評價回歸模型的擬合程度,模型返回的參數多大程度上匹配原始數據。

 根據OLS回歸的統計假設來評價模型的擬合情況,對於lm()擬合的模型對象,使用plot()函數生成評價模型擬合情況的四幅圖形,

> fit <- lm(weight~height,data=women)
> par(mfrow=c(2,2))
> plot(fit)

正態性:當預測變量值固定時,因變量成正態分布,則殘差值也應該是一個均值為0的正態分布。正態QQ圖(Normal Q-Q)是在正態分布對應的值下,標准化殘差的概率圖。若滿足正態假設,那么圖上的點應該落在呈45度角的直線上;若不是如此,那么久違反了正態假設。

獨立性:無法判斷因變量和自變量的值是否相互獨立,只能從收集的數據中來驗證。

線性相關性:若因變量與自變量線性相關,那么殘差值與預測(擬合)值除了系統誤差之外,就沒有任何關聯。在殘差和擬合圖(Residuals VS Fitted)中,可以看到一條曲線,這暗示着可能需要對擬合模型加上一個二次項。

同方差性:若滿足不變方差假設,那么在位置尺度圖(Scale-Location)中,水平線周圍的點應該隨機分布。

殘差和杠桿圖(Residuals VS Leverage)提供了特殊的單個觀測點(離群點、高杠桿點、強影響點)的信息。

  • 離群點:表明擬合回歸模型對其預測效果不佳(產生巨大的殘差)
  • 高杠桿點:指自變量因子空間中的離群點(異常值),由許多異常的自變量值組合起來的,與因變量沒有關系。
  • 強影響點:表明它對模型參數的估計產生的影響過大,非常不成比例。強影響點可以通過Cook距離(Cook distance)統計量來前別。

殘差和杠桿圖的可讀性差,不夠實用。

什么是高杠桿點?離群點是指對於給定的預測值  來說,響應值  異常的點。相反,高杠桿(high leverage) 表示觀測點  是異常的。例如,圖1(a)左下圖中的觀測點41具有高杠桿值,因為它的預測變量值比其他觀測點都要大。實線是對數據的最小二乘擬合,而虛線是刪除觀測點41后的擬合。事實上,高杠桿的觀測往往對回歸直線的估計有很大的影響。如果一些觀測對最小二乘線有重大影響,那么它們值得特別關注,這些點出現任何問題都可能使整個擬合失效。因此找出高杠桿觀測是十分重要的 。

四,回歸診斷(car包

car包提供了大量的函數,大大增強了擬合和評價回歸模型的能力

1,正態性

qqplot()函數提供了精確的正態假設檢驗方法,

> library(carData)
> library(car)
> par(mfrow=c(1,2))
> fit <- lm(weight~height,data=women)
> qqPlot(fit,labels=row.names(women),id.method='identity',simulate=TRUE,main='qq-fit')
[1]  1 15
> fit2 <- lm(weight~height+I(height^2),data=women)
> qqPlot(fit2,labels=row.names(women),id.method='identity',simulate=TRUE,main='qq-fit2')
[1] 13 15

 

可以看到,置信區間通過虛線划定,當絕大多數點都落在置信區間時,說明正態性假設符合的很好。

2,誤差的獨立性

car包提供了durbinWatsonTest()函數,用於做Durbin-Watson檢驗,檢測誤差的序列相關性。

> durbinWatsonTest(fit)
 lag Autocorrelation D-W Statistic p-value
   1        0.585079     0.3153804       0
 Alternative hypothesis: rho != 0

p值 (p=0)不顯著,誤差項之間獨立

3,線性相關性

通過成分殘差圖(component + residual plots)檢查因變量和自變量之間是否呈線性關系。

crPlots(fit)

若圖形存在非線性,則說明可能對預測變量的函數形式建模不夠充分,那么需要添加一些曲線成分,比如多項式,對一個或多個變量進行變換(log(x)代替x),或用其他回歸變體形式而不是線性回歸。

4,同方差性

判斷方差是否恆定,nvcTest()函數生成一個記分檢驗,原假設為誤方差不變,備擇假設為誤差方差隨着擬合值水平的變化而變化。若檢驗顯著,說明存在誤方差不很定。

spreadLevelPlot()函數創建了一個添加了最佳擬合曲線的散點圖,展示了標准化殘差絕對值與擬合值得關系。

> ncvTest(fit)
Non-constant Variance Score Test 
Variance formula: ~ fitted.values 
Chisquare = 0.8052115, Df = 1, p = 0.36954
> spreadLevelPlot(fit)

Suggested power transformation:  -0.8985826 

記分檢驗不顯著:p=0.36954,說明滿足方差不變假設,也可以通過分布水平看到這一點,點在水平的最佳擬合曲線周圍呈隨機分布。

五,回歸診斷(gvlma包)

gvlma()函數,用於對線性模型假設進行綜合驗證,同事還能驗證偏斜度,峰度和異方差的評價。從輸出項中可以看出,假設檢驗的顯著性水平是5%。如果p<0.05,說明違反了假設條件。從Global Stat 的Decision 欄中,可以看到數據滿足OLS回歸模型所有的統計假設(p=0.597)。

> library(gvlma)
> gvmodel <- gvlma(fit)
> summary(gvmodel)
.................
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance =  0.05 

Call:
 gvlma(x = fit) 

                     Value   p-value                   Decision
Global Stat        16.5866 0.0023251 Assumptions NOT satisfied!
Skewness            1.5577 0.2119999    Assumptions acceptable.
Kurtosis            0.1019 0.7496131    Assumptions acceptable.
Link Function      14.1218 0.0001713 Assumptions NOT satisfied!
Heteroscedasticity  0.8052 0.3695398    Assumptions acceptable.

 

 

參考文檔:

最小二乘線性(OLS)回歸模型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM