このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
slicesample
スライス サンプラー
構文
rnd = slicesample(initial,nsamples,'pdf',pdf)
rnd = slicesample(initial,nsamples,'logpdf',logpdf)
[rnd,neval] = slicesample(initial,...)
[rnd,neval] = slicesample(initial,...,Name,Value)
説明
はスライス サンプリング法を使用して rnd
= slicesample(initial
,nsamples
,'pdf',pdf
)nsamples
無作為標本を生成します (アルゴリズムを参照)。pdf
はターゲットの確率密度関数 (pdf) を指定します。initial
は無作為標本列の初期値を含む行ベクトルまたはスカラーです。
は pdf の対数を使用して、標本を生成します。rnd
= slicesample(initial
,nsamples
,'logpdf',logpdf
)
[
は、スライス サンプリングで行った関数評価の平均回数を返します。rnd
,neval
] = slicesample(initial
,...)
[
は、1 つまたは複数の rnd
,neval
] = slicesample(initial
,...,Name,Value
)Name,Value
のペア引数で指定された追加オプションを使用して、ランダムな標本を生成します。
入力引数
|
初期点、スカラーまたは行ベクトル。 |
|
正の整数、 |
|
|
|
|
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
|
非負整数。返す標本を生成する前に生成および破棄する標本の数。Slice Sampling アルゴリズムは、定常分布が 既定値: |
|
正の整数。 既定値: |
|
現在の標本の周囲にある間隔の幅で、正の値のスカラーまたはベクトル。関数
既定値: |
出力引数
|
|
|
スカラー、標本ごとの関数評価の平均数。
|
例
ヒント
burnin
、thin
、またはwidth
の適切な値を選択するための明確な推奨手順はありません。burnin
とthin
の開始値を選択し、必要に応じてそれらを増加させて、必要な独立性と周辺分布を指定します。width
の調整の効果について詳しくは、Neal の[1]を参照してください。
アルゴリズム
無作為標本列の各点で、slicesample
は密度を "スライス" して次の点を選択し、密度がある値より上にある前の点の近傍を形成します。その結果、標本点は独立でなくなります。列内の近接点は、独立した値の標本からよりも互いに接近している傾向があります。多くの目的で、点のセット全体を対象の分布からの標本として使用できます。ただし、この種の系列相関が問題となる場合、burnin
パラメーターと thin
パラメーターを使用して、この相関を減らすことができます。
slicesample
では、Neal の Slice Sampling アルゴリズム ([1]) を使用しています。このアルゴリズムでは、数値の安定性のために、関数 pdf
を関数 logpdf
に変換します。各レベルのサポート領域のサイズを変更する、"ステップ イン"、"ステップ アウト" と呼ばれるアルゴリズムが、Neal によって提唱されました。
参考文献
[1] Neal, Radford M. "Slice Sampling." Ann. Stat. Vol. 31, No. 3, pp. 705–767, 2003. Available at Project Euclid.
バージョン履歴
R2006a で導入