最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

R語言RStan MCMC:NUTS采樣算法用LASSO 構(gòu)建貝葉斯線性回歸模型分析職業(yè)聲望數(shù)據(jù)|附代

2023-09-20 21:07 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=24456

原文出處:拓端數(shù)據(jù)部落公眾號

最近我們被客戶要求撰寫關(guān)于RStan 的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。

如果你正在進(jìn)行統(tǒng)計(jì)分析:想要加一些先驗(yàn)信息,最終你想要的是預(yù)測。所以你決定使用貝葉斯。
但是,你沒有共軛先驗(yàn)。你可能會花費(fèi)很長時(shí)間編寫 Metropolis-Hastings 代碼,優(yōu)化接受率和提議分布,或者你可以使用 RStan。?

Hamiltonian Monte Carlo(HMC)

HMC 是一種為 MH 算法生成提議分布的方法,該提議分布被接受的概率很高。具體算法過程請查看參考文獻(xiàn)。
打個(gè)比方:
給粒子一些動量。
它在滑冰場周圍滑行,大部分時(shí)間都在密度高的地方。
拍攝這條軌跡的快照為后驗(yàn)分布提供了一個(gè)建議樣本。
然后我們使用 Metropolis-Hastings 進(jìn)行校正。

NUTS采樣器(No-U-turn Sampler)

HMC,像RWMH一樣,需要對步驟的數(shù)量和大小進(jìn)行一些調(diào)整。
No-U-Turn Sampler "或NUTs(Hoffman和Gelman(2014)),對這些進(jìn)行了自適應(yīng)的優(yōu)化。
NUTS建立了一組可能的候選點(diǎn),并在軌跡開始自相矛盾時(shí)立即停止。

Stan 的優(yōu)點(diǎn)

可以產(chǎn)生高維度的提議,這些提議被接受的概率很高,而不需要花時(shí)間進(jìn)行調(diào)整。
有內(nèi)置的診斷程序來分析MCMC的輸出。
在C++中構(gòu)建,所以運(yùn)行迅速,輸出到R。

示例

如何使用 LASSO 構(gòu)建貝葉斯線性回歸模型。

構(gòu)建 Stan 模型


數(shù)據(jù):n、p、Y、X 先驗(yàn)參數(shù),超參數(shù)
參數(shù):


模型:高斯似然、拉普拉斯和伽瑪先驗(yàn)。
輸出:后驗(yàn)樣本,后驗(yàn)預(yù)測樣本。

數(shù)據(jù)

int<lwer=0> n;vectr[n] y;rel<loer=0> a;

參數(shù)

vetor[p+1] beta;real<lowr=0> siga;

轉(zhuǎn)換后的參數(shù)(可選)

vectr[n] liped;lnpred = X*bea;

模型

bta ~ dolexneial(0,w);siga ~ gama(a,b);


或沒有矢量化,

for(i in 1:n){y[i]~noral(X[i,]*beta,siga);}

生成的數(shù)量(可選)

vecor[n] yprict;for(i in 1:n){prdit[i] = nrmlrng(lnprd[i],siga);

對后驗(yàn)樣本的每一個(gè)元素都要評估一次這個(gè)代碼。

職業(yè)聲望數(shù)據(jù)集

這里我們使用職業(yè)聲望數(shù)據(jù)集,它有以下變量

教育:職業(yè)在職者的平均教育程度,年。

收入:在職者的平均收入,元。

女性:在職者中女性的百分比。

威望:Pineo-Porter的職業(yè)聲望得分,來自一項(xiàng)社會調(diào)查。

普查:人口普查的職業(yè)代碼。

類型:職業(yè)的類型

bc: 藍(lán)領(lǐng)
prof: 專業(yè)、管理和技術(shù)
wc: 白領(lǐng)

?在R中運(yùn)行

library(rstan)stan(file="byLASO",iter=50000)

?在3.5秒內(nèi)運(yùn)行25000次預(yù)熱和25000次采樣。
第一次編譯c++代碼,所以可能需要更長的時(shí)間。

繪制后驗(yàn)分布圖

par(mrow=c(1,2))plot(denty(prs$bea)


預(yù)測分布

plot(density)


鏈診斷

splas[[1][1:5,]

鏈診斷

trac("beta" )


鏈診斷

pa(pars="beta")


更多鏈診斷

Stan 還可以從鏈中提取各種其他診斷,如置信區(qū)間、有效樣本量和馬爾可夫鏈平方誤差。
鏈的值與各種鏈屬性、對數(shù)似然、接受率和步長之間的比較圖。

Stan 出錯(cuò)

stan使用的步驟太大。
可以通過手動增加期望的平均接受度來解決。
adapt_delta,高于其默認(rèn)的0.8

stan(cntl = list(datta = 0.99, mxrh = 15))


這會減慢你的鏈的速度,但可能會產(chǎn)生更好的樣本。

自制函數(shù)

Stan 也兼容自制函數(shù)。
如果你的先驗(yàn)或似然函數(shù)不標(biāo)準(zhǔn),則很有用。

model {beta ~ doubexp(0,w);for(i in 1:n){logprb(‐0.5*fs(1‐(exp(normalog(siga))/yde));}}

結(jié)論

不要浪費(fèi)時(shí)間編碼和調(diào)整 RWMH.
Stan 運(yùn)行得更快,會自動調(diào)整,并且應(yīng)該會產(chǎn)生較好的樣本。

參考文獻(xiàn)

Alder, Berni J, and T E Wainwright. 1959. “Studies in Molecular Dynamics. I. General Method.” The Journal of Chemical Physics 31 (2). AIP: 459–66.

Hoffman, Matthew D, and Andrew Gelman. 2014. “The No-U-Turn Sampler: Adaptively Setting Path Lengths in Hamiltonian Monte Carlo.” Journal of Machine Learning Research 15 (1): 1593–1623.

最受歡迎的見解

1.matlab使用貝葉斯優(yōu)化的深度學(xué)習(xí)

2.matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)

3.R語言Gibbs抽樣的貝葉斯簡單線性回歸仿真

4.R語言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸

5.R語言中的Stan概率編程MCMC采樣的貝葉斯模型

6.Python用PyMC3實(shí)現(xiàn)貝葉斯線性回歸模型

7.R語言使用貝葉斯 層次模型進(jìn)行空間數(shù)據(jù)分析

8.R語言隨機(jī)搜索變量選擇SSVS估計(jì)貝葉斯向量自回歸(BVAR)模型

9.matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)


R語言RStan MCMC:NUTS采樣算法用LASSO 構(gòu)建貝葉斯線性回歸模型分析職業(yè)聲望數(shù)據(jù)|附代的評論 (共 條)

分享到微博請遵守國家法律
凤凰县| 县级市| 工布江达县| 潍坊市| 长葛市| 修文县| 阿合奇县| 东山县| 东丽区| 婺源县| 盐源县| 无极县| 秦安县| 且末县| 延吉市| 屏边| 静宁县| 裕民县| 烟台市| 瓮安县| 夏河县| 扶沟县| 特克斯县| 甘德县| 阜新市| 公主岭市| 孟州市| 徐汇区| 泽普县| 重庆市| 蓬莱市| 岳普湖县| 盐城市| 搜索| 肃北| 台前县| 宾阳县| 麻城市| 福泉市| 青神县| 长顺县|