Distributions

如何從康托分佈中採樣?

  • August 12, 2016

從康托爾分佈中取樣的最佳方法是什麼?它只有 cdf,我們不能反轉它。

簡單:制服樣本從二進制分發和重新編碼到三進制,將每個“1”解釋為“2”。(這是逆概率變換方法:它確實反轉了 CDF!)

數字

這是一個R實現,其編寫方式應該可以輕鬆移植到幾乎任何計算環境。

binary.to.ternary <- function(x) {
 y <- 0
 x <- round(2^52 * x)
 for (i in 1:52) {
   y <- y + 2*(x %% 2)
   y <- y/3
   x <- floor(x/2)
 }
 y
}

n <- 1000
x <- runif(n)
y <- binary.to.ternary(x)
plot(ecdf(y), pch=".")

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

comments powered by Disqus