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

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

拓端tecdat|R語(yǔ)言Metropolis Hastings采樣和貝葉斯泊松回歸Poisson模型

2021-08-24 17:09 作者:拓端tecdat  | 我要投稿

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

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

在本文中,我想向你展示如何使用R的Metropolis采樣從貝葉斯Poisson回歸模型中采樣。

Metropolis-Hastings算法

Metropolis-Hastings抽樣算法是一類馬爾科夫鏈蒙特卡洛(MCMC)方法,其主要思想是生成一個(gè)馬爾科夫鏈

使其平穩(wěn)分布為目標(biāo)分布。這種算法最常見(jiàn)的應(yīng)用之一是在貝葉斯統(tǒng)計(jì)中從后驗(yàn)密度中取樣,這也是本文的目標(biāo)。

該算法規(guī)定對(duì)于一個(gè)給定的狀態(tài)Xt,如何生成下一個(gè)狀態(tài)?

?有一個(gè)候選點(diǎn)Y,它是從一個(gè)提議分布?

,中生成的,根據(jù)決策標(biāo)準(zhǔn)被接受,所以鏈條在時(shí)間t+1時(shí)移動(dòng)到狀態(tài)Y,即Xt+1=Y或被拒絕,所以鏈條在時(shí)間t+1時(shí)保持在狀態(tài)Xt,即Xt+1=Xt。

Metropolis 采樣

在Metropolis算法中,提議分布是對(duì)稱的,也就是說(shuō),提議分布??

滿足

?

,所以Metropolis采樣器產(chǎn)生馬爾科夫鏈的過(guò)程如下。

  1. 選擇一個(gè)提議分布

  1. . 在選擇它之前,了解這個(gè)函數(shù)中的理想特征。

  2. 從提議分布g中生成X0。

  3. 重復(fù)進(jìn)行,直到鏈?zhǔn)諗康揭粋€(gè)平穩(wěn)的分布。

  • 從?

  • 生成Y.

  • 從Uniform(0, 1)中生成U。

  • 如果?

  • , 接受Y并設(shè)置Xt+1=Y,否則設(shè)置Xt+1=Xt。這意味著候選點(diǎn)Y被大概率地接受

  • .

  • 遞增t.

貝葉斯方法

正如我之前提到的,我們要從定義為泊松回歸模型的貝葉斯中取樣。

對(duì)于貝葉斯分析中的參數(shù)估計(jì),我們需要找到感興趣的模型的似然函數(shù),在這種情況下,從泊松回歸模型中找到。

現(xiàn)在我們必須為每個(gè)參數(shù)β0和β1指定一個(gè)先驗(yàn)分布。我們將對(duì)這兩個(gè)參數(shù)使用無(wú)信息的正態(tài)分布,β0~N(0,100)和β1~N(0,100) 。

最后,我們將后驗(yàn)分布定義為先驗(yàn)分布和似然分布的乘積。

使用Metropolis采樣器時(shí),后驗(yàn)分布將是目標(biāo)分布。

計(jì)算方法

這里你將學(xué)習(xí)如何使用R語(yǔ)言的Metropolis采樣器從參數(shù)β0和β1的后驗(yàn)分布中采樣。

數(shù)據(jù)

首先,我們從上面介紹的泊松回歸模型生成數(shù)據(jù)。

  1. n <- 1000 # ?樣本大小

  2. J <- 2 # 參數(shù)的數(shù)量

  3. X <- runif(n,-2,2) # 生成自變量的值

  4. beta <- runif(J,-2,2) #生成參數(shù)的值

  5. y <- rpois(n, lambda = lambda) # 生成因變量的值

似然函數(shù)

現(xiàn)在我們定義似然函數(shù)。在這種情況下,我們將使用這個(gè)函數(shù)的對(duì)數(shù),這是強(qiáng)烈建議的,以避免在運(yùn)行算法時(shí)出現(xiàn)數(shù)字問(wèn)題。

  1. LikelihoodFunction <- function(param){

  2. beta0 <- param[1]

  3. beta1 <- param[2]

  4. lambda <- exp(beta1*X + beta0)

  5. # 對(duì)數(shù)似然函數(shù)

  6. loglikelihoods <- sum(dpois(y, lambda = lambda, log=T))

  7. return(loglikelihoods)

  8. }

先驗(yàn)分布

接下來(lái)我們定義參數(shù)β0和β1的先驗(yàn)分布。與似然函數(shù)一樣,我們將使用先驗(yàn)分布的對(duì)數(shù)。


  1. beta0prior <- dnorm(beta0, 0, sqrt(100), log=TRUE)

  2. beta1prior <- dnorm(beta1, 0, sqrt(100), log=TRUE)

  3. return(beta0prior + beta1prior) #先驗(yàn)分布的對(duì)數(shù)

后驗(yàn)分布

由于我們是用對(duì)數(shù)工作的,我們把后驗(yàn)分布定義為似然函數(shù)的對(duì)數(shù)與先驗(yàn)分布的對(duì)數(shù)之和。記住,這個(gè)函數(shù)是我們的目標(biāo)函數(shù)f(.),我們要從中取樣。

提議函數(shù)

最后,我們定義提議分布g(.|Xt)。由于我們將使用Metropolis采樣器,提議分布必須是對(duì)稱的,并且取決于鏈的當(dāng)前狀態(tài),因此我們將使用正態(tài)分布,其平均值等于當(dāng)前狀態(tài)下的參數(shù)值。

Metropolis 采樣器

最后,我們編寫代碼,幫助我們執(zhí)行Metropolis采樣器。在這種情況下,由于我們使用的是對(duì)數(shù),我們必須將候選點(diǎn)Y被接受的概率定義為。

  1. # 創(chuàng)建一個(gè)數(shù)組來(lái)保存鏈的值

  2. chain[1, ] <- startvalue # 定義鏈的起始值

  3. for (i in 1:iterations){

  4. # 從提議函數(shù)生成Y

  5. Y <- ProposalFunction(chain[i, ])

  6. # 候選點(diǎn)被接受的概率

  7. PosteriorFunction(chain[i, ]))

  8. # 接受或拒絕Y的決策標(biāo)準(zhǔn)

  9. if (runif(1) < probability) {

  10. chain[i+1, ] <- Y

  11. }else{

  12. chain[i+1, ] <- chain[i, ]

由于MCMC鏈具有很強(qiáng)的自相關(guān),它可能產(chǎn)生的樣本在短期內(nèi)無(wú)法代表真實(shí)的基礎(chǔ)后驗(yàn)分布。那么,為了減少自相關(guān),我們可以只使用鏈上的每一個(gè)n個(gè)值來(lái)稀釋樣本。在這種情況下,我們將在算法的每20次迭代中為我們的最終鏈選擇一個(gè)值。

  1. startvalue <- c(0, 0) # 定義鏈條的起始值

  2. #每20次迭代選擇最終鏈的值

  3. for (i in 1:10000){

  4. if (i == 1){

  5. cfinal[i, ] <- chain[i*20,]

  6. } else {

  7. cfinal[i, ] <- chain[i*20,]


  8. # 刪除鏈上的前5000個(gè)值

  9. burnIn <- 5000

在這里,你可以看到ACF圖,它給我們提供了任何序列與其滯后值的自相關(guān)值。在這種情況下,我們展示了初始MCMC鏈的ACF圖和對(duì)兩個(gè)參數(shù)的樣本進(jìn)行稀釋后的最終鏈。從圖中我們可以得出結(jié)論,所使用的程序?qū)嶋H上能夠大大減少自相關(guān)。

結(jié)果

在這一節(jié)中,我們介紹了由Metropolis采樣器產(chǎn)生的鏈以及它對(duì)參數(shù)β0和β1的分布。參數(shù)的真實(shí)值由紅線表示。

與glm()的比較

現(xiàn)在我們必須將使用Metropolis采樣得到的結(jié)果與glm()函數(shù)進(jìn)行比較,glm()函數(shù)用于擬合廣義linera模型。

下表列出了參數(shù)的實(shí)際值和使用Metropolis采樣器得到的估計(jì)值的平均值。

  1. ## ? ? ? True value Mean MCMC ? ? ? glm

  2. ## beta0 ?1.0578047 1.0769213 1.0769789

  3. ## beta1 ?0.8113144 0.8007347 0.8009269

結(jié)論

從結(jié)果來(lái)看,我們可以得出結(jié)論,使用Metropolis采樣器和glm()函數(shù)得到的泊松回歸模型的參數(shù)β0和β1的估計(jì)值非常相似,并且接近于參數(shù)的實(shí)際值。另外,必須認(rèn)識(shí)到先驗(yàn)分布、建議分布和鏈的初始值的選擇對(duì)結(jié)果有很大的影響,因此這種選擇必須正確進(jìn)行。

最受歡迎的見(jiàn)解

1.R語(yǔ)言多元Logistic邏輯回歸 應(yīng)用案例

2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實(shí)現(xiàn)

3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)

4.R語(yǔ)言泊松Poisson回歸模型分析案例

5.R語(yǔ)言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗(yàn)

6.r語(yǔ)言中對(duì)LASSO回歸,Ridge嶺回歸和Elastic Net模型實(shí)現(xiàn)

7.在R語(yǔ)言中實(shí)現(xiàn)Logistic邏輯回歸

8.python用線性回歸預(yù)測(cè)股票價(jià)格

9.R語(yǔ)言如何在生存分析與Cox回歸中計(jì)算IDI,NRI指標(biāo)


拓端tecdat|R語(yǔ)言Metropolis Hastings采樣和貝葉斯泊松回歸Poisson模型的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
敦化市| 辛集市| 饶阳县| 连云港市| 长子县| 樟树市| 怀柔区| 苗栗市| 项城市| 白河县| 徐闻县| 上栗县| 河南省| 张家口市| 理塘县| 泰州市| 梓潼县| 临海市| 防城港市| 盐城市| 克东县| 闻喜县| 叙永县| 翁牛特旗| 毕节市| 资兴市| 高阳县| 随州市| 门源| 丰台区| 澳门| 祁连县| 曲水县| 巴彦淖尔市| 定陶县| 吐鲁番市| 邹城市| 云梦县| 长乐市| 迁安市| 平陆县|