R語(yǔ)言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸
原文鏈接:http://tecdat.cn/?p=11617
?
在這篇文章中,我將對(duì)多元線性回歸做同樣的事情。我將得出block的Gibbs采樣器所需的條件后驗(yàn)分布。然后,我將對(duì)采樣器進(jìn)行編碼,并使用模擬數(shù)據(jù)對(duì)其進(jìn)行測(cè)試。
?
?貝葉斯模型
假設(shè)我們有一個(gè)樣本量的

主題。 貝葉斯多元回歸假設(shè)該向量是從多元正態(tài)分布中提取的 ,通過(guò)使用恒等矩陣,我們假設(shè)獨(dú)立的觀察結(jié)果。正式地,

到目前為止,這與 環(huán)境中看到的多元正態(tài)回歸相同。 則將概率最大化可得出以下解 :

貝葉斯模型是通過(guò)指定為一個(gè)先驗(yàn)分布得到 。在此示例中,我將在以下情況下使用 先驗(yàn)值?

?
?
block Gibbs
在對(duì)采樣器進(jìn)行編碼之前,我們需要導(dǎo)出Gibbs采樣器的 每個(gè)參數(shù)的后驗(yàn)條件分布。
?

條件后驗(yàn)

取更多的線性代數(shù)。

這是一個(gè)非常漂亮和直觀的結(jié)果。 條件后驗(yàn)的協(xié)方差矩陣是協(xié)方差矩陣的頻繁估計(jì),

還要注意,條件后驗(yàn)是一個(gè)多元分布,因?yàn)樗?/p>
是一個(gè)向量。因此,在Gibbs采樣器的每次迭代中,我們從后驗(yàn)畫(huà)出一個(gè)完整的矢量 。
模擬
?
我模擬的 結(jié)果向量

。?
運(yùn)行 Gibbs采樣器 會(huì)生成對(duì)真實(shí)系數(shù)和方差參數(shù)的估計(jì)。運(yùn)行了500,000次迭代。修整周期為100,000次,修整了10次迭代。
以下是MCMC鏈的圖,其中真實(shí)值用紅線表示。
# 計(jì)算后驗(yàn)摘要統(tǒng)計(jì)信息(未在其余代碼中使用的統(tǒng)計(jì)信息)
post_sum_stats<-post_dist %>%
group_by(param) %>%
summarise(median=median(draw),
lwr=quantile(draw,.025),
upr=quantile(draw,.975)) %>%
mutate(true_vals=c(tb,tphi))
# 合并匯總統(tǒng)計(jì)信息
post_dist <- post_dist %>%
left_join(post_sum_stats, by='param')
# 繪制MCMC鏈
ggplot(post_dist,aes(x=iter,y=draw)) +
geom_line() +
geom_hline(aes(yintercept=true_vals, col='red'), show.legend=FALSE)+
facet_grid(param ~ .,scale='free_y',switch = 'y') +
theme_bw() +
xlab('Gibbs Sample Iteration') + ylab('MCMC Chains') +
ggtitle('Gibbs Sampler MCMC Chains by Parameter')

這是 修整后參數(shù)的后驗(yàn)分布:
ggplot(post_dist,aes(x=draw)) +
geom_histogram(aes(x=draw),bins=50) +
geom_vline(aes(xintercept = true_vals,col='red'), show.legend = FALSE) +
facet_grid(. ~ param, scale='free_x',switch = 'y') +
theme_bw() +
xlab('Posterior Distributions') + ylab('Count') +
ggtitle('Posterior Distributions of Parameters (true values in red)')
?

?
似乎我們能夠獲得這些參數(shù)的合理后驗(yàn)估計(jì)。 為了確保貝葉斯估計(jì)器正常工作,我對(duì)1,000個(gè)模擬數(shù)據(jù)集重復(fù)了此練習(xí)。
這將產(chǎn)生1,000組后驗(yàn)均值和1,000組95%可信區(qū)間。平均而言,這1000個(gè)后驗(yàn)均值應(yīng)以事實(shí)為中心。平均而言,真實(shí)參數(shù)值應(yīng)在95%的時(shí)間的可信區(qū)間內(nèi)。
以下是這些評(píng)估的摘要。

?
“估計(jì)平均值”列是所有1,000個(gè)模擬中的平均后驗(yàn)平均值。非常好。偏差百分比均小于5%。對(duì)于所有參數(shù),95%CI的覆蓋率約為95%。
?
擴(kuò)展?
我們可以對(duì)該模型進(jìn)行許多擴(kuò)展。例如,可以使用除正態(tài)分布外的其他分布來(lái)適應(yīng)不同類型的結(jié)果。?例如,如果我們有二元數(shù)據(jù),則可以將其建模為:

然后在上放一個(gè)先驗(yàn)分布

。這個(gè)想法將貝葉斯線性回歸推廣到貝葉斯GLM。
在本文中概述的線性情況下,可以更靈活地對(duì)協(xié)方差矩陣建模。相反,假設(shè)協(xié)方差矩陣是對(duì)角線且具有單個(gè)公共方差。這是多元線性回歸中的同方差假設(shè)。如果數(shù)據(jù)是聚類的(例如,每個(gè)受試者有多個(gè)觀察結(jié)果),我們可以使用反Wishart分布來(lái)建模整個(gè)協(xié)方差矩陣。
?

最受歡迎的見(jiàn)解?
1.matlab使用貝葉斯優(yōu)化的深度學(xué)習(xí)
2.matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)
3.R語(yǔ)言Gibbs抽樣的貝葉斯簡(jiǎn)單線性回歸仿真
4.R語(yǔ)言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸
5.R語(yǔ)言中的Stan概率編程MCMC采樣的貝葉斯模型
6.Python用PyMC3實(shí)現(xiàn)貝葉斯線性回歸模型
7.R語(yǔ)言使用貝葉斯 層次模型進(jìn)行空間數(shù)據(jù)分析
8.R語(yǔ)言隨機(jī)搜索變量選擇SSVS估計(jì)貝葉斯向量自回歸(BVAR)模型
9.matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)