如何用線性回歸模型做數據分析?
編輯導語:在日常工作中,很多時候都會用到數據分析的方法,線性回歸模型看起來非常簡單,但實際上它的十分重要;本文作者分享了關于如何用線性回歸模型做數據分析的方法,我們一起來學習一下。
一、什么是線性回歸
線性回歸是利用線性的方法,模擬因變量與一個或多個自變量之間的關系;對于模型而言,自變量是輸入值,因變量是模型基于自變量的輸出值,適用于x和y滿足線性關系的數據類型的應用場景。
線性回歸應用于數據分析的場景主要有兩種:
- 驅動力分析:某個因變量指標受多個因素所影響,分析不同因素對因變量驅動力的強弱(驅動力指相關性,不是因果性);
- 預測:自變量與因變量呈線性關系的預測;
模型數學形式:?=?0+?1?1+?2?2+?+????
例如要衡量不同的用戶特征對滿意分數的影響程度,轉換成線性模型的結果可能就是:分數=-2.1+0.56*年齡。
線性回歸模型分為一元線性回歸與多元線性回歸:區別在于自變量的個數。
二、線性系數的計算:最小二乘法
我們知道了模型的公式,那么模型的系數是如何得來呢?我們用最小二乘法來確定模型的系數——最小二乘法,它通過最小化誤差的平方和尋找數據的最佳函數匹配,利用最小二乘法可以求得一條直線,并且使得擬合數據與實際數據之間誤差的平方和為最小。
將上述模型公式簡化成一個四個點的線性回歸模型來具體看:分數=-2.1+0.56*年齡
最小二乘法選取能使模型 誤差平方和= ?1?+ ?2?+ ?3?+ ?4?最小化的直線,生成直線后即可得出模型自變量的系數和截距。
三、決定系數R方(R-squared)與調整R方
R方(適用一元線性回歸)。
R方也叫決定系數,它的主要作用是衡量數據中的因變量有多準確可以被某一模型所計算解釋。
公式:
離差平方和:代表因變量的波動,即因變量實際值與其平均值之間的差值平方和。
誤差平方和:代表因變量實際值與模型擬合值之間的誤差大小。
故R方可以解釋因變量波動中,被模型擬合的百分比,即R方可以衡量模型擬合數據的好壞程度;R方的取值范圍<=1,R方越大,模型對數據的擬合程度越好。
使用不同模型擬合自變量與因變量之間關系的R方舉例:
R方=1 模型完美的擬合數據(100%)
R方=0.91 模型在一定程度較好的擬合數據(91%)
R方<0 擬合直線的趨勢與真實因變量相反
調整R方(適用多元線性回歸):
一般的R方會存在一些問題,即把任意新的自變量加入到線性模型中,都可能會提升R方的值,模型會因加入無價值的變量導致R方提升,對最終結果產生誤導。
故在建立多元線性回歸模型時,我們把R方稍稍做一些調整,引進數據量、自變量個數這兩個條件,輔助調整R方的取值,我們把它叫調整R方;調整R方值會因為自變量個數的增加而降低(懲罰),會因為新自變量帶來的有價值信息而增加(獎勵);可以幫助我們篩選出更多有價值的新自變量。
- n:數據量大?。ㄐ袛担?>數據量越大,新自變量加入所影響越小;
- p:自變量個數->自變量個數增加,調整R方變小,對這個量進行懲罰;
一句話,調整R方不會因為模型新增無價值變量而提升,而R方會因為模型新增無價值變量而提升!通過觀測調整R方可以在后續建模中去重多重共線性的干擾,幫助我們選擇最優自變量組合。
R方/調整R方值區間經驗判斷:
- <0.3->非常弱的模型擬合
- 0.3-0.5->弱的模型擬合
- 0.5-0.7->適度的模型擬合
- >0.7->較好的模型擬合
四、線性回歸在數據分析中的實戰流程
我們以共享單車服務滿意分數據為案例進行模型實戰,想要去分析不同的特征對滿意分的影響程度,模型過程如下:
1. 讀取數據
2. 切分因變量和自變量、分類變量轉換啞變量
3. 使用VIF去除多重共線性
多重共線性:就是在線性回歸模型中,存在一對以上強相關變量,多重共線性的存在,會誤導強相關變量的系數值。
強相關變量:如果兩個變量互為強相關變量,當一個變量變化時,與之相應的另一個變量增大/減少的可能性非常大。
當我們加入一個年齡強相關的自變量車齡時,通過最小二乘法所計算得到的各變量系數如下,多重共線性影響了自變量車齡、年齡的線性系數。
這時候,可以使用VIF消除多重共線性:VIF=1/(1-R方),R方是拿其他自變量去線性擬合此數值變量y得到的線性回歸模型的決定系數。某個自變量造成強多重共線性判斷標準通常是:VIF>10
我們發現,年齡的VIF遠大于10,故去除年齡這一變量,去除后重新計算剩余變量VIF發現所有均<10,即可繼續。
4. 計算調整R方
5. 數據標準化
我們希望不同自變量的線性系數,相互之間有可比性,不受它們取值范圍影響。
6. 擬合模型,計算回歸系數
共享單車分數案例,因變量是分數,自變量是年齡、組別、城區,線性回歸的結果為:分數 = 5.5 + 2.7 * 年齡 +0.48 * 對照組 + 0.04 * 朝陽區 + 0.64 * 海淀區 + 0.19 * 西城區。
7. 生成分析洞見——驅動力因素
最終產出不同用戶特征對用戶調研分數的驅動性排名——驅動力分數反應各個變量代表因素,對目標變量分數的驅動力強弱,驅動力分數絕對值越大,目標變量對因素的影響力越大;反之越小,驅動力分數為負時,表明此因素對目標變量的影響為負向。
8. 根據回歸模型進行預測
至此,回歸模型已經建好,預測就不寫了,把要預測的數據x自變量導入模型即可預測y。
相信大家讀完這篇文章,對線性回歸模型已經有了一些了解,大家快快動起手來把模型應用到自己的實際工作中吧!
作者:趙小洛,公眾號:趙小洛洛洛
本文由 @趙小洛 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
在多元回歸里面,多重共線性并不是存在與否的問題,只是嚴重與不嚴重的問題,如果你模型只是單純預測不用做參數估計,那么多重共線性并不是一件壞事
drop_first有點問題,直接把組別去掉了,而且問題在于都是對照組,為什么對照組一個參數還有0.48的值呢
請問是否方便可以提供一下數據集聯系一下?
這個模型通用嗎?
看不太懂,從最小二乘法那里看就有點懵……