Bootstrapなるものが有用ということを知りました。bootstrapはかなりいろいろ役立つよ。Dirichlet分布からデータ重みをsamplingして、その重み上でMAP推定する。これをかき集めるだけ。ネットを検索したところRのbayesbootパッケージなるものを見つけたので今回は試してみます。github.comなお本記事は自分自身も理解が十分ではない部分がありますので、間違い等はあるかもしれませんがよろしくお願いいたします。Bootstrapとは何なのでしょうか。因果推論で有名なRubinによって1981年に紹介された手法のようで、論文は以下になります。projecteuclid.org正直軽く読んでも全くよくわからなかったので、bayesbootの作者の解説記事を見てみます。Bootstrapのモデルとしては以下のようになるようです。πはdが得られる確率となるようです。するのと同じになります。dが離散値や整数のカウントデータの場合は、各値が出る確率を考えることに違和感はないと思いますが。dが連続値のときは違和感のある過程を置く必要があります。3.11が出る確率はとか3.14が出る確率はみたいなことを仮定していく必要があるため奇妙な感じがします*1。Bootstrapはどのような手順で行っているのかを見ていきたいと思います。www.sumsar.netbayesbootの作者の実装上の手順としては以下のようです。同様になるとのことです。例としてはこのように生成するようです。nがサンプルサイズでn1がリサンプリング数で、最後に合計が1になるように正規化していますね。Dirichlet分布で各サンプル毎に重みがついたので、この重みを考慮してリサンプリングを行い、そこで得られたサンプルで統計量を計算するということを行います。Bootstrapで中央値を求めるならばこんな感じです。それを全パターン同様に繰り返し中央値を求めその信頼区間を出すというようなイメージです。Bootstrapに関して見てきたのですが、実際、通常のBootstrapよりもどれくらいいいのかはよくわからないところです*2。Bootstrapと通常のBootstrapの比較をしたいと思います。実験の方針としては以下の記事を真似します。hoxo-m.hatenablog.com実験設定それでは実験の設定を説明します。Bootstrapの期待値の信頼区間*3を求め、その信頼区間の間に真の期待値の値がどの程度入るかを検証していきます。信頼区間は各サンプルサイズごとに100回繰り返します。100回Bootstrap信頼区間を計算し、その100個の信頼区間の中で何回真の期待値が入ったかを比較することになります。100を用意しました。元データの分布はガンマ分布で生成しました。パラメータは形状母数が2、尺度母数が1で期待値が2になります*4。今回実験に使った全コードは以下です。実験の結果としては以下になりました。横軸は元データのサンプルサイズで、縦軸は100回の試行回数のうちどの程度が信頼区間内に真の値が入っているかを示しています。Bootstrapで、青が通常のBootstrapです。Bootstrapの精度が上回っています。Bootstrapが精度を上回ったときのサンプルサイズも50と小さいので、小さいときも有効であることを示唆していますが、小さすぎると駄目なようですね。Bootstrapが有効なのかもしれません。Bootstrapを試してみました。それでも十分に小さいサンプルサイズでも通常のBootstrapよりは精度が出ることが検証できました。Bootstrapは活用していきたいなと思いました。それでは間違い等ありましたら指摘お願いいたします。discrete”ということが書かれていて、捉え方を変えると納得できる部分もあります*2:JMPという統計ソフトウェアの解説ではサンプルサイズが小さくて不確実性が高いときが有効という解説もありますhttp://www.jmp.com/japan/support/help/13/ba-bootstrapping-2.shtml*3:信頼区間としてはいろいろな種類がありますが、今回はパーセンタイル法を利用*4:https://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%B3%E3%83%9E%E5%88%86%E5%B8%83を参考のこと*5:小さすぎないときがどの程度かは難しいですね。»プロフィールid:rf00ブログの内容は個人の意見・見解の表明であり、所属組織の意見・見解を代表したものではありません。千葉出身、大阪は堀江在住の電子情報処理家。紆余曲折あり2017年8月に大阪に移る。途中インスタグラマとしての独立を目指すも大成せず。脱グラマを経て、現在は電子情報を活用したソリューションを提案している。読者になるLinkedIn:S.O.twitter:RFinstagram:r0f00github:RottenFruitsscrapbox:rotten-fruitsご連絡は基本的にLinkedInメッセージか下記メールアドレスにお願いいたします。(1)Instagram@r0f00はてなブログをはじめよう!rf00さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。