R

Stan 中的不同過渡

  • October 21, 2019

直觀地說,“熱身後有 214 個不同的過渡”的警告是什麼意思。意思是?

我知道獲得的樣本是無用的,增加adapter_delta和max_treedepth以及降低步長會有所幫助。此外,重新參數化也有幫助。

我想知道當發生髮散過渡時實際發生了什麼。

在 Stan 參考手冊的第 14.5 節發散轉換中,它指出“哈密頓量發散後沿模擬軌蹟的位置將永遠不會被選為 MCMC 算法的下一次繪製”。這是否意味著在發散過渡之後,隨後的過渡都被拒絕了?因此最後接受的提案(和當前狀態)將在後驗樣本中多次返回?

我注意到,在使用分層模型時,我得到了許多不同的轉換(這在互聯網上的博客中有很好的記錄),但我的一些參數(似乎是)收斂,而其他參數則不是。但是,在聯合模型中,每個命題都應該是一個參數向量,如果這個建議在發散轉換後被拒絕(以及所有其他人,如上所述),所有邊際分佈不應該是發散的嗎?

診斷圖似乎表明,說 $ \mu $ 已經收斂並且 $ \sigma $ 沒有。我的一個例子是 $ \sigma $ 標準偏差為零。我認為這意味著在第一個提案之後存在分歧的過渡,因此所有其他提案 $ \sigma $ 被拒絕,因此, $ \sigma $ 在其返回的樣本中只有一個唯一值。但是,我的樣本 $ \mu $ 曾經(或看起來)很好。但建議不應該 $ (\mu, \sigma) $ 在第一次提案後被拒絕,因此 $ \mu $ sample 也應該只有一個唯一值。

現在考慮一個只有一個參數的模型。假設我的初始命題遠離後驗密度高的區域,並假設這條鏈永遠不會到達後驗密度高的區域。這是當 Stan 返回消息說“熱身後有 x 個不同的轉換。”時嗎?既然它可以看到 MCMC 代碼沒有從感興趣的後驗分佈中採樣“足夠”?

我認為這種直覺是錯誤的一個原因是因為我過去運行過沒有收斂的 MCMC 代碼(僅僅是因為沒有運行足夠的迭代)並且我沒有收到此錯誤消息。

任何人都可以直觀地解釋過渡分歧時發生的情況嗎?如果提案最終到達高後密度區域會發生什麼?是否可以找到 MCMC 採樣器發散的位置,然後丟棄樣本直到它們再次收斂?

如果哈密頓量發散沿著模擬軌蹟的位置將永遠不會被接受。如果我有 214 個發散過渡,這一定意味著我進入了一個發散階段,然後切換回收斂階段,然後又切換到另一個發散階段。否則,我應該只有一個發散過渡。這很難理解,因為根據手冊,在軌跡發散後不接受任何提案,所以在軌跡發散後,它不應該一直發散到最後嗎?另外,為什麼 MCMC 代碼不只是在找到發散軌跡後終止?x 個不同的躍遷如何累積?

Stan 中的發散過渡告訴您,圍繞該發散過渡的後驗分佈區域在幾何上難以探索。

例如,這是手冊中的引述:

歐幾里得 HMC(除了代碼中的錯誤)中的發散轉換的主要原因是後曲率變化很大,因為小步長在某些區域效率太低,而在其他區域發散。如果步長太小,採樣器會變得低效並在掉頭之前停止(達到 NUTS 中的最大樹深度);如果步長太大,哈密頓量模擬就會發散。

https://mc-stan.org/docs/2_19/reference-manual/divergent-transitions.html

基本上,這意味著斯坦提出的哈密頓軌跡與它應該遵循的不同。因此,它預測它應該在參數空間中的某個點具有的 log(密度)的期望值與它在該點的實際值不同。當 Stan 檢測到這個問題時,它就知道出了問題並拒絕該轉換並基本上“再試一次”。這在此處以圖形方式演示:https ://dev.to/martinmodrak/taming-divergences-in-stan-models-5762

您有多個轉換的原因是,由於 Stan 拒絕了該特定轉換,它將嘗試新的轉換,而這些可能會或可能不會導致分歧。現在,您不能在遇到第一個分歧時停止採樣的原因是分歧並不總是一個問題。

例如,如果您擬合一個 idk 為 10/10,000 的轉換發散的模型,並且它們隨機分佈在參數空間中,那麼可能沒有問題。但是,如果您最終將這 10 個不同的轉換集中在參數空間的某個部分(或者您有更多),那麼 Stan 可能無法準確估計您的模型參數。在這種情況下,您應該考慮重新制定模型。基本上,分歧是幫助使您的模型更好的指南,但單個分歧的存在不一定是致命的。

例如,Betancourt 的《哈密頓蒙特卡洛概念介紹》(https://arxiv.org/pdf/1701.02434.pdf)的第 46 頁顯示瞭如何將分歧定位到參數空間的一部分,從而忽略它們/或在你得到對他們來說,充其量只會使您的推斷產生偏差(因為您不包括那個具有挑戰性的區域)。

引用自:https://stats.stackexchange.com/questions/432479

comments powered by Disqus