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

變量之間存在着相關關係,好比,人的身高和體重之間存在着關係,通常來講,人高一些,體重要重一些,身高和體重之間存在的是不肯定性的相關關係。迴歸分析是研究相關關係的一種數學工具,它能幫助咱們從一個變量的取值區估計另外一個變量的取值。html

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

一,OLS迴歸

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

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

  • Yt  被稱做因變量
  • xt  被稱做自變量
  • α、β 爲須要最小二乘法去肯定的參數,或稱迴歸係數
  • μt  爲隨機偏差項

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

 

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

爲了可以恰當地解釋OLS模型的係數,數據必須知足如下統計假設:spa

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

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

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

lm(formula, data)

formula中的符號註釋:component

  • ~ 分割符號,左邊爲因變量,右邊爲自變量,例如, 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函數返回的對象),能夠應用下面的函數,獲得模型的更多額外的信息。orm

  • 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)迴歸模型

相關文章
相關標籤/搜索