タグ

ブックマーク / statmodeling.hatenablog.com (3)

  • PythonのSymPyで変分ベイズの例題を理解する - StatModeling Memorandum

    この記事の続きです。 ここではPRMLの10.1.3項の一変数ガウス分布の例題(WikipediaのVariational_Bayesian_methodsのA basic exampleと同じ)をSymPyで解きます。すなわちデータが に従い*1、とが、 に従うという状況です。ここでデータ()が得られたとして事後分布を変分ベイズで求めます。 まずはじめに、上記の確率モデルから同時分布を書き下しておきます。 なので、 となります。 この問題は単純なので事後分布は厳密に求まるのですが、ここでは変分ベイズで解きます。すなわち、事後分布をで近似します。さらにと因子分解可能と仮定します。そして、前の記事の最後の2つの式を使って、とが収束するまで繰り返し交互に更新して求めるのでした。以下ではこれをSymPyでやります。 from sympy import * from sympy.stats imp

    PythonのSymPyで変分ベイズの例題を理解する - StatModeling Memorandum
  • 2次元以上のスポット検出を行う統計モデル - StatModeling Memorandum

    1次元の場合の変化点検出は以下の記事で扱いました。 状態空間モデルでシステムノイズに非ガウス分布(1次元の変化点検出) - StatModeling Memorandum 二つの時系列データの間に「差」があるか判断するには - StatModeling Memorandum 変化点検出のポイントは状態空間モデルのシステムモデルに「ほとんどの場合は0の近くの値を生成するが,まれにとても大きな値を生成する」という性質を持つ分布を使うことでした。そこで、上記の例ではコーシー分布を使いました。しかし、コーシー分布はかなり厄介な分布なので逆関数法を利用したコーディングをしないとうまくサンプリングできません。そのため2次元以上の場合の同様のモデル(マルコフ場モデル)に拡張することができません。2次元の場合のマルコフ場モデルについては以下の記事で簡単に扱いました(少しコードが古いです)。詳しくは書籍「S

    2次元以上のスポット検出を行う統計モデル - StatModeling Memorandum
  • 階層ベイズモデルとWAIC - StatModeling Memorandum

    この記事では階層ベイズモデルの場合のWAICとは何か、またその場合のWAICの高速な算出方法について書きます。 背景 以下の2つの資料を参照してください。[1]に二種類の実装が載っています。[2]に明快な理論的補足が載っています。 [1] 階層ベイズとWAIC (清水先生の資料です、slideshare) [2] 階層ベイズ法とWAIC (渡辺先生の資料です、pdf, html) モデル1 資料[1]にあるモデルを扱います。すなわち、 ここでは人数、は人のインデックスです。は個人差を表す値になります。このモデルにおいてはを解析的に積分消去することができて、負の二項分布を使う以下のモデル式と等価になります。 ここでは予測として(WAICとして)2通り考えてみましょう。 以降では事後分布による平均を、分散をと書くことにします。 (1) を持つが、追加で新しく1つのサンプルを得る場合 この場合に

    階層ベイズモデルとWAIC - StatModeling Memorandum
  • 1