原文連接:http://tecdat.cn/?p=6252
R的Stan
可以從許多統計軟件包中運行Stan。到目前為止,我一直在從R運行Stan,首先按照快速入門指南中的說明安裝並運行所有內容。
簡單線性回歸
第一步是為Stan模型編寫文件。這包含一個文件linreg.stan:
該文件的第一部分稱為數據,它聲明了將作為輸入傳遞給Stan的標量,向量和矩陣。
接下來,我們可以通過運行以下R代碼來模擬數據集,並使用Stan和我們的文件linreg.stan來擬合模型:
第一次安裝Stan模型時,模型編譯成C ++時會有幾秒鍾的延遲。然而,正如Stan的開發人員描述的那樣,一旦編譯了模型,就可以將其應用於新的數據集而無需重復編譯過程(在執行模擬研究的背景下具有很大的優勢。
在上面的代碼中,我們要求Stan運行4個獨立的鏈,每個鏈有1000次迭代。運行后,我們可以通過以下方式匯總輸出:
對於回歸斜率β,我們的后驗均值為0.95(接近用於模擬數據的真實值1)。為了形成95%的后可信區間,我們簡單地采用取樣后部的2.5%和97.5%的百分位數,這里是0.75到1.17。
您可以從擬合的模型中獲取各種其他數量。一種是繪制其中一個模型參數的后驗分布。要獲得回歸斜率,我們可以執行以下操作:
β的后驗分布直方圖
現在讓我們使用標准普通最小二乘擬合線性模型:
這給出了我們對斜率0.95的估計,與Stan的后驗平均值相差2位小數,標准誤差為0.11,這與Stan的后驗SD相同。
stan和貝葉斯推理
有興趣探索Stan並使用它來執行貝葉斯推理,這是出於測量誤差和數據缺失的問題。正如多年前WinBUGS和其他人的作者所描述和展示的那樣,貝葉斯方法在解決不同的不確定性來源問題時非常自然,這些不確定性來源超出參數不確定性,例如缺失數據或用誤差測量的協變量。實際上,對於缺失數據的流行的多重插補方法是在貝葉斯范式內發展的,並且實際上可以被視為對完整貝葉斯分析的近似。