熱線電話:13121318867

登錄
首頁精彩閱讀從一個R語言案例學線性回歸
從一個R語言案例學線性回歸
2016-01-26
收藏

從一個R語言案例學線性回歸

數據分析師用r語言做數據分析的時候會很多,也有很多數據分析師對于用r語言不是很了解,下面就談論一下?

線性回歸簡介:如下圖所示,如果把自變量(也叫independent variable)和因變量(也叫dependent variable)畫在二維坐標上,則每條記錄對應一個點。線性回規最常見的應用場景則是用一條直線去擬和已知的點,并對給定的x值預測其y值。而我們要做的就是找出一條合適的曲線,也就是找出合適的斜率及縱截矩。


SSE & RMSE


上圖中的SSEsum of squared error,也即預測值與實際值之差的平方和,可由此判斷該模型的誤差。但使用SSE表征模型的誤差有些弊端,比如它依賴于點的個數,且不好定其單位。所以我們有另外一個值去稱量模型的誤差。RMSERoot-Mean-Square Error)。

N將其標準化,并且其單位與變量單位相同。

案例

許多研究表明,全球平均氣溫在過去幾十年中有所升高,以此引起的海平面上升和極端天氣頻現將會影響無數人。本文所講案例就試圖研究全球平均氣溫與一些其它因素的關系。

本例我們以19835月到200612月的數據作為訓練數據集,以之后的數據作為測試數據集。

數據

首先加載數據

 temp <- read.csv("climate_change.csv")

數據解釋

Year 年份 M

Month 月份 T

emp 當前周期內的全球平均氣溫與一個參考值之差

CO2, N2O,CH4,CFC.11,CFC.12:這幾個氣體的大氣濃度 Aerosols

模型選擇

線性回歸模型保留兩部分。

"數據分析師'選擇目標feature。我們數據中,有多個feature,但并非所有的feature都對預測有幫助,或者并非所有的feature都需要一起工作來做預測,因此我們需要篩選出最小的最能預測出接近事實的feature組合。

確定feature系數(coefficient)。feature選出來后,我們要確定每個feature對預測結果所占的權重,這個權重即為coefficient

結合實例選擇模型

初始選擇所有feature
選擇所有feature作為第一個model1,并使用summary函數算出其Adjusted R20.7371。

 model1 <- lm(Temp ~ MEI + CO2 + CH4 + N2O + CFC.11 + CFC.12 + TSI + Aerosols, temp) summary(model1)

逐一去掉feature

model1中去掉任一個feature,并記下相應的Adjusted R2如下

Feature

Adjusted R2

CO2 + CH4 + N2O + CFC.11 + CFC.12 + TSI + Aerosols

0.6373

MEI + CH4 + N2O + CFC.11 + CFC.12 + TSI + Aerosols

0.7331

MEI + CO2 + N2O + CFC.11 + CFC.12 + TSI + Aerosols

0.738

MEI + CO2 + CH4 + CFC.11 + CFC.12 + TSI + Aerosols

0.7339

MEI + CO2 + CH4 + N2O + CFC.12 + TSI + Aerosols

0.7163

MEI + CO2 + CH4 + N2O + CFC.11 + TSI + Aerosols

0.7172

MEI + CO2 + CH4 + N2O + CFC.11 + CFC.12 + Aerosols

0.697

MEI + CO2 + CH4 + N2O + CFC.11 + CFC.12 + TSI

0.6883

本輪得到Temp ~ MEI + CO2 + N2O + CFC.11 + CFC.12 + TSI + Aerosols

model2中任意去掉1feature,并記下相應的Adjusted R2如下

Feature

Adjusted R2

CO2 + N2O + CFC.11 + CFC.12 + TSI + Aerosols

0.6377

MEI + N2O + CFC.11 + CFC.12 + TSI + Aerosols

0.7339

MEI + CO2 + CFC.11 + CFC.12 + TSI + Aerosols

0.7346

MEI + CO2 + N2O + CFC.12 + TSI + Aerosols

0.7171

MEI + CO2 + N2O + CFC.11 + TSI + Aerosols

0.7166

MEI + CO2 + N2O + CFC.11 + CFC.12 + Aerosols

0.698

MEI + CO2 + N2O + CFC.11 + CFC.12 + TSI

0.6891

任一組合的Adjusted R2都比上一輪小,因此選擇上一輪的feature組合作為最終的模型,也即Temp ~ MEI + CO2 + N2O + CFC.11 + CFC.12 + TSI + Aerosols

summary(model2)可算出每個featurecoefficient如下 。

線性回歸介紹

線性回歸中,數據使用線性預測函數來建模,并且未知的模型參數也是通過數據來估計。這些模型被叫做線性模型。最常用的線性回歸建模是給定X值的y的條件均值是X的仿射函數。

線性回歸是回歸分析中第一種經過嚴格研究并在實際應用中廣泛使用的類型。這是因為線性依賴于其未知參數的模型比非線性依賴于其位置參數的模型更容易擬合,而且產生的估計的統計特性也更容易確定。

上面這段定義來自于維基百科。

這個錯誤估計函數是去對x(i)的估計值與真實值y(i)差的平方和作為錯誤估計函數,前面乘上的1/2m是為了在求導的時候,這個系數就不見了。至于為何選擇平方和作為錯誤估計函數,就得從概率分布的角度來解釋了。
如何調整θ以使得J(θ)取得最小值有很多方法,本文會重點介紹梯度下降法和正規方程法。

梯度下降

在選定線性回歸模型后,只需要確定參數θ,就可以將模型用來預測。然而θ需要使得J(θ)最小。因此問題歸結為求極小值問題。
梯度下降法流程如下:

1. 首先對θ賦值,這個值可以是隨機的,也可以讓θ為一個全零向量。

2. 改變θ的值,使得J(θ)按梯度下降的方向進行調整。

梯度方向由J(θ)對θ的偏導數確定,由于求的是極小值,因此梯度方向是偏導數的反方向。更新公式為為:

這種方法需要對全部的訓練數據求得誤差后再對θ進行更新。(α為學習速度)

正規方程(Normal Equation數據分析師培訓


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢