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