內容簡介
《Python貝葉斯建模與計算》旨在幫助貝葉斯初學者成為中級從業者。本書使用了PyMC3、TensorFlow Probability和Arviz等多個軟體庫的實踐方法,重點是套用統計學的實踐方法,並參考了基礎數學理論。 本書首先回顧了貝葉斯推斷的概念。第2章介紹了貝葉斯模型探索性分析的現代方法。基於這兩個基本原理,接下來的章節介紹了各種模型,包括線性回歸、樣條、時間序列和貝葉斯加性回歸樹。其後幾章討論的主題包括:逼近貝葉斯計算,通過端到端案例研究展示如何在不同環境中套用貝葉斯建模,以及機率程式語言內部構件。最後一章深入講述數學理論或擴展對某些主題的討論,作為本書其餘部分的參考。 《Python貝葉斯建模與計算》由PyMC3、ArviZ、Bambi和TensorFlowProbability等軟體庫的貢獻者撰寫。
圖書目錄
目 錄
第1章 貝葉斯推斷 1
1.1 貝葉斯建模 1
1.1.1 貝葉斯模型 2
1.1.2 貝葉斯推斷介紹 2
1.2 一個自製採樣器,不要隨意嘗試 5
1.3 支持自動推斷,反對自動建模 9
1.4 量化先驗信息的方法 12
1.4.1 共軛先驗 13
1.4.2 客觀先驗 15
1.4.3 最大熵先驗 17
1.4.4 弱信息先驗與正則化先驗 20
1.4.5 先驗預測分布用於評估先驗選擇 21
1.5 練習 21
第2章 貝葉斯模型的探索性分析 25
2.1 貝葉斯推斷前後的工作 25
2.2 理解你的假設 26
2.3 理解你的預測 28
2.4 診斷數值推斷 32
2.4.1 有效樣本量 33
2.4.2 潛在尺度縮減因子( ) 35
2.4.3 蒙特卡羅標準差 35
2.4.4 軌跡圖 37
2.4.5 自相關圖 38
2.4.6 秩圖 38
2.4.7 散度 40
2.4.8 採樣器的參數和其他診斷方法 42
2.5 模型比較 43
2.5.1 交叉驗證和留一法 44
2.5.2 對數預測密度的期望 47
2.5.3 帕累托形狀參數 47
2.5.4 解讀帕累托參數 較大時的p_loo 48
2.5.5 LOO-PIT 49
2.5.6 模型平均 50
2.6 練習 51
第3章 線性模型與機率程式語言 55
3.1 比較兩個或多個組 55
3.2 線性回歸 63
3.2.1 一個簡單的線性模型 65
3.2.2 預測 67
3.2.3 中心化處理 68
3.3 多元線性回歸 70
3.4 廣義線性模型 74
3.4.1 邏輯回歸 75
3.4.2 分類模型 76
3.4.3 解釋對數賠率 81
3.5 回歸模型的先驗選擇 82
3.6 練習 85
第4章 擴展線性模型 87
4.1 轉換預測變數 87
4.2 可變的不確定性 90
4.3 引入互動效應 91
4.4 魯棒的回歸 93
4.5 池化、多級模型和混合效應 97
4.5.1 非池化參數 98
4.5.2 池化參數 100
4.5.3 組混合與公共參數 102
4.6 分層模型 104
4.6.1 後驗幾何形態很重要 107
4.6.2 分層模型的優勢 112
4.6.3 分層模型的先驗選擇 114
4.7 練習 114
第5章 樣條 117
5.1 多項式回歸 117
5.2 擴展特徵空間 118
5.3 樣條的基本原理 120
5.4 使用Patsy軟體庫構建設計矩陣 123
5.5 用PyMC3擬合樣條 125
5.6 選擇樣條的結點和先驗 127
5.7 用樣條對二氧化碳吸收量建模 129
5.8 練習 134
第6章 時間序列 137
6.1 時間序列問題概覽 137
6.2 將時間序列分析視為回歸問題 138
6.2.1 時間序列的設計矩陣 143
6.2.2 基函式和廣義加性模型 144
6.3 自回歸模型 147
6.3.1 隱AR過程和平滑 152
6.3.2 (S)AR(I)MA(X) 154
6.4 狀態空間模型 157
6.4.1 線性高斯狀態空間模型與卡爾曼濾波 158
6.4.2 ARIMA模型的狀態空間表示 161
6.4.3 貝葉斯結構化的時間序列 164
6.5 其他時間序列模型 168
6.6 模型的評判和先驗選擇 168
6.7 練習 170
第7章 貝葉斯加性回歸樹 173
7.1 決策樹 173
7.2 BART模型 176
7.3 BART模型先驗 177
7.3.1 先驗的獨立性 177
7.3.2 樹結構 的先驗 177
7.3.3 葉結點值μij和樹數量m的先驗 178
7.4 擬合貝葉斯加性回歸樹 178
7.5 腳踏車數據的BART模型 178
7.6 廣義BART模型 180
7.7 BART的可解釋性 181
7.7.1 部分依賴圖 182
7.7.2 個體條件期望圖 183
7.8 預測變數的選擇 185
7.9 PyMC3中BART的先驗選擇 187
7.10 練習 188
第8章 逼近貝葉斯計算 191
8.1 超越似然 191
8.2 逼近的後驗 192
8.3 用ABC逼近擬合一個高斯 194
8.4 選擇距離函式、ϵ和統計量 195
8.4.1 選擇距離函式 196
8.4.2 選擇ϵ 197
8.4.3 選擇統計量 199
8.5 g-and-k分布 199
8.6 逼近移動平均 203
8.7 在ABC場景中做模型比較 205
8.7.1 邊際似然與LOO 205
8.7.2 模型選擇與隨機森林 209
8.7.3 MA模型的模型選擇 209
8.8 為ABC選擇先驗 211
8.9 練習 211
第9章 端到端貝葉斯工作流 213
9.1 工作流、上下文和問題 213
9.2 獲取數據 216
9.2.1 抽樣調查 216
9.2.2 試驗設計 216
9.2.3 觀察性研究 216
9.2.4 缺失數據 217
9.2.5 套用示例:收集航班延誤數據 217
9.3 構建不止一個模型 218
9.3.1 在構建貝葉斯模型前需要問的問題 218
9.3.2 套用示例:選擇航班延誤的似然 218
9.4 選擇先驗和預測先驗 220
9.5 推斷和推斷診斷 222
9.6 後驗圖 223
9.7 評估後驗預測分布 224
9.8 模型比較 225
9.9 獎勵函式和決策 228
9.10 與特定客群分享結果 230
9.10.1 分析流程的可重複性 231
9.10.2 理解客群 232
9.10.3 靜態視覺輔助 233
9.10.4 可重複的計算環境 234
9.10.5 套用示例:展示航班延誤模型和結論 234
9.11 試驗性示例:比較兩個組 235
9.12 練習 239
第10章 機率程式語言 241
10.1 PPL的系統工程視角 241
10.2 後驗計算 242
10.2.1 計算梯度 243
10.2.2 示例:近實時推斷 244
10.3 套用編程接口 245
10.3.1 示例:Stan和Slicstan 246
10.3.2 示例:PyMC3和PyMC4 247
10.4 PPL驅動的轉換 248
10.4.1 對數機率 248
10.4.2 隨機變數和分布轉換 250
10.4.3 示例:有界和無界隨機變數之間的採樣比較 251
10.5 操作圖和自動重參數化 252
10.6 異常處理 255
10.7 基礎語言、代碼生態系統、模組化 257
10.8 設計PPL 258
10.9 套用貝葉斯從業者的注意事項 265
10.10 練習 265
第11章 附加主題 267
11.1 機率背景 267
11.1.1 機率 268
11.1.2 條件機率 269
11.1.3 機率分布 270
11.1.4 離散隨機變數及其分布 271
11.1.5 連續隨機變數和分布 275
11.1.6 聯合、條件和邊際分布 279
11.1.7 機率積分轉換 282
11.1.8 期望 284
11.1.9 轉換 285
11.1.10 極限 286
11.1.11 馬爾可夫鏈 288
11.2 熵 290
11.3 Kullback-Leibler散度 292
11.4 信息標準 294
11.5 深入介紹LOO 296
11.6 Jeffrey先驗求導 297
11.6.1 關於θ的二項似然的Jeffrey先驗 298
11.6.2 關於 的二項似然的Jeffrey先驗 299
11.6.3 二項似然的Jeffrey後驗 299
11.7 邊際似然 300
11.7.1 調和平均估計器 300
11.7.2 邊際似然和模型比較 301
11.7.3 貝葉斯因子與WAIC和LOO 303
11.8 移出平面 304
11.9 推斷方法 307
11.9.1 格線方法 307
11.9.2 Metropolis-Hastings 308
11.9.3 哈密頓蒙特卡羅 310
11.9.4 序貫蒙特卡羅 314
11.9.5 變分推斷 315
11.10 編程參考 317
11.10.1 選擇哪種程式語言 317
11.10.2 版本控制 317
11.10.3 依賴項管理和包倉庫 317
11.10.4 環境管理 318
11.10.5 文本編輯器、集成開發環境、筆記 318
11.10.6 本書使用的專用工具 319