《基于流行病學研究設計的R語言實踐》一書分為十四章,以流行病學研究設計為主線展開,在R語言基本介紹的基礎上,詳細描述了橫斷面研究、病例對照研究、病例交叉研究、隊列研究、隨機對照試驗研究、時間序列分析、Meta分析、倍差法、孟德爾隨機化研究等常用的流行病學研究設計,同時描述了其中涉及的統計方法R語言代碼實現過程,并介紹了R語言作圖和空間制圖,可為預防醫(yī)學相關專業(yè)本科生、研究生學習以及流行病學、社會學等相關領域科研人員利用R語言研究醫(yī)學問題提供參考。
本書以流行病學研究設計為主線展開,在R語言基本介紹的基礎上詳細描述了常用的流行病學研究設計以及相應統計方法的R語言代碼實現過程,為讀者利用R語言研究醫(yī)學問題提供參考。
R 語言作為一門統計學語言,一直在小眾領域閃耀著光芒。直到大數據的爆發(fā),R 語言變成了一把炙手可熱的數據分析利器。隨著越來越多有工程背景的人員的加入,R 語言的社區(qū)在迅速擴大成長。R 語言不僅僅在數理統計領域受到青睞,在臨床醫(yī)學、公共衛(wèi)生、教育、金融、互聯網等多個行業(yè)也應用廣泛。
R 語言之所以受歡迎,有以下幾方面原因:第一,R 軟件可以在官網免費下載。相比于其他的統計軟件,如SAS、SPSS、STATA 等,R 軟件不需要任何費用,用戶可以自由地使用、復制、發(fā)布、修改源碼、補充漏洞以及按具體需求定制功能,這無疑是其最吸引人的地方。第二,R 語言擁有龐大的軟件包生態(tài)系統,很多前沿的技術、先進的模型等都會迅速地在R 軟件中以程序包的形式出現,供大家學習使用。如果某項統計技術已經存在,那么幾乎必然存在著一款R 軟件包與之對應。第三,R 語言的界面比較友好,相對簡單易學,為創(chuàng)建可重復及高質量的分析提供了有利條件。此外,R 軟件保留了運算的代碼,修改后可重復使用,大大降低了撰寫語言代碼的時間成本。第四,R 語言在繪圖及數據可視化方面具有強大的功能。R 語言有一個非常強大的數據可視化寶庫,可以做出許多精美的圖形。在大數據時代的今天,R 語言將會發(fā)揮越來越重要的作用,特別是在醫(yī)療、公共衛(wèi)生領域。
近年來,公共衛(wèi)生和健康醫(yī)療大數據迅猛發(fā)展,相關人才的需求也日趨緊迫,全國高校中,相關專業(yè)建設不斷升溫。這些大數據技術應用的背后均存在著一個學科的框架指導,那就是流行病學?傮w而言,任何健康醫(yī)療大數據的構建、數據分析的理論和模型的建立及應用,其起點應是提出要解決什么科學問題,而醫(yī)療衛(wèi)生科學問題的提出是流行病學的范疇。流行病學研究設計之于健康醫(yī)療大數據,就好比建筑設計圖紙與建筑材料的關系。
近年來,筆者在與醫(yī)療衛(wèi)生領域相關專業(yè)技術人員交流中發(fā)現,目前在公共衛(wèi)生監(jiān)測、健康醫(yī)療大數據、流行病學數據統計整理和分析中存在很多短板,而這些短板歸結起來就是流行病學設計和統計分析的脫節(jié),例如數據采集缺乏宏觀流行病學思維的指導,數據分析中統計分析、模型應用不規(guī)范等。如何破局?通過與諸多業(yè)內同行的多次交流,結合自己團隊的經驗,我們認為R 語言結合流行病學設計是一個可以很好解決兩者脫節(jié)問題的出路,這也是籌劃撰寫本書的初衷。
因此,本書以流行病學研究設計為主線展開,在R 語言基本介紹的基礎上,詳細描述了包含橫斷面研究、病例對照研究、隊列研究、隨機對照試驗研究、Meta 分析等常用的流行病學研究設計思路和分析方法,同時涉及雙重差分法、孟德爾隨機化等流行病學因果推斷方法,并描述了其中涉及的統計方法的R 代碼實現過程,既不晦澀,也非淺白,向讀者打開了一扇利用R 語言研究醫(yī)學問題的窗。
書中難免有不當之處,敬請各位專家和讀者指正。
林華亮
2024 年5 月
林華亮,教授、博士生導師,中山大學公共衛(wèi)生學院院長助理、流行病學系主任。先后獲得中山大學百人計劃中青年杰出人才、廣東省杰出青年醫(yī)學人才等稱號,入選全球頂尖前10萬科學家排名榜。長期從事大氣污染及其與基因易感性交互作用在慢性病發(fā)生發(fā)展中的作用研究,并提出了大氣污染控制濃度閾值的新方法。
第一章 R 語言概述 / 1
一、 R 軟件及RStudio 軟件的獲取和安裝 / 1
二、 RStudio 軟件界面和功能介紹 / 3
三、 R 語言的使用規(guī)則簡介 / 5
第二章 數據結構與數據管理/ 9
第一節(jié) 常見的數據類型 / 9
第二節(jié) 數據的基本結構 / 10
一、 向量 / 10
二、 矩陣 / 10
三、 數組 / 11
四、 數據框 / 12
五、 因子 / 15
六、 列表 / 15
第三節(jié) 數據的導入與保存 / 17
一、 數據導入 / 17
二、 數據保存 / 21
第四節(jié) 數據的初步操作 / 22
一、 數據的整合、重塑與合并 / 22
二、 定義數據分組 / 28
三、 從數據中抽取子集 / 28
第五節(jié) 數據的管理和基礎應用 / 30
一、 獲取數據集中變量的名稱 / 30
二、 創(chuàng)建新的變量 / 31
三、 變量的重命名 / 32
四、 缺失值的發(fā)現與處理 / 33
五、 數據排序 / 34
六、 數據類型的轉換 / 34
七、 數據描述 / 35
第六節(jié) 大數據分析 / 36
一、 創(chuàng)建data/table / 36
二、 設置主鍵 / 36
三、 查看數據 / 37
四、 提取數據集 / 38
五、 數據整理 / 38
第七節(jié) R 語言自帶的數據集 / 40
第三章 基本統計分析/ 43
第一節(jié) t 檢驗 / 43
一、 單樣本t 檢驗 / 43
二、 配對t 檢驗 / 44
三、 兩獨立樣本均數比較的t 檢驗 / 45
四、 小結 / 47
第二節(jié) 方差分析 / 47
一、 完全隨機設計的方差分析 / 47
二、 隨機區(qū)組設計的方差分析 / 49
三、 小結 / 50
第三節(jié) 2 檢驗 / 50
一、 22 交叉表數據的2 檢驗 / 50
二、 RC 交叉表數據的2 檢驗 / 51
三、 配對設計數據的2 檢驗 / 52
四、 2 檢驗的校正 / 52
五、 小結 / 53
第四節(jié) 秩和檢驗 / 53
一、 配對設計資料的符號秩和檢驗 / 54
二、 兩組獨立樣本比較的Mann-Whitney 檢驗/ 55
三、 多組獨立樣本比較的Kurskal-Wallis 檢驗 / 56
四、 小結 / 57
第五節(jié) 相關分析 / 57
一、 簡單相關分析 / 57
二、 偏相關 / 59
三、 相關關系的可視化 / 60
四、 小結 / 62
第六節(jié) 回歸分析 / 62
一、 簡單線性回歸 / 62
二、 多項式回歸 / 65
三、 多重線性回歸 / 67
四、 Logistic 回歸 / 70
五、 泊松回歸 / 75
六、 小結 / 77
第四章 橫斷面研究/ 78
第一節(jié) 橫斷面研究資料的描述 / 78
一、 案例分析 / 79
二、 小結 / 82
第二節(jié) 多重線性回歸 / 82
一、 多重線性回歸分析 / 83
二、 小結 / 86
第三節(jié) 二分類變量的Logistic 回歸 / 86
一、 二分類Logistic 回歸分析 / 87
二、 小結 / 90
第四節(jié) 無序多分類變量的Logistic 回歸 / 90
一、 無序多分類Logistic 回歸分析 / 90
二、 小結 / 91
第五節(jié) 有序多分類變量的Logistic 回歸 / 92
一、 有序多分類變量的Logistic 回歸分析 / 92
二、 小結 / 94
第六節(jié) 交互作用分析 / 95
一、 多重線性回歸模型中的交互作用分析 / 95
二、 廣義線性回歸模型中的交互作用分析 / 97
三、 小結 / 99
第五章 病例對照研究/ 101
第一節(jié) 概述 / 101
一、 基本概念 / 101
二、 基本特點 / 101
三、 研究類型 / 101
四、 病例對照研究的衍生設計 / 102
五、 用途 / 103
第二節(jié) 資料分析方法與案例分析 / 103
一、 資料分析方法 / 103
二、 案例分析 / 105
第六章 病例交叉設計/ 124
第一節(jié) 概述 / 124
第二節(jié) 時間分層病例交叉設計 / 125
一、 案例分析 / 125
二、 小結 / 131
第三節(jié) 時間分層病例交叉設計結合分布滯后非線性模型 / 132
一、 案例分析 / 132
二、 小結 / 134
第四節(jié) 基于個體的時間分層病例交叉設計 / 134
一、 案例分析 / 135
二、 小結 / 137
第七章 隊列研究/ 139
第一節(jié) 隊列研究中的生存分析 / 139
一、 基本概念 / 139
二、 生存數據案例 / 140
三、 使用R 軟件進行生存分析 / 141
第二節(jié) 中介效應分析 / 157
一、 中介效應分析的基本原理和步驟 / 157
二、 中介效應分析在R 語言中的實現 / 158
第八章 隨機對照試驗研究/ 160
第一節(jié) 概述 / 160
一、 定義和基本原理 / 160
二、 試驗設計關鍵點和常見設計方案 / 160
第二節(jié) 資料整理與分析 / 162
一、 資料的整理 / 162
二、 資料的分析 / 162
三、 結果輸出 / 163
第三節(jié) 案例分析 / 163
一、 數據描述與預處理 / 163
二、 預分析與生存曲線 / 166
三、 Cox 比例風險回歸 / 168
四、 亞組分析及比較 / 172
第九章 時間序列分析/ 178
第一節(jié) 時間序列的基本概念和特點 / 178
一、 案例分析 / 178
二、 小結 / 190
第二節(jié) 缺失數據的填補 / 191
一、 案例分析 / 191
二、 小結 / 196
第三節(jié) 廣義相加模型及其應用 / 196
一、 案例分析 / 196
二、 小結 / 204
第四節(jié) 分布滯后非線性模型及應用 / 204
一、 案例分析 / 205
二、 小結 / 208
第十章 Meta 分析 / 209
第一節(jié) 單因素Meta 分析 / 209
一、 單因素Meta 分析概述 / 209
二、 案例分析 / 210
三、 小結 / 218
第二節(jié) 多因素Meta 分析 / 218
一、 多因素Meta 分析概述 / 218
二、 案例分析 / 219
三、 小結 / 224
第三節(jié) Meta 回歸分析/ 224
一、 Meta 回歸分析概述/ 224
二、 案例分析 / 225
三、 小結 / 230
第十一章 R 語言作圖 / 231
第一節(jié) plot 基本作圖/ 231
一、 展開空白畫布 / 232
二、 描繪平面直角坐標系 / 232
三、 繪制點圖 / 233
四、 繪制線圖 / 234
五、 改變圖形元素 / 234
六、 添加文本信息 / 237
七、 頁面布局與圖形組合 / 240
第二節(jié) ggplot2 基本作圖/ 242
一、 散點圖 / 242
二、 直方圖 / 244
三、 箱線圖 / 245
第三節(jié) ggplot2 進階/ 247
一、 坐標軸 / 247
二、 圖例 / 248
三、 分面 / 251
四、 主題 / 252
五、 圖案拼接 / 255
六、 儲存與導出 / 262
第十二章 R 語言中的空間數據 / 263
第一節(jié) 空間數據基本概念 / 263
一、 矢量數據 / 263
二、 柵格數據 / 265
三、 空間坐標參考系 / 267
四、 空間數據處理常用包 / 268
五、 小結 / 269
第二節(jié) 空間數據操作 / 269
一、 空間數據的讀寫 / 269
二、 矢量數據操作 / 271
三、 柵格數據操作 / 273
四、 小結 / 286
第十三章 倍差法在R 語言中的應用 / 287
第一節(jié) 倍差法概述 / 287
第二節(jié) 案例分析 / 288
第十四章 孟德爾隨機化/ 294
第一節(jié) 概述 / 294
一、 孟德爾隨機化的概念 / 294
二、 孟德爾隨機化的統計學方法 / 294
三、 孟德爾隨機化的設計類型 / 295
四、 孟德爾隨機化存在的問題 / 295
第二節(jié) 孟德爾隨機化分析軟件及分析過程 / 296
一、 單樣本孟德爾隨機化 / 296
二、 兩樣本孟德爾隨機化 / 299
參考文獻/ 306