10D MCMCチェーンがある場合、Rでその事後モードをどのように決定できますか?


10

質問: 10次​​元のMCMCチェーンを使用して、ドローのマトリックスを渡す準備ができているとしましょう。特に複数のモードに関心があります。

バックグラウンド:私自身は計算に精通している統計学者だと思いますが、同僚がこの質問をしたとき、私は合理的な答えを出すことができなかったことを恥ずかしく思いました。主な懸念事項は、複数のモードが表示される可能性があることですが、10次元のうち少なくとも8次元程度が考慮される場合に限られます。私の最初の考えは、カーネル密度推定を使用することでしたが、Rを検索しても、3次元を超える問題については何も約束されませんでした。同僚は10次元のアドホックビニング戦略を提案し、最大値を検索しましたが、帯域幅が重大なスパース性の問題を引き起こすか、複数のモードを識別するための解像度が不足する可能性があるのではないかと心配しています。とは言っても、自動化された帯域幅の提案、10カーネル密度推定器へのリンクなど、知っていることなら何でも喜んで受け入れます。

懸念事項:

  1. ディストリビューションはかなり歪んでいると思われます。したがって、事後平均ではなく事後モードを識別したいとします。

  2. いくつかの事後モードが存在する可能性があることを懸念しています。

  3. 可能であれば、Rベースの提案をお勧めします。しかし、実装するのが信じられないほど難しくない限り、どのようなアルゴリズムでも機能します。最初から自動化された帯域幅選択を備えたNdカーネル密度推定器を実装したくないと思います。


高速モードの推定方法のテーマstats.stackexchange.com/questions/33625
Pavel Ruzankin

回答:


9

最近傍アプローチの使用を検討しましたか?

たとえばk、100'000ポイントごとに最近隣のリストを作成し、近隣の最短距離を持つデータポイントをkthモードと見なします。つまりk、このポイントの周囲にある他のポイントを含む「最小のバブル」を持つポイントを見つけます。

これがどれほど堅牢かはわかりませんが、の選択kが明らかに結果に影響を与えています。


時々私は頭を逆さまにしたいだけです。素晴らしい提案。
M.ティビッツ

1
kmeansRで関数を使用することも考えました。真夜中から午前4時までは質問しないでください。
M.ティビッツ

4

これは部分的な答えにすぎません。

最近、多次元カーネル密度推定にfigtreeを使用しました。これはCパッケージであり、かなり簡単に動作します。ただし、特定のポイントでの密度を推定するためだけに使用し、要約統計量を計算しませんでした。


3

対数尤度を維持する場合は、値が最も高いものを選択できます。また、主にモードに関心がある場合は、最適化を行って対数尤度が最も高い点を見つけるだけで十分です。


これが最も適切な答えです。少なくとも最初の部分です!多くのMCMCシミュレーションでは、(対数)尤度はすべての提案に対して計算されるため、保存できます。または、これまでの最高値とその引数を保存できます。MCMCアルゴリズムが実行したシミュレーション数に収束した場合、これは有効なアプローチです。
西安

2

「PRIM /バンプハンティング」を検討したことがありますか?(たとえば、Tibshiraniらによる「The Elements of Statistical Learning」のセクション9.3を参照するか、お気に入りの検索エンジンに問い合わせてください)。それがRで実装されているかどうかはわかりません。

[私が理解している限り、あなたは100,000行が描かれている確率密度のモードを見つけようとしています。したがって、あなたの問題は適切なdensity estimation方法を見つけることで部分的に解決されます]。


はい、Rビネット付きのプリムパッケージがあります。バンプハンティングにプリムを使用します。ただし、この場合、それがどのように機能するかは明らかではありません。
2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.