Distributions

從偏斜正態分佈抽樣

  • November 28, 2017

作為我的 matlab 項目的一部分,我想從偏正態分佈中抽取樣本。我已經實現了分發的 CDF 和 PDF,但從中採樣仍然困擾著我。

遺憾的是,R 包文檔中對該過程的描述充滿了死鏈接,因此我對該過程進行了一些閱讀。

從分佈中抽樣的一種方法是inverse transform sampling,它使用一個統一的隨機變量並涉及解決

和是我們要從中採樣的分佈的 CDF。因為我不知道如何找到的倒數我自己,我做了一些搜索,發現這個問題被問了好幾次但沒有回答。

編輯:從分佈中抽樣的另一種方法是拒絕抽樣,但是為此我需要找到一個分佈

  1. 我可以從中抽取樣本
  2. 有一個 pdf “在每個點上至少與我們要從中採樣的分佈一樣高,因此前者完全包圍了後者。” (來自拒絕抽樣 wiki 文章)

我已經繪製了偏態正態分佈及其截斷版本(此處截斷為 [0,2.5])。

無限制和截斷偏正態分佈

在我的應用中,我總是將分佈截斷到某個區間,所以我需要找到一個“包含”(希望)所有參數的 SN pdf 的分佈。

有什麼想法可以從這種截斷的偏態正態分佈中進行採樣嗎?

用 cdf 從分佈中模擬隨機變量的最直接方法是首先模擬一個Uniform變量第二個返回逆 cdf 變換. 當逆沒有封閉形式,可以使用數值反演。然而,數值反演可能代價高昂,尤其是在尾部。

密度_可用並被另一個密度支配,即存在一個常數這樣

. 在偏正態分佈的情況下,密度為什麼時候和分別是標準正態分佈的 pdf 和 cdf。(添加位置和比例參數不會修改算法,因為結果只需要重新調整和轉換。) 這種密度似乎非常適合接受-拒絕,因為

作為是一個 CDF。這種不等式意味著運行accept-reject的第一個選項是選擇Normal pdf for和. 這樣就成功了,如下圖所示: 在此處輸入圖像描述

並導致一種算法

T=1e3 #number of simulations
x=NULL
while (length(x)<T){
  y=rnorm(2*T)
  x=c(x,y[runif(2*T)<pnorm(alpha*y)])}
x=x[1:T]

它通過直方圖返回合理的 pdf 擬合:

在此處輸入圖像描述

然而,標準分佈的變換會導致偏態正態變量:如果是獨立同居, 然後

是帶有參數的偏斜正態變量. (考慮到這兩個表示是相同的是一個獨立同住者一對。)

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

comments powered by Disqus