內容簡介
本書是一本R語言入門讀物,它旨在幫助讀者迅速構建起與數據分析相關的知識體系,並學習如何使用R軟體實現數據分析方法。無論有無編程基礎或數學基礎,本書都能幫助讀者成長為一名合格的數據分析師。本書全面介紹了來自統計分析、機器學習、人工智慧等領域的多種數據分析算法,在講解與之相關的R代碼時,還討論了這些算法的原理、優缺點與適用背景。本書按照由易到難的原則組織章節主題,讀者將獲得最好的閱讀體驗。通過閱讀本書,讀者將對R語言在數據分析領域的套用有一個全面的認識。這種認識不被特定行業所局限,任何行業的讀者都能利用本書介紹的數據分析方法解決本行業的數據分析問題。
目錄
第1章?R的基本介紹 1
1.1?強大的R 1
1.2?R語言在大數據中的套用 2
1.2.1?R語言用戶行為分析 2
1.2.2?R語言處理金融大數據 3
1.2.3?R語言天氣數據可視化 4
1.2.4?R語言醫療大數據分析 4
1.3?R的安裝與啟動 5
1.3.1?安裝並啟動R 6
1.3.2?安裝並啟動一個IDE 7
1.4?R的向量、矩陣和數組 8
1.4.1?向量的操作方法和固有屬性 8
1.4.2?矩陣的操作和運算 10
1.4.3?數組中的維度函式 13
1.5?R的列表和數據框 14
1.5.1?列表的特性和編輯方法 14
1.5.2?數據框的創建和基本操作 17
1.6?R數據檔案的載入和載出 19
1.6.1?結構化純文本檔案的讀取和輸出 19
1.6.2?其他檔案的讀取和輸出 22
1.7?向R中安裝包 23
第2章?原始數據的探索與預處理 26
2.1?度量數據集的集中程度 26
2.2?度量數據集的分散程度 27
2.2.1?極值、方差和標準差 27
2.2.2?標準誤和偏度係數、峰度係數 29
2.3?創建一個數值摘要表 30
2.4?異常值的觀測與說明 32
2.4.1?利用箱線圖觀測異常值並處理 32
2.4.2?異常值檢測的其他情況和說明 34
2.5?缺失值的填補與處理 35
2.5.1?刪除缺失值或對其進行簡單填補 36
2.5.2?按照相關性對空缺值進行填補 38
第3章?R的數據可視化 40
3.1?plot()函式和常用的圖形參數 40
3.1.1?設定plot()函式中的參數 40
3.1.2?修改散點圖的坐標並加入標註 43
3.2?經典的基礎圖形及用途 45
3.2.1?線圖 45
3.2.2?直方圖 49
3.2.3?箱線圖和莖葉圖 52
3.3?將圖形組合起來 55
3.4?更多的高水平作圖函式 57
3.5?更多的常用作圖命令 59
第4章?R中參數的估計和檢驗 62
4.1?使用R進行點估計和區間估計 62
4.1.1?簡單的點估計和區間估計 62
4.1.2?估計單側置信區間 65
4.2?與正態總體有關的參數檢驗 68
4.3?列聯表與獨立性檢驗 71
4.4?幾種檢驗數據分布的函式 72
4.5?對非正態總體的區間估計和檢驗 75
4.5.1?非正態總體的區間估計 75
4.5.2?非參數檢驗中的符號檢驗 76
4.5.3?非參數檢驗中的秩檢驗 78
第5章?R中的方差分析 80
5.1?方差分析模型的建立 80
5.2?單因素方差分析 81
5.2.1?單因素方差分析的數學思想與模型 81
5.2.2?檢驗樣本是否滿足方差分析的假設條件 82
5.2.3?構建單因素方差分析模型 84
5.3?多因素方差分析 87
5.3.1?多因素方差分析的數學思想與模型 87
5.3.2?不考慮互動作用的雙因素方差分析 88
5.3.3?考慮互動作用的雙因素方差分析 89
5.4?秩檢驗和協方差分析 91
5.4.1?對控制變數套用秩檢驗方法 91
5.4.2?協方差分析的假設與套用 92
第6章?R中的相關分析和回歸分析 94
6.1?多種相關係數的度量和分析 94
6.1.1?簡單相關係數的計算和檢驗 94
6.1.2?散布矩陣圖和偏相關係數 96
6.1.3?典型相關分析 98
6.2?線性回歸分析及其常規參數 99
6.2.1?對數據進行預處理 100
6.2.2?構建第一個回歸模型 101
6.2.3?修正方程並檢驗殘差 102
6.3?使用逐步回歸篩選自變數 104
6.3.1?逐步回歸的思想與分類 104
6.3.2?構建逐步回歸模型 105
6.4?啞變數和邏輯回歸 107
6.4.1?啞變數和邏輯回歸的思想 107
6.4.2?向線性回歸模型中納入啞變數 108
第7章?更高級的數據可視化 110
7.1?基礎圖形的拓展與延伸 110
7.1.1?繪製分類散點圖並添加圖示 110
7.1.2?繪製含多種類別的密度分布圖 112
7.1.3?複合條形圖和堆疊條形圖 114
7.2?有關多元分布函式的特殊圖形 117
7.2.1?星圖和臉譜圖 117
7.2.2?輪廓圖 120
7.2.3?調和曲線圖 122
7.3?建立最簡單的3D圖形 123
7.4?如何讓圖形更美觀 125
7.5?更多的繪圖包和系統 128
第8章?R中的聚類分析和判別分析 129
8.1?幾種聚類分析的異同 129
8.2?使用R實現KNN聚類 130
8.2.1?KNN算法的思想和模型 130
8.2.2?使用R實現KNN聚類 131
8.3?使用R實現系統聚類 133
8.3.1?系統聚類的思想和模型 133
8.3.2?使用R實現系統聚類 134
8.4?使用R實現快速聚類 136
8.4.1?快速聚類的思想和模型 136
8.4.2?使用R實現快速聚類 137
8.5?幾種判別分析模型綜述 140
8.5.1?距離判別模型 140
8.5.2?Fisher判別模型 142
第9章?R中的主成分分析和因子分析 145
9.1?主成分分析的實現與套用 145
9.1.1?主成分分析的模型假設和數據處理 145
9.1.2?構造一個主成分分析模型 147
9.1.3?計算主成分的綜合得分 149
9.2?因子分析的初次構建與完善 150
9.2.1?構造一個簡單的因子分析模型 150
9.2.2?計算因子得分並分析 152
9.3?對因子分析模型進行修正 153
9.3.1?修改因子分析模型中的因子個數 153
9.3.2?基於主成分法和主軸因子法進行因子分析 155
9.4?在降維分析的基礎上進行回歸分析和聚類分析 157
9.4.1?在降維分析的基礎上進行回歸分析 157
9.4.2?在降維分析的基礎上進行聚類分析 160
第10章?R中的廣義線性回歸模型 162
10.1?一般的廣義線性回歸模型 162
10.1.1?使用二次函式擬合線性回歸模型 162
10.1.2?擬合更多的廣義線性模型 164
10.1.3?比較線性模型的優劣 166
10.2?Logistic線性回歸模型 168
10.2.1?Logistic模型的原理與構建方法 168
10.2.2?Logistic模型的顯著性檢驗和優勢比 170
10.2.3?修正被警告的Logistic模型 171
10.3?泊松回歸分析模型 173
10.3.1?擬合第一個泊松回歸模型 174
10.3.2?泊松回歸模型的過散布檢驗 176
10.4?廣義線性模型的交叉驗證 178
第11章?R中的時間序列模型 180
11.1?將數據轉換為時間序列格式 180
11.1.1?使用ts()函式轉換數據格式並繪製時間序列曲線 180
11.1.2?使用zoo()函式轉換數據格式並繪製時間序列曲線 182
11.2?分解時間序列並檢驗時間序列的自相關性 185
11.2.1?使用經典方法分解時間序列 185
11.2.2?使用STL方法分解時間序列 186
11.3?探究時間序列的自相關性 188
11.3.1?使用月圖和季度圖探究自相關性 188
11.3.2?使用散點圖探究自相關性 189
11.4?構建時間序列並預測 191
11.4.1?均值預測、單純預測和漂移 192
11.4.2?不考慮長期趨勢和季節波動的簡單指數平滑 195
11.4.3?在指數平滑中加入長期趨勢和季節波動 196
11.4.4?自回歸移動平均模型 198
第12章?R中的最最佳化問題 201
12.1?最最佳化問題簡述 201
12.2?黃金分割法 202
12.2.1?黃金分割法和局部最優解 202
12.2.2?使用R實現黃金分割法 203
12.3?牛頓最最佳化方法 205
12.3.1?牛頓法的算法原理 206
12.3.2?在一維情形下實現牛頓疊代法 207
12.3.3?在多維情形下實現牛頓疊代法 209
12.4?最快上升法 210
12.4.1?利用梯度求解上升最快的相鄰點 210
12.4.2?構建最快上升法函式並檢驗 212
12.5?R中的最最佳化函式 213
第13章?使用R繪製地理信息圖形 216
13.1?繪製世界、國家、省市地圖 216
13.1.1?使用map()函式繪製地圖 216
13.1.2?另一種繪製地圖的方法 218
13.1.3?分省市繪製地圖 220
13.2?向地圖中添加顏色 222
13.2.1?向地圖中添加顏色前的準備工作 222
13.2.2?在地圖上添加顏色 224
13.3?向地圖中添加標籤和線條 226
13.3.1?向地圖中添加標籤前的準備工作 226
13.3.2?在地圖上添加標籤 228
13.3.3?在地圖上添加線條 230
13.4?使用其他格式的檔案最佳化地圖 232
第14章?使用R構建支持向量機 236
14.1?構建一個簡單的支持向量機 236
14.1.1?支持向量機的算法原理 236
14.1.2?構建一個簡單的支持向量機 238
14.1.3?使用其他核函式構建支持向量機 241
14.2?最佳化支持向量機的參數 243
14.2.1?最佳化參數degree 244
14.2.2?最佳化參數cost 247
14.2.3?最佳化參數gamma 249
14.3?比較支持向量機與Logistic回歸的優劣 252
14.4?比較支持向量機和KNN聚類算法的優劣 255
第15章?實現更高效的流程控制和高級循環 257
15.1?R中的流程控制 257
15.1.1?if語句的多種實現方法 257
15.1.2?ifelse語句與花括弧的結合 258
15.1.3?適合多分支情況的switch語句 260
15.2?R中的for循環、while循環和repeat循環 262
15.2.1?R中的for循環和while循環 262
15.2.2?R中的repeat循環 264
15.3?apply家族中的循環函式 266
15.3.1?R中的apply()函式 266
15.3.2?R中的lapply()函式和sapply()函式 269
15.3.3?R中的tapply()函式 271
15.3.4?R中的mapply()函式 274
15.4?更多的高級循環函式 276
15.4.1?R中的replicate()函式和sweep()函式 276
15.4.2?R中的aggregate()函式 279
第16章?R代碼的調試與最佳化 282
16.1?R代碼的常見信息與警告 282
16.1.1?R代碼的正常信息與警告 282
16.1.2?R代碼中的警告處理方法 284
16.2?R代碼中的錯誤與錯誤處理方法 285
16.2.1?使用try()函式處理錯誤信息 285
16.2.2?將try()函式與循環相結合 287
16.3?調試R代碼 288
16.3.1?查看調用棧或暫停代碼 288
16.3.2?修改error選項 290
16.4?向量化編程方法 291
16.4.1?向量化編程思想 291
16.4.2?比較循環和向量的運行速度 292
第17章?構建電影評分預測模型 295
17.1?獲取數據並探索 295
17.2?利用recommenderlab包處理數據 297
17.3?建立模型並評估 299
17.3.1?模型的選擇與建立 299
17.3.2?模型之間的比較和評估 301
第18章?貝葉斯垃圾郵件過濾器模型 303
18.1?貝葉斯模型中的條件機率 303
18.2?複雜的數據預處理過程 304
18.2.1?利用for循環讀入多封郵件正文 304
18.2.2?利用tm包進一步轉換數據格式 306
18.2.3?將TDM轉換成真正有用的數據框 307
18.3?利用occurrece值構造分類器 309
18.3.1?完成理論準備並處理測試郵件和普通郵件 309
18.3.2?創建一個函式用於比較機率