三行情書:線性回歸分析快速成文法
第29天 線性回歸分析的快速成文法
在第28講,我們介紹了利用tableone開展生存分析,快速形成文章,不知道看完之后有什么樣的感受? R語言原來可以這么簡單地幫助我們。今天我們在我們貫穿始終的數(shù)據(jù)庫elder1、elder2進行線性分析。
一、準備工作
首先我們將導入數(shù)據(jù)
t1<-read.csv("elder1.csv")
t2<-read.csv("elder2.csv")
可以查看數(shù)據(jù)
str(t1)
str(t2)
再則我們啟動重要的數(shù)據(jù)包dplyr
library(dplyr)
現(xiàn)在我們通過dplyr的join函數(shù)把兩個數(shù)據(jù)庫進行合并
tt<-inner_join(t1,t2,by="ID")
str(tt)
合并產(chǎn)生的數(shù)據(jù)庫我們把它保存起來,這樣下次我們可以再利用。
write.csv(tt,file ="tt.csv")
然后,當然 要導入tableone與broom包備用
library(tableone)
library(broom)
二、本講的案例
我們還是按照第25講的案例,分別探討影響自評健康的因素,自評健康在數(shù)據(jù)庫中的變量為health, 影響因素包括血壓、血糖、體重指數(shù)、性別、戶籍、文化程度、婚姻狀況、生活方式、睡眠。
雖然這個案例非常爛,但是很容易理解。到底對于老年而言,什么因素對健康自評影響最大呢?由于我們的結局health為定量數(shù)據(jù),且研究因素很多,一般我們會開展線性回歸分析,而且是逐步回歸分析方法。當然在回歸分析之前,也要做一些其它工作,才能形成一片論文。
具體的統(tǒng)計分析策略包括
1) 開展統(tǒng)計描述 描述人群的基本特征
2) 進行差異性比較,篩選P值較小者納入回歸分析模型(P<0.2)
3)開展多因素線性回歸分析
三、進行數(shù)據(jù)整理
數(shù)據(jù)整理工作并非什么新鮮事,但是卻是最重要的
1.新變量產(chǎn)生
#利用dplyr包mutute語句產(chǎn)生新變量體重指數(shù)bmi
tt<-mutate(tt, bmi=weight/(height^2)*10000)
2.變量的轉換
變量轉換的內(nèi)容很多,對于 研究因素為定量的變量,可以直接作為定量納入回歸分析,也可以進行分組轉換,這里轉成二分類或者多分類。部分程序如下。
血糖的轉換
tt$sugar1<-ifelse(tt$sugar>7.0,1,0)
bmi的轉換
> tt$ bmi1 [tt$ bmi <=18.5]<-1
> tt$bmi1[is.na(tt$ bmi)==T]<-NA
> tt$bmi1[tt$ bmi >=28]<-4
> tt$ bmi1 [tt$ bmi >=24 & tt$ bmi <28]<-3
> tt$ bmi1 [tt$ bmi >=18.5 & tt$ bmi <24]<-2
> tt$ bmi1 [tt$ bmi <=18.5]<-1
> tt$bmi1[is.na(tt$ bmi)==T]<-NA
> table(tt$bmi1)
1 2 3 4
血壓的轉換
> tt$pressure [tt$SBP>=140 | tt$DBP>=90]<-1
> tt$pressure [tt$SBP< 140 & tt$DBP< 90]<-0
> table(tt$pressure)
0 1
2514 1517
分類變量的轉換
又比如我們對income的變量進行進一步的歸類,本例是8類的分組變成3組。
> tt$income1<-tt$income
> tt$income1[tt$income>=6]<-3
> tt$income1[tt$income>=3 & tt$income<=5]<-2
> tt$income1[tt$income<=2]<-1
> table(tt$income1)
1 2 3
%1 1098 288
3.變量批量因子化
# 把所有該納為因子的但還沒有的統(tǒng)一轉為因子(分組變量)
varsToFactor <- c("sex","huji","education","marriage","income1","smoking","drinking","exercise","sleep","sugar1","pressure","bmi1")
tt[varsToFactor] <- lapply(tt[varsToFactor], factor)
str(tt)
4.部分變量需要對照組進行重新設置,bmi1、marriage
tt$marriage<-factor(tt$marriage, levels = c(2,1,3,4,5))
tt$bmi1<-factor(tt$bmi1, levels = c(2,1,3,4))
5.剔除缺失記錄
tt1<-na.omit(tt) # 剔除缺失值的記錄
注意:這是為了操作方便采用的簡單粗暴的方法,實際R語言運作中,可以采用更溫和的方法來處理。
四、影響自評的健康的影響因素研究
現(xiàn)在結合R語言、tableone包開展線性回歸三行成文章。
1. 不同人群自評健康得分的差異性比較
Tableone 目前無法直接有函數(shù)搞定定量數(shù)據(jù)的差異性,但鄭老師有辦法,我們先搞個自編函數(shù)吧
function1<-function(x,y,z){
table2<-c(1:6)
dim(table2)<-c(3,2)
for (i in 1 :length(y)){
tableOne <- CreateTableOne(vars = x, strata = y[i],data = z)
table1<-print(tableOne,showAllLevels = TRUE)
tx<-t(table1)
table2<-rbind(table2,tx)
}
return(table2)
}
現(xiàn)在就可以了, 這結果是國內(nèi)首創(chuàng)哦!
tx<-function1(c("health"),c("sex","huji","education1","marriage","income1","smoking","drinking","exercise","sugar1","pressure","bmi1"),tt1)
write.csv(tx,file="tablexx.csv") #形成統(tǒng)計分析的excel表
2.線性回歸分析
我們構建tt1數(shù)據(jù)中有一個health變量,這是患者健康自評得分,為定量數(shù)據(jù),我們可以開展健康自評的影響因素研究。多因素線性回歸利用自帶函數(shù)lm( )函數(shù)構建
lm.log<-lm(health~pressure+sugar1+bmi1+sex+huji+education1+marriage+income1+smoking+drinking+exercise ,data = tt1)
lm.step<-step(lm.log)
table31<-ShowRegTable(lm.step, exp = FALSE, digits = 2, pDigits = 3,
printToggle = TRUE, quote = FALSE, ciFun = confint)
table32<-tidy(lm.step)
table3<-cbind(table31,table32) #table31 table32是兩個結果,現(xiàn)在合并成一個總表
write.csv(table3,file="table3.csv") # 數(shù)據(jù)導出
上述兩表就是利用tableone快速形成的表格,你看還不錯吧!
更多閱讀
1.給所有R語言初學者的幾點建議 | 寫在R語言公益培訓班順利結束后
2.“30天學會R語言”系列推文開啟:一起來關注學習吧
3.【資源**】精選R語言入門學習資源:視頻+文檔,初學者者必備!
相關知識
輕醫(yī)美市場快速增長,監(jiān)管下的醫(yī)療美容需回歸“醫(yī)療本質”
羊水監(jiān)測護墊法快速診斷胎膜早破的可行性分析研究
人體成分分析實驗報告.pptx
醫(yī)療美容市場快速擴容:回歸醫(yī)療本質,完善人才建設
1分鐘減肥法 快速恢復魔鬼曲線
2023 年全國健身市場回歸,健身行業(yè)發(fā)展?jié)摿薮?/a>
醫(yī)美消費應回歸理性
人體成分分析儀
雅思大作文范文分析
如何進行健康快速減肥?..
網(wǎng)址: 三行情書:線性回歸分析快速成文法 http://www.u1s5d6.cn/newsview215160.html
推薦資訊
- 1發(fā)朋友圈對老公徹底失望的心情 12775
- 2BMI體重指數(shù)計算公式是什么 11235
- 3補腎吃什么 補腎最佳食物推薦 11199
- 4性生活姿勢有哪些 盤點夫妻性 10428
- 5BMI正常值范圍一般是多少? 10137
- 6在線基礎代謝率(BMR)計算 9652
- 7一邊做飯一邊躁狂怎么辦 9138
- 8從出汗看健康 出汗透露你的健 9063
- 9早上怎么喝水最健康? 8613
- 10五大原因危害女性健康 如何保 7828