本書(shū)選用統(tǒng)計(jì)學(xué)和數(shù)據(jù)科學(xué)中常見(jiàn)的 R 語(yǔ)言和Python語(yǔ)言“雙語(yǔ)”編
寫(xiě),主要內(nèi)容包括:引言、R 語(yǔ)言編程基礎(chǔ)、R 語(yǔ)言數(shù)據(jù)處理、R 語(yǔ)言可
視化、R 語(yǔ)言隨機(jī)抽樣和隨機(jī)數(shù)、R 語(yǔ)言基本統(tǒng)計(jì)推斷、R 語(yǔ)言回歸分析、
R 語(yǔ)言大數(shù)據(jù)分析、Python 語(yǔ)言基礎(chǔ)、Python 數(shù)據(jù)處理等內(nèi)容。此外,
本書(shū)在每章正文后設(shè)置主要函數(shù)列表、練習(xí)題和實(shí)驗(yàn)題,以幫助學(xué)生復(fù)習(xí)
鞏固和自主練習(xí)。同時(shí),還為教師配備了課程教學(xué)大綱(含課程思政內(nèi)容)、
課件、習(xí)題解答、模擬試題及配套答案等豐富的教學(xué)資源。
本書(shū)結(jié)構(gòu)嚴(yán)謹(jǐn),邏輯清晰,敘述清楚,說(shuō)明到位,行文流暢,習(xí)題配
備合理,可讀性強(qiáng),可作為高等學(xué)校統(tǒng)計(jì)學(xué)、大數(shù)據(jù)科學(xué)與技術(shù)等專業(yè)的
教材或相關(guān)專業(yè)的教學(xué)參考書(shū),也可供統(tǒng)計(jì)分析軟件初學(xué)者或從業(yè)者參考。
本書(shū)遵循教指委相關(guān)指導(dǎo)文件和高等院校學(xué)生學(xué)習(xí)規(guī)律編寫(xiě)而成。踐行四新理念,融入思政元素,注重理論與實(shí)踐相結(jié)合。
前 言
我們生活在一個(gè)大數(shù)據(jù)時(shí)代,這也是統(tǒng)計(jì)學(xué)工作者能夠一展抱負(fù)的時(shí)代。然而,工欲
善其事,必先利其器,統(tǒng)計(jì)學(xué)從業(yè)者的 “器” 是什么呢?我們認(rèn)為,“器” 就是一門合適的
編程語(yǔ)言。對(duì)于統(tǒng)計(jì)專業(yè)的學(xué)生來(lái)說(shuō),掌握 R 語(yǔ)言是必需的。同時(shí),我們也發(fā)現(xiàn),隨著
數(shù)據(jù)科學(xué)尤其是深度學(xué)習(xí)的興起,Python 語(yǔ)言在計(jì)算機(jī)科學(xué)、人工智能等領(lǐng)域應(yīng)用廣泛。
要和其他從事統(tǒng)計(jì)數(shù)據(jù)分析工作的同行交流、合作,統(tǒng)計(jì)專業(yè)的學(xué)生還必須了解 Python,
會(huì)用 Python。
R 和 Python 都很重要,那么到底學(xué)哪個(gè)呢?我們認(rèn)為 “小孩子才做選擇題,大人全
都要”。因此,在本書(shū)的編寫(xiě)過(guò)程中,我們?cè)噲D “畢其功于一役”,把 R 和 Python 兩種語(yǔ)
言都囊括其中。但是,需要指出的是,對(duì)于統(tǒng)計(jì)專業(yè)的本科生來(lái)說(shuō),兩門語(yǔ)言的重要程度
是不一樣的:對(duì) R 語(yǔ)言,要熟練掌握并運(yùn)用;對(duì) Python 語(yǔ)言,通曉基本概念,會(huì)用即
可。因此,在本書(shū)中,我們重點(diǎn)介紹了 R 語(yǔ)言,包括 R 語(yǔ)言基本概念、R 語(yǔ)言數(shù)據(jù)處理、
R 語(yǔ)言可視化、R 語(yǔ)言統(tǒng)計(jì)推斷和 R 語(yǔ)言大數(shù)據(jù)分析等。對(duì)于 Python 語(yǔ)言,我們則介
紹了 Python 的基本概念、Python 數(shù)據(jù)處理等入門內(nèi)容。
本書(shū)由王洪編寫(xiě)。王思政、周含璞和鄒易等人參加了部分章節(jié)的資料整理工作。
在本書(shū)編寫(xiě)過(guò)程中,作者參閱了大量的統(tǒng)計(jì)分析軟件、教材和相關(guān)資料,在此我們特
向有關(guān)作者表示深深的謝意。本書(shū)的編寫(xiě)還得到了中南大學(xué)本科生院、數(shù)學(xué)與統(tǒng)計(jì)學(xué)院許
多同仁的大力支持,謹(jǐn)向他們表示衷心感謝。
本書(shū)的出版是編者階段性教學(xué)實(shí)踐的總結(jié)。由于編者個(gè)人的局限性,本書(shū)可能會(huì)有一
些不足之處,懇請(qǐng)讀者批評(píng)指正。
王 洪
2023 年 8 月
作者簡(jiǎn)介
王洪,男,統(tǒng)計(jì)學(xué)博士,副教授,博士生導(dǎo)師。美國(guó)加利福尼亞大學(xué)洛杉磯分校
(UCLA)生物統(tǒng)計(jì)專業(yè)博士后,國(guó)家認(rèn)證系統(tǒng)分析師,主要從事機(jī)器學(xué)習(xí)和生物統(tǒng)計(jì)
等方面的研究工作。以第一作者或通訊作者的身份發(fā)表 SCI 論文 30 余篇,獲軟件著作權(quán)
1 項(xiàng)。主持和參加多項(xiàng)國(guó)家社科基金、國(guó)家自科基金項(xiàng)目,主持多項(xiàng)全國(guó)統(tǒng)計(jì)科研項(xiàng)目重
點(diǎn)項(xiàng)目、人文社科基金等省部級(jí)項(xiàng)目,主持多項(xiàng)企業(yè)合作橫向課題。
目 錄
前言
第 1 章 引言 1
1.1 統(tǒng)計(jì)分析的未來(lái) 1
1.2 常見(jiàn)統(tǒng)計(jì)分析軟件比較 2
1.3 R 語(yǔ)言軟件的下載、安裝及基本操作3
1.3.1 下載和安裝 R 語(yǔ)言軟件 3
1.3.2 R 語(yǔ)言軟件基本操作與控制 4
1.3.3 常用的 R 程序包7
1.3.4 RStudio 10
1.3.5 Markdown12
1.4 Python 語(yǔ)言軟件的下載、安裝及運(yùn)行 14
1.4.1 下載與安裝 Python 語(yǔ)言軟件14
1.4.2 Anaconda15
1.4.3 運(yùn)行 Python 15
1.5 本章小結(jié) 16
1.6 練習(xí)題17
1.7 實(shí)驗(yàn)題17
第 2 章 R 語(yǔ)言編程基礎(chǔ) 18
2.1 R 語(yǔ)言版的 “Hello World!” 18
2.2 R 語(yǔ)言腳本運(yùn)行 18
2.3 R 語(yǔ)言常量和變量19
2.4 R 語(yǔ)言對(duì)象基本操作 20
2.4.1 R 語(yǔ)言對(duì)象屬性20
2.4.2 列出對(duì)象與刪除對(duì)象 22
2.5 R 語(yǔ)言數(shù)據(jù)類型 23
2.5.1 向量23
2.5.2 數(shù)組32
2.5.3 矩陣33
2.5.4 數(shù)據(jù)框 35
2.5.5 列表36
2.6 R 語(yǔ)言流程控制 38
VI
2.6.1 分支條件語(yǔ)句 39
2.6.2 循環(huán)語(yǔ)句 41
2.7 R 語(yǔ)言自定義函數(shù)45
2.8 本章小結(jié) 48
2.9 練習(xí)題49
2.10 實(shí)驗(yàn)題 50
第 3 章 R 語(yǔ)言數(shù)據(jù)處理 51
3.1 數(shù)據(jù)的輸入與輸出51
3.1.1 終端輸出 51
3.1.2 讀取數(shù)據(jù) 53
3.1.3 保存數(shù)據(jù) 57
3.2 數(shù)據(jù)選擇 59
3.2.1 常見(jiàn)數(shù)據(jù)操作函數(shù)59
3.2.2 取子集 63
3.2.3 常見(jiàn)數(shù)據(jù)選擇函數(shù)68
3.3 數(shù)據(jù)整理 71
3.3.1 修改變量名稱 71
3.3.2 增加新變量72
3.3.3 徹底刪除新變量72
3.3.4 類型轉(zhuǎn)換函數(shù) 73
3.3.5 排序74
3.3.6 數(shù)據(jù)合并 76
3.3.7 缺失數(shù)據(jù)處理 80
3.4 本章小結(jié) 81
3.5 練習(xí)題82
3.6 實(shí)驗(yàn)題82
第 4 章 R 語(yǔ)言可視化 84
4.1 R 語(yǔ)言基礎(chǔ)繪圖 84
4.1.1 高級(jí)繪圖函數(shù) 84
4.1.2 低級(jí)繪圖函數(shù) 96
4.1.3 交互式繪圖函數(shù)98
4.1.4 使用圖形參數(shù) 99
4.1.5 圖形保存101
4.2 ggplot2 繪圖包 102
4.2.1 ggplot 語(yǔ)法 103
4.2.2 ggplot 繪圖函數(shù)103
4.3 增強(qiáng)型繪圖 plotly 包 112
VII
4.3.1 將 ggplot2 對(duì)象轉(zhuǎn)換為 plotly 對(duì)象112
4.3.2 直接創(chuàng)建 plotly 對(duì)象112
4.4 交互式動(dòng)態(tài)網(wǎng)頁(yè) Shiny 包 115
4.4.1 Shiny 簡(jiǎn)介115
4.4.2 Shiny 應(yīng)用程序的結(jié)構(gòu)115
4.4.3 編寫(xiě)簡(jiǎn)單的 Shiny 應(yīng)用117
4.4.4 運(yùn)行 Shiny 應(yīng)用程序121
4.5 本章小結(jié) 122
4.6 練習(xí)題 123
4.7 實(shí)驗(yàn)題 123
第 5 章 R 語(yǔ)言隨機(jī)抽樣和隨機(jī)數(shù) 124
5.1 隨機(jī)變量分布 124
5.2 隨機(jī)抽樣 125
5.3 生成已知分布的隨機(jī)數(shù)129
5.3.1 R 語(yǔ)言函數(shù)生成隨機(jī)數(shù)129
5.3.2 逆變換法生成隨機(jī)數(shù) 131
5.3.3 舍選法 133
5.4 隨機(jī)數(shù)的應(yīng)用 134
5.4.1 估計(jì)參數(shù)134
5.4.2 驗(yàn)證大數(shù)定律 135
5.4.3 驗(yàn)證中心極限定理 136
5.5 本章小結(jié) 138
5.6 練習(xí)題 138
5.7 實(shí)驗(yàn)題 138
第 6 章 R 語(yǔ)言基本統(tǒng)計(jì)推斷 140
6.1 R 語(yǔ)言匯總統(tǒng)計(jì)量函數(shù)140
6.2 R 語(yǔ)言參數(shù)估計(jì)方法 144
6.2.1 點(diǎn)估計(jì) 144
6.2.2 區(qū)間估計(jì)146
6.3 假設(shè)檢驗(yàn) 148
6.3.1 t 檢驗(yàn) 149
6.3.2 二項(xiàng)分布的總體檢驗(yàn) 156
6.3.3 泊松分布的總體檢驗(yàn) 157
6.3.4 樣本比例的總體檢驗(yàn) 158
6.3.5 方差分析160
6.4 非參數(shù)統(tǒng)計(jì)推斷162
6.4.1 K-S 檢驗(yàn)162
VIII
6.4.2 Wilcoxon 符號(hào)秩檢驗(yàn)163
6.4.3 Wilcoxon 秩和檢驗(yàn) 165
6.4.4 Pearson 卡方檢驗(yàn) 166
6.4.5 Fisher 精確檢驗(yàn)170
6.5 本章小結(jié) 171
6.6 練習(xí)題 171
6.7 實(shí)驗(yàn)題 172
第 7 章 R 語(yǔ)言回歸分析173
7.1 一元回歸模型 173
7.1.1 R 語(yǔ)言回歸函數(shù)173
7.1.2 一元回歸分析示例 175
7.2 多元回歸模型 178
7.2.1 多元回歸分析示例 178
7.2.2 處理類別變量 180
7.2.3 回歸系數(shù)的置信區(qū)間 182
7.2.4 標(biāo)準(zhǔn)化的回歸系數(shù) 182
7.3 回歸模型的擬合優(yōu)度 183
7.3.1 R2183
7.3.2 調(diào)整后的 R2 184
7.4 回歸模型診斷 184
7.4.1 殘差的分類184
7.4.2 線性假設(shè)診斷 186
7.4.3 殘差分析和異常點(diǎn)檢測(cè)186
7.4.4 多重共線性檢測(cè)189
7.5 模型選擇 196
7.5.1 最佳子集回歸 196
7.5.2 逐步回歸197
7.6 模型的預(yù)測(cè)203
7.6.1 回歸模型的預(yù)測(cè)203
7.6.2 標(biāo)準(zhǔn)化數(shù)據(jù)的預(yù)測(cè) 204
7.7 本章小結(jié) 205
7.8 練習(xí)題 206
7.9 實(shí)驗(yàn)題 206
第 8 章 R 語(yǔ)言大數(shù)據(jù)分析 207
8.1 R 語(yǔ)言效率編程207
8.1.1 檢查代碼運(yùn)行時(shí)間 207
8.1.2 優(yōu)化 R 循環(huán) 208
IX
8.1.3 向量化運(yùn)算209
8.1.4 優(yōu)先使用 base 包命令210
8.1.5 使用 C++ 編程211
8.1.6 使用 apply 族函數(shù) 211
8.2 內(nèi)存管理 214
8.2.1 內(nèi)存使用214
8.2.2 內(nèi)存清理215
8.3 R 并行處理包 216
8.3.1 parallel 軟件包216
8.3.2 foreach 軟件包218
8.4 R 高效讀取大數(shù)據(jù)219
8.4.1 提升讀取效率的函數(shù) 219
8.4.2 在內(nèi)存外存儲(chǔ)數(shù)據(jù) 221
8.5 本章小結(jié) 222
8.6 練習(xí)題 222
8.7 實(shí)驗(yàn)題 223
第 9 章 Python 語(yǔ)言基礎(chǔ) 224
9.1 在 R 中調(diào)用 Python 224
9.2 Python 入門 225
9.2.1 Python 版 “Hello World!”225
9.2.2 關(guān)鍵字和標(biāo)識(shí)符226
9.2.3 變量和常量226
9.2.4 Python 語(yǔ)句、縮進(jìn)和注釋 228
9.2.5 Python 數(shù)據(jù)類型229
9.2.6 數(shù)據(jù)類型轉(zhuǎn)換 232
9.2.7 運(yùn)算符和操作對(duì)象 233
9.3 Python 數(shù)據(jù)結(jié)構(gòu)236
9.3.1 序列236
9.3.2 列表241
9.3.3 元組246
9.3.4 字符串 247
9.3.5 字典252
9.4 Python 流程控制256
9.4.1 條件語(yǔ)句256
9.4.2