R

混合分佈的逆 CDF 採樣

  • December 16, 2014

斷章取義的短版

讓是 CDF 的隨機變量

假設我想模擬使用逆 CDF 方法。那可能嗎?這個函數並不完全有逆。然後再次對兩個正態分佈的混合分佈進行逆變換採樣,這表明這裡有一種已知的應用逆變換採樣的方法。

我知道兩步法,但我不知道如何將其應用於我的情況(見下文)。


有背景的長版

我為向量值響應擬合了以下模型,,使用 MCMC(特別是 Stan):

在哪裡索引觀察,是一個相關矩陣,並且是預測變量/回歸變量/特徵的向量。

也就是說,我的模型是一個回歸模型,其中假設響應的條件分佈是具有零膨脹對數正態邊際的高斯 copula。我之前已經發布過這個模型;事實證明,Song、Li 和 Yuan (2009, gated ) 已經開發了它,他們稱之為向量 GLM,或 VGLM。以下是他們的規範,盡可能接近逐字逐句:

我的對應於他們的, 我的對應於他們的, 和我的對應於他們的; 詳細信息在第 62 頁(PDF 文件的第 3 頁),但在其他方面與我在這裡寫的相同。 零膨脹部分大致遵循 Liu 和 Chan(2010,未加限制的規範。

現在我想從估計的參數中模擬數據,但我對如何去做有點困惑。首先我以為我可以模擬直接(在 R 代碼中):

for (i in 1:N) {
   for (k in 1:K) {
       Y_hat <- rbinom(1, 1, 1 - theta[i, k])
       if (Y_hat == 1)
           Y_hat <- rlnorm(1, mu[i, k], sigma[k])
   }
}

哪個不使用一點也不。我想嘗試實際使用我估計的相關矩陣。

我的下一個想法是然後將它們轉換回. 這似乎也與從 R 中的 Copula 生成樣本在 Sklar 的 copula 定理中表達的分佈的雙變量抽樣中的答案一致?. 但到底是我的這裡?兩個正態分佈的混合分佈的逆變換採樣聽起來像是可能的,但我不知道該怎麼做。

有背景的長版的答案:

這個對長版本的回答在某種程度上解決了另一個問題,並且由於我們似乎難以製定模型和問題,我選擇在這裡重新表述它,希望是正確的。

為了 1iI ,目標是模擬向量 yi=(yi1,,yiK) 這樣,以協變量為條件 xi , yik={0 with probability logit1(αkxi) log(σkzik+βkxi) with probability 1logit1(αkxi)

zi=(zi1,,ziK)NK(0,R) . 因此,如果想要模擬來自該模型的數據,可以進行如下操作:

為了 1iI ,

  1. 產生 zi=(zi1,,ziK)NK(0,R)
  2. 產生 ui1,,uiKiidU(0,1)
  3. 派生 y^i_k=\mathbb{I}\left{u^i_k>\operatorname{logit}^{-1}\left( \alpha_k x^i \right)\right}, \log{ \sigma_k z_k^i + \beta_k x^i} 為了 1kK

如果一個人對從後面的一代感興趣 (α,β,μ,σ,R) 鑑於 yik ,這是一個更難的問題,儘管通過 Gibbs 抽樣或 ABC 是可行的。

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