

粒子フィルタの有効サンプルサイズとして、以下の式があります。

[![画像の説明をここに入力](https://i.stack.imgur.com/nDZ5l.png)](https://i.stack.imgur.com/nDZ5l.png)

※オリジナルは以下にあります。  
<https://qiita.com/Crafty_as_a_Fox/items/d70864ab555f91fef720#%E3%83%AA%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0>

また、同じ式は英語版Wikipediaの粒子フィルタでも「effective number of particles」を検索するとでてきます。  
<https://en.wikipedia.org/wiki/Particle_filter>

正規化された数値の配列を、上記のように計算すると0でない配列の個数がわかりますが、なぜこのようになるかがわかりません。

例えば `{0.3, 0.3, 0.3, 0.1, 0.0}` という配列 `w(合計値1.0)` があれば、上の式に当てはめれば  
`1.0/(0.3*0.3+0.3*0.3+0.3*0.3+0.01)` で `3.57` で、4個の要素が `0`
でないとわかりますが、不思議だなと感じてしまいます。  
他の例として、`{0.2, 0.8, 0.0, 0.0}` で(合計値1.0)でも `1/(0.2*0.2+0.8*0.8)` で `1.47`
で2個の要素が `0` でないとわかります。

この点について、どなたか教えていただければ幸いです。


CC BY-SA 4.0
2022-01-14T07:49:47.517
85691
2022-01-15T03:11:57.417
2022-01-14T08:07:56.290
3060
50888
question
アルゴリズム
粒子フィルタの有効サンプルサイズ (Effective Sample Size, ESS)について


まず、この計算式を使っても 0 でない要素の数が厳密に分かる訳ではありません。たとえば `{0.8, 0.1, 0.1}` という配列は要素和が 1 であり
0 でない要素の数は 3 ですが、今回の式で ESS を計算すると約 1.5 となります。

この式の意味については、参照なさっている記事が参考文献として挙げている『[２１世紀の統計科学 Vol.III
数理・計算の統計科学](https://www.jss.gr.jp/book/books/)』（北川源四郎・竹村彰通編。2008）の第 11
章に説明があるので、引用します。

> これは，有効に活用されている粒子の数を与える指標である．重み値が全粒子について均等の場合，すなわち，全粒子が等しく活用されている場合，ESS = M
> となる．一方，ある一つの粒子のみが非零重み値を持ち，他の全ての粒子は重み値 0 を持つ極端な場合には，ESS = 1
> となる．これは一つの粒子のみが活用され他の粒子は全く活用されていないことに相当する．ESS
> の値について，実際上は適当な閾値を設けて，リサンプリングを行うかどうかを判断することになる．

つまり、0 でない要素の個数を数えているのではなくて、大体どのくらいの個数が寄与しているのかを実数値で近似する式として使われています。

※おそらくこの ESS は Kish の ESS と呼ばれている近似式の特別な場合なのではないかと思いますが、手元に文献が無くて調べ切れていません。


CC BY-SA 4.0
2022-01-15T03:11:57.417
85705
2022-01-15T03:11:57.417
19110
85691
answer