ベイジアンはどのようにしてモンテカルロシミュレーション法を使用してメソッドを検証しますか?


11

背景:私は社会心理学の博士号を取得しており、理論的な統計と数学は私の定量的な授業ではほとんどカバーされていません。学部と大学院を通して、私は(おそらく社会科学の多くの人と同じように)「古典的な」頻出主義の枠組みを通じて教えられました。今、私はまた、Rを愛し、メソッドの作業が行うことを確認するためにシミュレーション手法を使用しての道を数学的な証明よりも私には感覚的です(ここでも、理論的な統計ではなく、量的社会科学の背景)。頻度論的手法とシミュレーション手法を組み合わせることは、私にとって非常に意味のあることです。常連客は確率を長期的なオッズと見なしているためです(たとえば、これを任意の回数実行すると、50%の確率で発生し、50%の確率になります)。モンテカルロ法でこの長期をシミュレーションできます!

合併症:学部生以来、ベイズ法に非常に気づいていて、人生の中でベイズ側に電話をかけてくる人が常にいて、結果の解釈が簡単で、データの代わりに仮説の確率得られると言ってきました仮説などを与えられました。私は本当にこれに夢中になって、ベイジアンクラスを取り、いくつかのベイジアンの本や論文を読み、現在はスタンとそれに関連するRパッケージにかなり精通しています。

Mayoに入る:「Bayesianはおそらく未来の道だ」としばらく考えた後、私はDeborah Mayoの統計的推論をSevere Testingとして読みました。彼女は本の最初でどちらか一方を選ぶことはないと言いますが、そうします:彼女は常習者であり、本の多くは頻出主義の方法論を擁護しています。私は、彼女が証拠を見る方法が有効であると私たちが考えるかどうかの議論に必ずしも入りたくありませんが、これは私に考えさせました:ベイズが宣伝されているすべては本当にですか?つまり、ベイズの群衆はそれ自体が分裂しているため、ベイジアンフレームワークでデータを分析するための「正しい」方法をよく知りません。通常、私は単に使用しますrstanarm現在のポイントの推定値と信頼できる区間...これは、頻繁に頻度論者の推定値と信頼区間と一致します。私はモデル比較を行うかもしれませんが、ベイズ因子を事後確率比較などとして説明することは常に恐れています。

もっと考える:メイヨーの本を通して私がずっと考えていたのは次のとおりです。コンピュータを使用して頻出主義の方法を確実に機能させる方法があります。なぜなら、確率は長期的に見られるものであり、それをシミュレートできるからです。ベイジアンは、どの確率が実際にあるのかについてさえ合意することができないようです。それは、ベイジアンスクール(デフォルト、主観など)によって異なります。それが私の質問につながります:

質問:長期的に確率が確率として定義されていない場合、モンテカルロシミュレーション法を使用して、ベイズの方法が不確実性を適切に定義している(つまり、有効な信頼できる区間と事後分布を計算する)ことをどのように確認しますか?

:データジェネレータを作成します。これは、0.5の確率でベルヌーイ分布からシミュレーションを行うだけです。

set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
  rbinom(n, 1, p)
}

ここで、ロジスティック回帰の信頼区間が実際に有効であることを確認したいとします。回帰を何度もシミュレートして、実際の母集団の値が95%の時間の95%信頼区間内にあることを確認できます。これは切片のみのモデルなので、p正しく推定していることを確認したいだけです。

set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
  mod <- glm(gen_dat(n, p) ~ 1, binomial)
  conf <- suppressMessages(confint(mod))
  log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)

実行には数分かかりますが、最終的にはmean(results)電話がかかってき0.9416ます。これは約95%であり、glmコマンドは不確実性を有効な方法で説明していると私は確信しています。私が上向きにiterなり、ラップトップでここでもっと長く待ちたければ、それは95%で鼻の右側に近づいたと確信しています。

一方、同じことをベイジアンモデルで近似してみましょう。

library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)

一部、これは私に与えます:

Estimates:
                mean   sd    2.5%   25%   50%   75%   97.5%
(Intercept)    -0.1    0.2  -0.5   -0.2  -0.1   0.0   0.3  
mean_PPD        0.5    0.1   0.3    0.4   0.5   0.5   0.6  
log-posterior -73.0    0.7 -75.1  -73.1 -72.7 -72.5 -72.5  

ベイジアンは確率を長期的に見たものとして定義していないため、シミュレーション方法を使用stan_glmして、不確実性を正確にキャプチャするよりも検証する方法を教えてください。つまり、シミュレーション方法を使用して、これらの信頼できる間隔が有効であることをどのように信頼できますか?現時点では、私は事前確率を定義することすらしていません。事前確率を含めることは、不確実性の測定に影響を与えるので、ここではどのように機能しますか?

スタンでハードルモデルコンポーネントを使用してベータ回帰を最初から作成しようとしたとき、誰かに「データをシミュレートします。何度も実行してください。真の推定値は、信頼できる95程度の間隔である必要があります。時間の割合。」しかし、私にとっては、ベイズ人が信じていることそのものに反対しています!それは確率論の常習的な理解に依存しています!では、ベイジアンはsummary()、モデルの呼び出しから取得している信頼できる区間がシミュレーション手法を使用して不確実性を正確に記述しているとどのように私に納得させるでしょうか?

質問の目的:これは簡単な例ですが、多くの場合、クライアントから難しい問題が出てきます。また、慣れていないことを試すので、シミュレーション調査を頻繁に行って、自分のやっていることが有効であることを確認しています。スタンでカスタムモデルを作成する場合、自分のしていることが正当であることをどのようにして知ることができますか?シミュレーションメソッドを使用して、スタンで行っていることが実際に知りたいことを教えてくれることを確認するにはどうすればよいですか?


3
良い質問。2つのコメント:1.シミュレーション手法を使用して頻出モデルを「検証」できますが、シミュレーションだけでは、頻出モデルの信頼性を完全に知ることはできません。2:ベイジアン/スタンモデルが推論に信頼できないことを知る方法があります。例えば、ウォームアップ期間後に発散する遷移が観察されました。
JTH

1
あなたは2つの異なる種類の「不確実性」を融合していると思います。頻繁な方法は偶然の不確実性を扱い、それらの長期的な特性によって正当化されます。ベイジアン法は認識論的不確実性を扱い、それらの長い特性に基づいて正当化される必要はありません。特に、95%信頼区間は95%信頼区間である必要はありません。それでも、ベイジアンでさえ、「キャリブレーション」されること、つまりフリークエンシーの確率と一致することを望むかもしれません。参照:ルービン、DB。「Bayesianly応用統計学者のための正当と関連する周波数の計算統計1984年の史料:12:。。1151年から1172年
a.arfe

主観的な確率の世界に住んでいるなら、何も検証する必要がないかもしれませんが、間違いではありません
Aksakal

stats.stackexchange.com/questions/2272/…を調べて、少なくとも間隔を置いて、考えていることを実行できない理由を確認することをお勧めします。
デイブ・ハリス

回答:


5

あなたの質問には論理的な問題があると思います。頻出主義のパラダイムでは、母集団の真実を推定し、データを生成し、推定が十分にカバーできるかどうかを確認しても問題ありません。ただし、ベイジアンパラダイムでは、データを生成する根拠はありません。ベイジアンは、データが与えられた場合にそのような真理の確率を尋ねます。そのため、シミュレーションでは、データを生成し、データに条件を付けるさまざまな真理が必要です。実際には、条件付き確率の法則をシミュレートすることになります。条件付き確率の法則は、幸いにも、定義によって常に成り立っています。私はこの正確な問題を2014年のラウダー、 『心理学の速報とレビュー』で取り上げています。 https://dx.doi.org/10.3758/s13423-014-0595-4


1

長期的に確率が確率として定義されていない場合、ベイジアンは、モンテカルロシミュレーション法を使用して、その方法が不確実性を適切に定義している(つまり、有効な信頼できる区間と事後分布を計算する)ことをどのように確認しますか?

ここでの混乱は、ベイズ統計におけるシミュレーション手法の目的に関するものだと思います。ギブスサンプリングやハミルトニアンモンテカルロなどのマルコフ連鎖モンテカルロ法の唯一の目的は、ベイズ規則の分母を計算することです。

もちろん、MCMCを不要にする他の方法も利用できることがよくあります。共役を使用して表現できるモデルもあれば、パラメーター空間に細かいグリッドを適用して表現できるモデルもあれば、受け入れ拒否テストで解決できるモデルもあります。MCMCが役立つのは、積分の動作が不適切な場合です。

π(θ|x)=f(X|θ)π(θ)θΘf(X|θ)π(θ)dθ,
f(X|θ)π(θ)f(X|θ)π(θ|X)合計は1になります。MCMCの目標は、最下位の数を決定することです。下の数字は定数であることに注意してください。期待される可能性です。

その数の精度は、すべてではなく一部のパラメーター推定値を決定します。最大の事後推定量を使用していた場合、MCMCは不要な手順です。代わりに、山登りアルゴリズムを構築する必要があります。一方、事後平均または間隔を決定する必要があります。これは、95%の間隔が何かの95%である必要があり、分母がその何かのスケールを決定するためです。

ベイジアン手法におけるMCMCの目標は、マルコフチェーンを事後密度に収束させることです。それだ。それは何かの妥当性をテストしません。これは、固定小数点値を決定するための単なる試みです。数値積分の一種です。すべての密集した領域がカバーされているかどうかアルゴリズムを無限に実行せずに知る方法はないので、いくつかの人間の判断があります。アルゴリズムは、それが行われたと信じているときにカットオフを持ちますが、それは実際に行われたという意味ではありません。

頻出主義の方法論では、MCMCは、モデルの妥当性をテストするため、または分析的な解が利用できないときに解を数値的に近似するためによく使用されます。ここでは同様の目的は果たしません。

スタンでカスタムモデルを作成する場合、自分のしていることが正当であることをどのようにして知ることができますか?シミュレーションメソッドを使用して、スタンで行っていることが実際に知りたいことを教えてくれることを確認するにはどうすればよいですか?

この質問ははるかに難しいです。Stanは高速アルゴリズムです。つまり、速度と引き換えに不正確さのリスクが追加されます。スタンは、構造上、正しくない場合よりも正しい場合が多くなります。より正確かもしれないが非常に遅い局所最大値をパラメータ空間で広く検索するように設計された他のアルゴリズムがあります。

θΘf(X|θ)π(θ)dθ.

2番目にできることは、別のアルゴリズムで検証することです。数字が一致することは決してありませんが、十分に近いと見なす場合は問題ありません。

3番目に、ほとんどのビルド済みパッケージは、何か問題がある可能性があることを警告します。警告が表示された場合は、問題の原因を調査した後、別のアルゴリズムを使用して再作成しないようにしてください。

Pr(μ)=N(7,22)σ2N(25,.12)

第5に、最初にスタンを開始する前にこれを行う必要があります。限界の可能性を1次元または2次元でグラフ化します。アルゴリズムに干渉する可能性のある驚きはありますか?

ベイジアンは確率を長期的に見たものとして定義していないので、stan_glmが不確実性を正確にキャプチャしていることをシミュレーション方法を使用して検証するにはどうすればよいですか?つまり、シミュレーション方法を使用して、これらの信頼できる間隔が有効であることをどのように信頼できますか?現時点では、私は事前確率を定義することすらしていません。事前確率を含めることは、不確実性の測定に影響を与えるので、ここではどのように機能しますか?

事前を定義しない場合、モデルは無効です。妥当な事前密度を定義していない場合、なぜベイジアンモデルを使用するのでしょうか。頻度モデルは、不良サンプルの収集によって発生する可能性のある最大損失のリスクを最小限に抑えます。それらは非常に悲観的であり、ベイジアン法と同じ結果を生み出すために多くの情報を必要とします。

それでも、事前密度を適切に使用しなければ、それは役に立ちません。事前密度により、ベイジアン法は不良サンプルの選択による平均損失を最小限に抑えることができます。事前分布の情報は重み付けスキームとして機能するため、残念なことに偶然に極端なサンプルが選択された場合、事前分布はデータの役割を弱めます。

編集 私は特定の答えを1つも提供していないことに気付きました。それは問題でした

シミュレーションメソッドを使用して、スタンで行っていることが実際に知りたいことを教えてくれることを確認するにはどうすればよいですか?

X

p1pp{1/3,1/2,2/3}

あなたにとって重要なことですが、ベイジアン予測が真の分布になることは不可能です。3つの分布の1つが真の分布です。ベイズ法は、観測値と事前値に基づいて確率を重み付けします。事後は、真の分布や予測密度になることはありません。

「考えられるすべての説明(パラメーター、モデルなど)のセット全体で6つの頭と2つの尾が現れる確率はどれくらいか」と尋ねています。

H0:p=1/3,

シミュレーションを使用してサンプルを固定する場合、ベイズの定理は数学の定理であるため、スタンは見事に機能することがわかります。事後最適です。あなたが見つけるすべては分母を推定する際にアルゴリズムが自然なエラーレベルまでベイズの定理を正しく実装したということです。

できることは3つあります。最初に、サンプル外のデータに対してモデルスコアリングメソッドを使用できます。次に、ベイジアンモデル選択またはモデル平均化プロセスを使用できます。3番目に、それをフリークエント主義の問題として扱い、推定量の標本分布を構築できます。

第一に、採点方法はそれ自体が完全な文献です。あなたはそれらを研究するべきです。ベイジアンモデルの選択とモデルの平均化では、モデルをパラメーターとして扱います。モデル選択では、モデルが真である確率が計算されます。モデルの平均化では、各モデルが真である確率が計算され、モデル空間に対する重み付けとして機能します。最後に、それをフリークエンティストモデルとして扱うことができます。

最後のものは、前のもののため、多くの標準的なケースで問題になります。3次元以上のモデルと正規分布の場合、事前密度が適切な密度でない場合、事後密度は1に統合されません。言い換えれば、弾丸を噛み、実際の複雑さをもつモデルの事前モデルを選択する必要があります。

正確に中心に置かれた適切な事前の力の存在は、ベイズ法が、改善された情報により対応するフリークエンティスト法よりも優れている場合です。ベイジアン法は、合理的な基準の下で勝つでしょう。これは、Frequentistメソッドの欠陥によるものではありませんが、Bayesianメソッドは外部情報を想定しています。Frequentistメソッドは、サンプルの情報のみを考慮することにより、実際の事前情報がある場合は、情報が少なくなります。

繰り返しますが、本当の事前確率がない場合、なぜベイズ法を使用するのですか?


@Aksakal私はあなたに同意します、それは決定と分析を混同します。削除しました。
デイブ・ハリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.