R與生物專題 | 第三十五講 R-多元線性回歸

2021-02-14 投必得學術

在「R與生物統計專題」中,我們會從介紹R的基本知識展開到生物統計原理及其在R中的實現。以從淺入深,層層遞進的形式在投必得學術公眾號更新。

前幾節課我們學習了線性回歸的相關概念(第三十二講 R-回歸分析概述)、簡單的線性回歸模型(第三十三講 R-簡單線性回歸模型(1)、第三十四講 R-簡單線性回歸模型(2)),相信大家對線性回歸都有了一定的了解。

今天,我們講解線性回歸中稍微複雜的概念——多元線性回歸。



對於三個預測變量(x),y的預測由以下等式表示:

y = b0 + b1*x1 + b2*x2 + b3*x3

「b」值稱為回歸權重(或β係數)。他們測量預測變量與結果之間的關聯。「 bj」可以解釋為「 xj」,在其他預測變量不變的情況下,每增加一個單位對y的平均影響 。



本章需要以下R軟體包:


我們將使用一組糖尿病的數據,它包含768人糖尿病相關的數據,包括懷孕情況,血糖,血壓,皮膚厚度,胰島素水平,體重指數,糖尿病譜系功能,年齡和糖尿病診斷結果(Outcome)。

如需獲取數據diabetes.csv,請關注投必得醫學公眾號,後臺回復「diabetes.csv」獲取數據。


導入數據:

my_data<-read.csv('diabetes.csv')

檢查數據:

[1] 768   9

輸出結果

Pregnancies Glucose BloodPressure SkinThickness Insulin  BMI DiabetesPedigreeFunction Age Outcome1           6     148            72            35       0 33.6                    0.627  50       12           1      85            66            29       0 26.6                    0.351  31       03           8     183            64             0       0 23.3                    0.672  32       14           1      89            66            23      94 28.1                    0.167  21       05           0     137            40            35     168 43.1                    2.288  33       16           5     116            74             0       0 25.6                    0.201  30       0

數據清理

new_data<-my_data[my_data$Glucose>0 & my_data$Insulin >0 & my_data$BMI >0,]dim(new_data)

#[1] 392   9

研究問題:根據胰島素水平、懷孕次數和體重指數情況來預測血糖水平。


多元線性模型如下所示:

Glucose = b0 + b1*Insulin + b2*Pregnancies + b3*BMI

您可以按以下方式計算R中的模型係數:

model <- lm(Glucose ~ Insulin + Pregnancies + BMI, data = new_data)summary(model)

輸出結果

Call:lm(formula = Glucose ~ Insulin + Pregnancies + BMI, data = new_data)Residuals:Min      1Q  Median      3Q     Max-67.250 -16.499  -3.224  13.567  73.396Coefficients:Estimate Std. Error t value Pr(>|t|)(Intercept) 82.43375    6.16185  13.378  < 2e-16 ***Insulin      0.14246    0.01079  13.197  < 2e-16 ***Pregnancies  1.51089    0.38921   3.882 0.000122 ***BMI          0.39216    0.18203   2.154 0.031826 *Signif. codes:  0 『***』 0.001 『**』 0.01 『*』 0.05 『.』 0.1 『 』 1Residual standard error: 24.61 on 388 degrees of freedomMultiple R-squared:  0.3687,  Adjusted R-squared:  0.3639F-statistic: 75.55 on 3 and 388 DF,  p-value: < 2.2e-16


解釋多元回歸分析的第一步是在模型摘要的底部檢查F統計量和關聯的p值。

在我們的示例中,可以看出F統計量的p值 < 2.2e-16,這表明至少一個預測變量與結果變量顯著相關。

要查看哪些預測變量與結果變量顯著相關,您可以檢查係數表,該表顯示了回歸β係數和相關的t統計p值的估計值:

summary(model)$coefficient

輸出結果

Estimate Std. Error   t value     Pr(>|t|)(Intercept) 82.4337537  6.1618466 13.378092 7.896785e-34Insulin      0.1424569  0.0107945 13.197176 4.158704e-33Pregnancies  1.5108853  0.3892135  3.881894 1.217842e-04BMI          0.3921590  0.1820293  2.154373 3.182598e-02

對於給定的預測變量,t統計量評估預測變量和結果變量之間是否存在顯著關聯,即預測變量的β係數是否顯著不同於零。

可以看出,胰島素水平和懷孕次數與血糖的變化顯著相關(P < 0.001),而體重指數變化雖然與血糖變化也顯著相關,但是關聯性相對小一些(P = 0.03)。

對於給定的預測變量,係數(b)可以解釋為,保持所有其他預測變量固定時,預測變量增加一個單位對y的平均影響。

例如,在固定的胰島素水平和懷孕次數下,體重指數每增加一個單位,平均可以使血糖增加大約0.39 * 1 = 0.39個單位。

如果我們的模型中,存在有某個預測變量與結果變量不相關,則在最後的多元回歸模型中,我們應該刪除該預測變量。

模型係數的置信區間可以提取如下:

輸出結果

               2.5 %     97.5 %(Intercept) 70.31896628 94.5485411Insulin      0.12123388  0.1636799Pregnancies  0.74565390  2.2761166BMI          0.03427176  0.7500462


正如我們在簡單線性回歸中所看到的(第三十四講 R-簡單線性回歸模型(2)),可以通過檢查R平方(R2)和殘差標準誤(RSE)來評估模型的整體質量。


RSE估計值提供了預測誤差的度量。RSE越低,模型(基於現有數據)越準確。

可以通過將RSE除以平均結果變量來估計錯誤率:

sigma(model)/mean(new_data$Glucose)

[1] 0.2007225

在我們的多元回歸示例中,RSE為24.6,對應於20%的錯誤率。




R平方

在多元線性回歸中,R2表示結果變量(y)的觀測值與y的擬合(即預測)值之間的相關係數。因此,R的值將始終為正,範圍為0至1。

R2表示結果變量y中的方差比例,可以通過知道x變量的值來預測該比例。R2值接近1表示模型解釋了結果變量中很大一部分方差。

R2的一個問題是,當將更多變量添加到模型中,即使這些變量與響應之間的關聯性很弱,R2也會一直增加。解決方案是通過考慮預測變量的數量來調整R2。

摘要輸出中「已調整的R平方」值是對預測模型中包含的x變量數量的校正。

在我們的示例中, 調整後的R2 = 0.3639,這意味著「 36.39%的血糖差異可以通過胰島素水平、懷孕次數和體重指數進行預測。


1. Alboukadel Kassambara, Machine Learning Essentials: Practical Guide in R


好了,本期講解就先到這裡。小夥伴們趕緊試起來吧。

在之後的更新中,我們會進一步為您介紹R的入門,以及常用生物統計方法和R實現。歡迎關注,投必得學術手把手帶您走入R和生物統計的世界。

提前預告一下,下一講我們將學習多元線性回歸中的交互作用及更優模型選擇。

當然啦,R語言的掌握是在長期訓練中慢慢積累的。一個人學習太累,不妨加入「R與統計交流群」,和數百位碩博一起學習。


快掃二維碼撩客服,

帶你進入投必得學術交流群,

讓我們共同進步!

↓↓


來源:投必得醫學R與生物統計

聲明:本文僅做學術分享,版權歸原作者所有,並不代表本平臺的觀點,如有侵權,請先聯繫topedit2021刪除,萬分感謝!

發表SCI論文很迷茫?

來找「投必得」幫忙↓↓↓

相關焦點

  • R與生物專題 | 第五十四講 R-樣本量及實驗效能計算
    t檢驗(兩個n不相等的樣本)7.1 對t檢驗(兩組樣本相等)進行效能計算的函數pwr.t2n.test= 0.05, power = NULL)w是期望效應量,即效應差異大小除以效應方差(Δ/α),N是總觀察樣本數,df是自由度,其他同pwr.t.test()
  • R與生物專題 | 第三十四講 R-簡單線性回歸模型(2)
    在「R與生物統計專題」中,我們會從介紹R的基本知識展開到生物統計原理及其在R中的實現。
  • 基於R軟體實現多元線性回歸
    一個多元線性回歸在R中的實現示例在一元回歸中,只包含一個預測變量和響應變量間的關係。與此相比,當存在兩個或以上的預測變量時,稱為多元回歸(Multiple Regression)。如果只考慮變量間的線性關係時,就是多元線性回歸(Multiple Linear Regression)。
  • R與生物專題 | 第四十八講 R-逐步回歸
    那麼,假如我們有很多個預測變量,想要一一確定這些預測變量是否真對結果變量起到了預測功能,我們有沒有辦法讓這個「刪除」變量的步驟可以自動實現呢?於是我們引入了逐步回歸。 『 』 1 Residual standard error: 7.168 on 42 degrees of freedomMultiple R-squared:  0.6993,   Adjusted R-squared:  0.6707F-statistic: 24.42 on 4 and 42 DF,  p-value: 1.717e-10
  • R與生物專題 | 第四十四講 R-非線性回歸
    當自變量(預測變量)與因變量(結果變量)的真實關係為非線性時,之前學過的線性回歸模型將不再適用。, list=FALSE)train.data <-Boston[training.samples, ]test.data<-Boston[-training.samples, ]首先,繪製可視化medvvs lstat變量的散點圖,如下所示:
  • R與生物專題 | 第三十二講 R-回歸分析概述
    在「R與生物統計專題」中,我們會從介紹R的基本知識展開到生物統計原理及其在R中的實現。
  • 一元(多元)線性回歸分析之R語言實現
    上篇介紹了《一元(多元)線性回歸分析之Excel實現》,本篇來探討一下回歸分析在R語言中的實現,我們將從更專業的角度對模型進行一些解讀。
  • 使用Matlab解決多元線性回歸問題
    上期我們分享了使用matlab進行數組最值的搜尋,有同學留言想了解matlab多元線性回歸,安排!
  • R與生物專題 | 第四十三講 R-回歸預測模型的自舉重採樣驗證(boostrap-resampling)
    7    90.57             26.63 83.1 45.1 6 9 84.84 22.2研究問題:根據社會經濟相關的多個指標
  • 第四十講 R-線性回歸:預測模型及可信區間
    在「R與生物統計專題」中,我們會從介紹
  • 第三十一講 R-機器學習與回歸概述
    在「R與生物統計專題」中,我們會從介紹R的基本知識展開到生物統計原理及其在R中的實現。
  • 多元線性回歸matlab專題及常見問題 - CSDN
    %多元線性回歸求解clearclcx=[120731808012512581.190133.02731808012512581.190129.63731808012512581.190158.77731808012512581.190145.32731808012512581.190
  • 線性回歸分析詳解7:多元回歸方程的精度,R平方與調整後的R平方
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第七章,回歸方程的精度,R平方與調整後的R平方。多元線性回歸分析,我們在求出多元線性回歸方程後,這個方程到底怎麼樣,能不能起到效果,需要對求出的回歸方程進行一系列評價和評估。這些評價和評估,首先要做的,是確認回歸方程的精度。本章,我將分如下三個小節講述回歸方程的精度,歡迎閱讀與探討。我的《線性回歸分析》專欄總目錄見下圖。
  • R與生物專題 | 第五十二講 統計方法選擇全解析2
    2.3.3 列變量為效應指標,且為無序多分類變量,行變量為有序多分類變量,則可採用普通的Pearson 卡方檢驗比較各組之間有無差別,如果有差別,還可進一步作兩兩比較,以說明是否任意兩組之間的差別都有統計學意義。(1)如要做組間差別分析,則可用行平均分差檢驗或成組的Wilcoxon秩和檢驗或Ridit分析。
  • 機器學習:回歸分析——多元線性回歸分析
    從前面的學習中我們知道:社會經濟現象的變化往往受到多個因素的影響,因此一般要進行多元回歸分析。我們把包括兩個或兩個以上自變量的回歸稱為多元線性回歸。所以相比一元線性回歸,多元線性回歸的實際意義更大。本節我們將使用來自UIC數據集中的能效數據集(ENB2012_data.xlsx)進行演示,探索如何使用Python對數據集進行多元回歸分析。
  • R與數學專題 第三節: R求解線性代數
    通過本節的學習,您將能運用R求解線性方程組的解,超定方程組,非線性方程的線性求法。1.線性方程組的求法1.1 克萊姆法則克萊姆法則,適用於求解變量和方程數目相等的線性方程組。假設有N個未知數N個方程組成的方程組:
  • 使用sklearn實現多元線性回歸
    使用sklearn實現多元線性回歸多元線性回歸import pandas
  • 一文看懂線性回歸及相關概念
    最近剛好在看線性回歸,於是想分享下最近的學習心得。首先申明,此文只講大致的理解思路,力求以簡單通俗的方式來表達,因此不適合對數據分析有一定造詣的人士閱讀。同時鑑於本人也是小白,若有錯誤歡迎指正。而R方是用來檢驗線性回歸的擬合程度的,擬合程度越好,則R方越接近於1。那什麼是線性回歸,什麼又叫擬合程度呢?二、一元線性回歸作為初中(或是小學)的知識點,線性方程大家肯定都很熟悉。y=kx+b就是最早接觸到的一元線性回歸方程式。
  • R語言實戰:回歸
    多層多元線性多變量Logistic泊松Cox比例風險時間序列非線性非參數穩健普通最小二乘 (OLS) 回歸法,包括簡單線性回歸,多項式回歸和多元線性回歸。OLS 回歸的適用情景發現有趣的問題設計一個有用的、可以測量的響應變量收集合適的數據基礎回顧OLS 回歸統計假設正態性:對於固定的自變量值,因變量值成正態分布獨立性:Y_i 值之間相互獨立線性:因變量與自變量之間為線性相關同方差性:因變量的方差不隨自變量的水平不同而變化用 lm()
  • R語言和Python實現回歸分析
    r的取值範圍是[-1,1],r=1表示完全正相關!r=-1表示完全負相關!r=0表示完全不相關。為什麼要對相關係數進行顯著性檢驗?一元回歸不存在多重共線性的問題;而多元線性回歸要摒棄多重共線性的影響;所以要先對所有的變量進行相關係數分析,初步判定是否滿足前提---多重共線性時間序列數據會自發呈現完全共線性問題,所以我們用自回歸分析方法;出現多重共線性如何改善:1. 刪除變量對去除多重共線性最為顯著。2.