国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

拓端tecdat:R語言RStan MCMC:NUTS采樣算法用LASSO 構(gòu)建貝葉斯線性回歸模型分析職業(yè)

2021-12-27 19:27 作者:拓端tecdat  | 我要投稿

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

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

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

Hamiltonian Monte Carlo(HMC)

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

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

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

Stan 的優(yōu)點

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

示例

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


構(gòu)建 Stan 模型


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


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

數(shù)據(jù)


  1. int<lwer=0> n;

  2. vectr[n] y;

  3. rel<loer=0> a;



參數(shù)


  1. vetor[p+1] beta;

  2. real<lowr=0> siga;


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

  1. vectr[n] liped;

  2. lnpred = X*bea;


模型

  1. bta ~ dolexneial(0,w);

  2. siga ~ gama(a,b);


或沒有矢量化,

  1. for(i in 1:n){

  2. y[i]~noral(X[i,]*beta,siga);

  3. }

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

  1. vecor[n] yprict;

  2. for(i in 1:n){

  3. prdit[i] = nrmlrng(lnprd[i],siga);

對后驗樣本的每一個元素都要評估一次這個代碼。

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

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

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

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

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

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

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

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

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

?在R中運行

  1. library(rstan)

  2. stan(file="byLASO",iter=50000)


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

繪制后驗分布圖


  1. par(mrow=c(1,2))

  2. plot(denty(prs$bea)


預(yù)測分布

  1. plot(density)



鏈診斷

splas[[1][1:5,]


鏈診斷

trac("beta" )


?

鏈診斷

pa(pars="beta")


更多鏈診斷

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

Stan 出錯

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

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


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


自制函數(shù)

Stan 也兼容自制函數(shù)。
如果你的先驗或似然函數(shù)不標準,則很有用。

  1. model {

  2. beta ~ doubexp(0,w);

  3. for(i in 1:n){

  4. logprb(‐0.5*fs(1‐(exp(normalog(

  5. siga))/yde));

  6. }

  7. }


結(jié)論

不要浪費時間編碼和調(diào)整 RWMH.
Stan 運行得更快,會自動調(diào)整,并且應(yīng)該會產(chǎ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)化的深度學習

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

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

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

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

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

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

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

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


拓端tecdat:R語言RStan MCMC:NUTS采樣算法用LASSO 構(gòu)建貝葉斯線性回歸模型分析職業(yè)的評論 (共 條)

分享到微博請遵守國家法律
湘潭市| 扬中市| 榆中县| 丰都县| SHOW| 柳州市| 浙江省| 武隆县| 瓮安县| 曲麻莱县| 淮北市| 万年县| 铜梁县| 嘉鱼县| 雷州市| 江油市| 明溪县| 铁岭县| 东安县| 钦州市| 自治县| 盐亭县| 龙江县| 石景山区| 宾川县| 牟定县| 渝北区| 四平市| 铁力市| 新丰县| 玉龙| 三河市| 定西市| 平南县| 辽宁省| 江城| 惠水县| 巍山| 东平县| 驻马店市| 额济纳旗|