在「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論文很迷茫?
來找「投必得」幫忙↓↓↓