用 Python 動手學統計學
內容描述
《用Python動手學統計學》是面向零基礎讀者的統計學入門書,對同一個知識點分別使用文字、公式和Python 示例代碼加以講解,循序漸進地介紹了統計學和Python 的基礎知識、使用Python 進行統計分析的方法、正態線性模型和廣義線性模型等統計模型,以及機器學習等。通過閱讀本書,讀者不僅可以通過書中例子深刻理解統計學術語、統計分析方法和預測方法等,還可以學到十分前沿的機器學習知識,以及如何使用Python 實現數據可視化和建模等。
《用Python動手學統計學》結構清晰、直觀易懂,適合統計學和Python初學者以及對數據科學和機器學習感興趣的讀者使用,也可作為高等院校電腦、統計等專業學生的入門書。
目錄大綱
目錄
第1章統計學基礎
1.1統計學2
1.1.1統計學的目標①:描述現有數據2
1.1.2統計學的目標②:估計未知數據3
1.1.3術語樣本與總體3
1.1.4 1.2節及之後的內容4
1.2獲取樣本的過程5
1.2.1術語隨機變量5
1.2.2湖中釣魚的例子5
1.2. 3從總體中獲取樣本的過程6
1.2.4術語樣本值7
1.2.5術語抽樣7
1.2.6術語簡單隨機抽樣7
1.2.7術語樣本容量7
1.2.8術語普查與抽樣調查8
1.3抽樣過程的抽象描述9
1.3.1符號概率9
1.3.2術語概率分佈9
1.3.3術語服從概率分佈10
1.3.4術語總體分佈10
1.3.5作為抽樣過程的總體分佈10
1.3.6無限總體的含義與總體分佈11
1.3.7總結:抽樣過程12
1.3.8補充甕模型13
1.4描述統計基礎14
1.4.1術語定量變量14
1.4.2術語離散變量與連續變量14
1.4.3術語分類變量15
1.4.4術語組、組中值15
1.4.5術語頻數、頻數分佈、頻率15
1.4.6術語累積頻數、累積頻率16
1.4. 7術語直方圖17
1.4.8術語統計量19
1.4.9術語均值19
1.4.10術語期望值20
1.4.11術語方差21
1.4.12補充均值、方差與數據范圍21
1.5總體分佈的推斷23
1.5.1總體分佈與總體的頻率分佈23
1.5.2更現實一些的湖中釣魚24
1.5.3做假設24
1.6概率質量函數與概率密度函數27
1.6.1術語概率質量函數27
1.6.2術語概率密度27
1.6.3補充積分與加法的關係28
1.6.4術語概率密度函數28
1.6.5術語正態分佈29
1.6.6術語參數(概率分佈的參數) 30
1.6.7補充各種各樣的概率分佈30
1.6.8推斷總體分佈=確定分佈+估計參數31
1. 6.9把樣本的統計量看作參數的估計值32
1.6.10補充估計誤差32
1.6.11總結:統計學基礎33
1.7統計量的計算35
1.7.1為什麼要使用數學式35
1.7.2符號樣本35
1.7.3符號均值36
1.7. 4符號期望值36
1.7.5術語總體均值與樣本均值37
1.7.6符號樣本方差37
1.7.7術語無偏方差38
1.7.8為什麼樣本方差會偏離38
1.7. 9術語標準差39
1.8概率論基礎41
1.8.1術語集合41
1.8.2術語元素41
1.8.3集合的兩種表示方法42
1.8.4術語子集42
1 .8.5術語維恩圖43
1.8.6術語交集與並集43
1.8.7術語差集44
1.8.8術語空集44
1.8.9術語全集44
1.8.10術語補集45
1.8.11術語樣本點、樣本空間、事件45
1.8.12術語互斥事件46
1.8.13通過擲骰子可以聯想到的各種概率分佈47
1.8.14概率的公理化定義47
1.8.15用頻率解釋概率48
1.8.16主觀概率48
1.8.17術語概率的加法公式49
1.8.18術語條件概率49
1.8.19術語概率的乘法公式50
1.8.20術語獨立事件50
1. 9隨機變量與概率分佈51
1.9.1隨機變量與樣本值51
1.9.2離散型概率分佈與概率質量函數52
1.9.3概率密度52
1.9.4連續型概率分佈與概率密度函數53
1.9.5概率的總和與概率密度的積分53
1.9.6補充積分與面積的關係54
1.9.7正態分佈的概率密度函數56
1.9.8符號服從概率分佈56
1.9.9獨立同分佈57
1.9.10使用正態分佈的概率密度函數計算概率的方法57
1.9.11使用概率密度計算期望值的方法57
第2章Python與Jupyter Notebook基礎59
2.1環境搭建60
2.1.1什麼是Python 60
2.1.2 Python的版本60
2.1.3 Python與Anaconda 60
2.1.4 Jupyter Notebook 61
2.1.5下載和安裝61
2.1.6補充Python編程術語61
2.2認識Jupyter Notebook 63
2.2.1啟動Jupyter Notebook 63
2.2.2創建新文件64
2.2.3執行代碼65
2.2.4保存執行結果65
2.2.5 Markdown的用法65
2.2.6退出Jupyter Notebook 66
2.3 Python編程基礎67
2.3.1實現四則運算67
2.3.2實現編寫註釋68
2.3.3實現數據類型69
2.3.4實現比較運算符70
2.3.5實現變量71
2.3.6實現函數71
2.3.7實現類與實例73
2.3.8實現基於if語句的程序分支75
2.3.9實現基於for語句的循環76
2.3.10編寫易用程序的竅門77
2.4認識numpy與pandas 78
2.4.1導入用於分析的功能78
2.4 .2 numpy與pandas 79
2.4.3實現列表79
2.4.4術語行與列79
2.4.5實現數組81
2.4.6實現生成等差數列的方法82
2.4.7實現多種生成數組的方式83
2.4.8實現切片84
2.4.9實現數據幀85
2.4.10實現讀取文件中的數據87
2.4.11實現連接數據幀87
2.4.12實現數據幀的列操作88
2.4.13實現數據幀的行操作90
2.4.14補充序列91
2. 4.15補充函數文檔92
第3章使用Python進行數據分析95
3.1使用Python進行描述統計:單變量96
3.1.1統計分析與scipy 96
3.1.2單變量數據的操作96
3.1.3實現總和與樣本容量97
3.1.4實現均值(期望值) 98
3.1.5實現樣本方差98
3.1.6實現無偏方差100
3.1.7實現標準差101
3.1.8補充標準化101
3.1.9補充其他統計量103
3.1.*10實現scipy.stats與四分位數104
3.2使用Python進行描述統計:多變量106
3.2.1術語整潔數據106
3.2.2術語雜亂數據107
3.2.3術語列聯表(交叉分類表) 108
3.2.4多變量數據的管理109
3.2.5實現求各分組的統計量110
3. 2.6實現列聯表111
3.2.7術語協方差112
3.2.8術語協方差矩陣114
3.2.9實現協方差114
3.2.10實現協方差矩陣115
3.2. 11術語皮爾遜積矩相關係數116
3.2.12術語相關矩陣116
3.2.13實現皮爾遜積矩相關係數117
3.2.14補充相關係數無效的情況118
3.3基於matplotlib、seaborn的數據可視化119
3.3.1 Python中的數據可視化119
3.3.2實現數據可視化的環境準備119
3.3.3實現用pyplot繪製折線圖120
3.3.4實現用seaborn和pyplot繪製折線圖121
3.3.5實現用seaborn繪製直方圖122
3.3.6實現通過核密度估計將直方圖平滑化123
3.3.7實現兩個變量的直方圖125
3.3.8將多變量可視化的代碼127
3.3.9實現箱形圖128
3.3.10實現小提琴圖129
3.3.11實現條形圖130
3.3.12實現散點圖131
3.3.13實現散點圖矩陣132
3.4用Python模擬抽樣135
3. 4.1環境準備135
3.4.2抽樣過程136
3.4.3在只有5條魚的湖中抽樣136
3.4.4術語隨機數138
3.4.5術語放回抽樣、不放回抽樣138
3.4.6從魚較多的湖中抽樣139
3.4.7總體分佈140
3.4.8對比總體分佈和正態分佈的概率密度函數141
3.4.9抽樣過程的抽象描述143
3.4.10補充有限總體校正144
3.4.11補充假設總體服從正態分佈是否恰當145
3.5樣本統計量的性質146
3.5.1術語試驗146
3.5.2術語樣本分佈146
3.5.3導入所需的庫147
3.5.4多次計算樣本均值148
3.5.5樣本均值的均值與總體均值相近149
3.5.6樣本容量越大,樣本均值越接近總體均值150
3.5.7定義用來計算樣本均值的函數152
3.5.8不同樣本容量所得的樣本均值的分佈153
3.5.9樣本均值的標準差小於總體標準差154
3.5.10術語標準誤差156
3.5.11標準誤差的直觀解釋158
3.5.12樣本方差的均值偏離總體方差158
3.5.13採用無偏方差消除偏離159
3.5.14樣本容量越大,其無偏方差越接近總體方差160
3.5.15術語無偏性161
3.5.16術語一致性161
3.5.17較好的參數估計量162
3.5.18補充大數定律162
3.5.19補充中心極限定理162
3.6正態分佈及其應用165
3.6.1導入函數庫165
3.6.2實現概率密度166
3.6.3樣本小於等於某值的比例168
3.6.4術語累積分佈函數168
3.6. 5實現累積分佈函數169
3.6.6術語左側概率與百分位數170
3.6.7實現百分位數170
3.6.8術語標準正態分佈171
3.6.9術語t值171
3.6.10 t值的樣本分佈172
3.6.11術語t分佈174
3.6.12實現t分佈175
3.7參數估計177
3.7.1本節任務177
3.7.2環境準備177
3.7.3術語點估計178
3.7.4實現點估計179
3.7.5術語區間估計179
3.7.6術語置信水平、置信區間180
3.7.7術語置信界限180
3.7.8置信區間的計算180
3.7.9實現區間估計180
3 .7.10補充置信區間的求解細節181
3.7.11決定置信區間大小的因素183
3.7.12區間估計結果的解讀184
3.8假設檢驗187
3.8.1術語假設檢驗187
3 .8.2單樣本t檢驗187
3.8.3顯著性差異188
3.8.4 t檢驗的直觀解釋188
3.8.5均值差異大不代表存在顯著性差異189
3.8.6 t值189
3.8.7假設檢驗的結構:零假設與備擇假設190
3.8.8術語p值191
3.8.9術語顯著性水平191
3.8.10 t檢驗與t分佈的關係191
3.8.11術語單側檢驗與雙側檢驗192
3.8.12 p值的計算192
3.8.13 t檢驗的實現:環境準備193
3.8.14 t檢驗的實現:計算t值194
3.8.15 t檢驗的實現:計算p值195
3.8.16通過模擬實驗計算p值196
3.9均值差的檢驗198
3.9.1雙樣本t檢驗198
3.9.2配對樣本t檢驗198
3.9.3環境準備199
3 .9.4實現配對樣本t檢驗200
3.9.5獨立樣本t檢驗201
3.9.6實現獨立樣本t檢驗202
3.9.7補充獨立樣本t檢驗(同方差) 203
3.9. 8補充p值操縱203
3.10列聯表檢驗205
3.10.1使用列聯表的好處205
3.10.2本節例題206
3.10.3計算期望頻數207
3.10.4計算觀測頻數和期望頻數的差208
3.10.5實現計算p值209
3.10.6實現列聯表檢驗209
3.11檢驗結果的解讀211
3.11.1 p值小於0.05時的表述方法211
3.11.2 p值大於0.05時的表述方法211
3.11.3關於假設檢驗的常見誤區212
3.11.4 p值小不代表差異大212
3.11.5 p值大於0.05不代表沒有差異213
3.11.6術語第一類錯誤與第二類錯誤213
3.11.7術語假設檢驗的非對稱性213
3.11.8在檢驗之前確定顯著性水平214
3.11.9補充統計模型的選擇214
3.11.10假設檢驗有什麼用214
3.11.11假設是否正確215
第4章統計模型基礎217
4.1統計模型218
4.1.1術語模型218
4.1.2術語建模218
4.1.3模型有什麼用218
4.1.4簡化複雜的世界219
4.1.5從某個角度觀察複雜的現象219
4.1.6術語數學模型220
4.1.7術語概率模型220
4.1. 8術語統計模型221
4.1.9概率分佈與統計模型221
4.1.10基於統計模型的預測222
4.1.11統計模型與經典數據分析的對比222
4.1.12統計模型應用223
4.2建模方法224
4.2.1本節例題224
4.2.2術語響應變量和解釋變量224
4.2.3術語參數模型224
4.2.4術語非參數模型224
4.2.5術語線性模型224
4.2.6術語係數與權重226
4.2.7建模=模型選擇+參數估計227
4.2.8線性模型的建模方法227
4.2.9術語變量選擇228
4.2.10術語空模型228
4.2.11通過假設檢驗選擇變量229
4.2.12通過信息量準則選擇變量229
4.2.13模型評估230
4.2.14補充在建模之前確定分析目的230
4.3數據表示與模型名稱231
4. 3.1術語正態線性模型231
4.3.2術語回歸分析(經典術語) 231
4.3.3術語多元回歸分析(經典術語) 232
4.3.4術語方差分析(經典術語) 232
4 .3.5術語廣義線性模型232
4.3.6補充機器學習中的叫法232
4.4參數估計:最大似然估計234
4.4.1為什麼要學習參數估計234
4.4.2術語似然234
4.4.3術語似然函數235
4.4.4術語對數似然235
4.4.5術語對數的性質235
4.4.6術語最大似然法238
4.4.7術語最大似然估計量238
4.4.8術語最大對數似然239
4.4.9服從正態分佈的數據的似然239
4.4.10術語多餘參數239
4.4.11正態線性模型的似然240
4.4.12補充最大似然法計算舉例241
4.4.13補充最大似然估計量的性質243
4.5參數估計:最小化損失244
4.5.1術語損失函數244
4.5.2術語殘差244
4 .5.3為什麼不把殘差之和作為損失指標245
4.5.4術語殘差平方和246
4.5.5術語最小二乘法247
4.5.6補充最小二乘法與最大似然法的關係247
4.5.7術語誤差函數248
4.5.8多種損失函數248
4.6預測精度的評估與變量選擇249
4.6.1術語擬合精度與預測精度249
4.6. 2術語過擬合249
4.6.3變量選擇的意義250
4.6.4術語泛化誤差250
4.6.5術語訓練集與測試集250
4.6.6術語交叉驗證250
4.6.7術語赤池信息量準則251
4.6.8術語相對熵252
4.6.9最小化相對熵與平均對數似然252
4.6.10 AIC與平均對數似然中的偏離253
4.6.11 AIC與交叉驗證254
4.6.12使用AIC進行變量選擇254
4.6.13用變量選擇代替假設檢驗254
4.6.14使用假設檢驗還是AIC 255
第5章正態線性模型257
5.1含有單個連續型解釋變量的模型(一元回歸) 258
5.1.1環境準備258
5.1.2實現讀入數據並繪製其圖形259
5.1.3建模260
5.1.4實現使用statsmodels實現模型化261
5.1.5實現打印估計結果並檢驗係數261
5.1.6關於summary函數的輸出的說明263
5.1 .7實現使用AIC進行模型選擇264
5.1.8術語回歸直線266
5.1.9實現用seaborn繪製回歸直線266
5.1.10實現使用模型進行預測267
5.1.11實現獲取殘差269
5.1.12術語決定係數270
5.1.13實現決定係數270
5.1.14術語修正決定係數272
5.1.15實現修正決定係數272
5.1.16實現殘差的直方圖和散點圖273
5.1.17術語分位圖274
5.1.18實現分位圖275
5.1.19根據summary函數的輸出分析殘差277
5.2方差分析279
5.2.1本節例題279
5.2.2什麼時候應該使用方差分析279
5.2.3術語多重假設檢驗280
5.2.4方差分析的直觀理解:F比280
5.2.5顯著性差異與小提琴圖281
5.2.6方差分析的直觀理解:分離效應和誤差283
5.2.7術語組間差異與組內差異283
5.2.8環境準備284
5.2.9生成數據並可視化284
5.2.10實現方差分析①:計算組間偏差平方和與組內偏差平方和286
5.2.11實現方差分析②:計算組間方差與組內方差287
5.2.12實現方差分析③:計算p值288
5.2. 13解釋變量為分類變量的正態線性模型289
5.2.14術語虛擬變量289
5.2.15實現statsmodels中的方差分析290
5.2.16術語方差分析表290
5.2.17模型係數的含義290
5.2.18使用模型分離效應和誤差291
5.2.19回歸模型中的方差分析292
5.3含有多個解釋變量的模型295
5.3.1環境準備295
5.3.2實現數據可視化296
5.3.3錯誤的分析:建立只有1個變量的模型297
5.3.4分析解釋變量之間的關係299
5.3.5實現多解釋變量的模型301
5.3.6錯誤的分析:使用普通方差分析301
5.3.7實現回歸係數的t檢驗303
5.3.8術語Type II ANOVA 304
5.3.9模型選擇與方差分析304
5.3.10 Type II ANOVA與調整平方和307
5.3.11實現Type II ANOVA 308
5.3.12 Type II ANOVA的含義310
5.3.13實現變量選擇與模型選擇310
5.3.14使用AIC進行變量選擇311
5.3.15補充多重共線性312
第6章廣義線性模型313
6.1各種概率分佈314
6.1.1術語二值隨機變量314
6.1.2術語伯努利試驗314
6.1.3術語成功概率315
6.1.4術語伯努利分佈315
6.1.5術語二項分佈315
6.1.6二項分佈的應用316
6.1.7二項分佈的概率質量函數316
6.1.8環境準備317
6.1.9實現二項分佈318
6.1.10術語泊松分佈319
6.1.11泊松分佈的應用319
6.1.12泊松分佈的概率質量函數320
6.1.13補充二項分佈與泊松分佈的關係320
6.1.14實現泊松分佈320
6.1.15補充其他概率分佈323
6.1.16補充指數分佈族323
6.2廣義線性模型基礎325
6.2.1廣義線性模型的組成325
6.2.2概率分佈326
6.2.3術語線性預測算子326
6.2.4術語聯繫函數326
6.2.5聯繫函數與概率分佈的關係327
6.2.6廣義線性模型的參數估計328
6.2.7補充廣義線性模型的檢驗方法328
6. 3 logistic回歸329
6.3.1術語logistic回歸329
6.3.2本節例題329
6.3.3二值分類問題329
6.3.4術語logit函數330
6.3.5術語反函數330
6.3.6術語logistic函數330
6.3. 7 logistic函數的性質331
6.3.8 logistic回歸的推導331
6.3.9 logistic回歸的似然函數332
6.3.10環境準備333
6.3.11實現讀取數據並可視化334
6. 3.12實現logistic回歸335
6.3.13實現logistic回歸的結果336
6.3.14實現模型選擇337
6.3.15實現回歸曲線337
6.3.16實現預測成功概率338
6.3. 17術語優勢339
6.3.18術語優勢比340
6.3.19 logistic回歸的係數與優勢比的關係340
6.4廣義線性模型的評估342
6.4.1環境準備342
6.4.2術語皮爾遜殘差343
6.4.3皮爾遜殘差的含義343
6.4.4實現皮爾遜殘差344
6.4.5術語模型偏差345
6.4.6模型偏差的含義345
6.4.7補充模型偏差與似然比檢驗346
6.4.8術語偏差殘差346
6.4.9實現偏差殘差346
6.4.10補充交叉熵誤差347
6.5泊松回歸349
6.5.1術語泊松回歸349
6.5.2本節例題349
6.5.3泊松回歸的推導349
6.5.4環境準備350
6 .5.5實現泊松回歸351
6.5.6實現模型選擇352
6.5.7實現回歸曲線352
6.5.8回歸係數的含義353
第7章統計學與機器學習355
7.1機器學習基礎356
7.1.1術語機器學習356
7.1.2術語有監督學習356
7.1.3術語無監督學習357
7.1.4補充強化學習357
7.1.5補充規則學習357
7.1.6統計學與機器學習無法徹底分離357
7.1.7統計學注重過程,機器學習注重結果358
7.2正則化、Ridge回歸與Lasso回歸359
7.2.1術語正則化359
7.2.2術語Ridge回歸359
7.2.3術語Lasso回歸361
7.2.4確定正則化強度361
7.2.5將解釋變量標準化361
7.2.6 Ridge回歸與Lasso回歸的估計結果對比362
7.2.7變量選擇與正則化的對比363
7.2.8正則化的意義363
7.3 Python中的Ridge回歸與Lasso回歸365
7.3.1 scikit.learn 365
7.3.2環境準備365
7.3.3實現標準化366
7.3.4定義響應變量368
7.3.5實現普通最小二乘法369
7.3.6實現使用sklearn實現線性回歸370
7.3.7實現Ridge回歸:懲罰指標的影響370
7.3.8實現Ridge回歸:確定最佳正則化強度373
7.3.9實現Lasso回歸:懲罰指標的影響374
7.3.10實現Lasso回歸:確定最佳正則化強度376
7.4線性模型與神經網絡378
7.4.1本節例題378
7.4.2術語輸入向量、目標向量、權重、偏置378
7.4.3術語單層感知機379
7.4.4術語激活函數379
7.4.5從線性模型到神經網絡380
7.4.6術語隱藏層381
7.4.7術語神經網絡381
7.4.8神經網絡的結構381
7.4.9神經網絡中的L2正則化382
7.4.10環境準備382
7 .4.11實現讀入數據並整理383
7.4.12實現logistic回歸385
7.4.13實現標準化387
7.4.14實現神經網絡388
7.4.15線性模型與神經網絡的優點389
7.5擴展內容390
7.5.1數學原理390
7.5.2經典統計學390
7.5.3統計模型391
7.5.4機器學習391
7.5.5模型評估392
7.5 .6數據科學392
參考文獻394
作者介紹
[日]馬場真哉(作者)
出生於日本神戶市,畢業於北海道大學。
經常在個人網站Logics of Blue分享統計學、數據分析與編程知識。
著有《決策分析和預測的活用:從基礎理論懂啊Python實現》《R語言編程和數據分析》《基於貝葉斯統計建模的數據分析入門:使用R和Stan》等。
吳昊天(譯者)
2017年畢業於同濟大學,研究方向是車載軟件。
目前在汽車行業從事代碼遷移工作,業餘參與一些遊戲軟件的國際化工作。