統計科学

R言語でスライスサンプリング(Slice Sampling)を実装してみた

スライスサンプリング(Slice Sampling)というサンプリング手法 Slice sampling, Radford M. Neal, Source: Ann. Statist. Volume 31, Number 3 (2003), 705-767. [physics/0009028] Slice Sampling についてお勉強していたのでまとめる。以下の文章で「原論…

隠れマルコフモデルで異常検知(R Advent Calendar2012)

R Advent Calendar2012、2日目です。 Tokyo.R主催者である偉大なる我らがグル(尊師)@yokkunsが Tokyo r15 異常検知入門 from Yohei Sato というトークをしていた事に触発されて、R言語で使える”RHmm"パッケージを用いて異常検知してみましたよっていうお話…

レプリカ交換モンテカルロ法(パラレル・テンパリング)による混合ガウス分布に従う乱数の生成

マルコフ連鎖モンテカルロ法(メトロポリス法)による混合ガウス分布に従う乱数の生成 - My Life as a Mock Quant でやった内容の欠点とそれを補うためにもうちょっと高尚な手法である拡張アンサンブル法の1つ「レプリカ交換モンテカルロ法」を用いてやりま…

マルコフ連鎖モンテカルロ法(メトロポリス法)による混合ガウス分布に従う乱数の生成

平均(1,1),(-1,-1)となるような2つのガウシアンを3:7の割合で混ぜ合わせた2次元混合ガウス分布に従う乱数をマルコフ連鎖モンテカルロ法の1つであるメトロポリス法で生成するコードを書いた。 実行すると↓のように混合比率から若干(-1,-1)のガウシアンの方…

モンテカルロ法で条件付期待値計算をする際の試行錯誤−2(Rao-Blackwellization法(条件付きモンテカルロ法))

問題設定 以前試行錯誤した内容 モンテカルロ法で条件付期待値計算をする際の試行錯誤−1 - My Life as a Mock Quant の続き。R言語の書籍「Rによるモンテカルロ法入門」 の4.6「Rao-Blackwellization法と脱条件化」をよく読んでみると私が抱えている問題に…

俺なりの事後分布からのサンプリング

事後分布からのサンプリングを、ブートストラップを駆使して「俺なりのやり方☆2012」でやってみましたという話です。 このやり方の手法名とかこの手の話に詳しい書籍等ご存じな親切な方がいらっしゃいましたらTwitter: @teramonagiまたはコメント欄でご連絡…

EMアルゴリズムによる混合分布のパラメーター推定の解析計算&実装例 from 「Rによるモンテカルロ法入門」

問題設定 R言語の書籍「Rによるモンテカルロ法入門」 のEMアルゴリズムに関連した「練習問題5.14」をpthonの練習がてらEMアルゴリズム構築までの数式もメモりながら解いてみたというお話。問題設定としては という混合分布(分布から確率、分布から確率でサン…

モンテカルロ法で条件付期待値計算をする際の試行錯誤−1

問題設定 ここではある時点における、適当な確率変数の条件付期待値を計算する事を考えたい。例えば適当な確率空間を設定し、以下のような条件付き期待値の計算を行うとする*1。 ・・・(A) ここでは確率測度の下で以下の確率微分方程式に従うものとしている…

各コンテナ要素の『平均・分散・標準偏差』を計算するコード

たまに必要になるんだけど、毎回書き直しているのでメモっておく。 テストコードの結果はR言語と揃ってるのは確認済。 #include <iostream> #include <cmath> #include <vector> #include <list> #include <numeric> template <template<class T, class Allocator = std::allocator<T> > class Container> double mean(Container<double> & x) { return std::accumula</double></template<class></numeric></list></vector></cmath></iostream>…

「最大対数尤度のバイアス補正」について from 書籍:データ解析のための統計モデリング入門

データ解析に携わる人間なら確実に読んでおきたい一冊 通称「久保本」・「緑本」をざっと一通り目を通したけど、「読むだけじゃ力にならないよ、ちゃんと手を動かすよ!」というわけで$4.5.2"最大対数尤度のバイアス補正"を実際にコードを書いてやってみた・…

RcppSMCパッケージを使って逐次モンテカルロ(Sequential Monte Carlo)・粒子フィルタ(Particle Filter)を実行する

前フリ 逐次モンテカルロ・粒子フィルタというのは状態推定*1をシミュレーションに基づいて実行する技でして、最近は「データ同化」なんてワードと絡めて有名になってきている気がしています。アイディアとしてはカルマンフィルタの非線形拡張&解析ベースで…

第20回R勉強会@東京(#TokyoR)でのTalk内容

脳みその体操のために指数分布とポアソン分布について第20回R勉強会@東京(#TokyoR) : ATNDで「指数分布とポアソン分布のいけない関係」というタイトルでお話させていただきました。その際の資料は以下です。 指数分布とポアソン分布のいけない関係 View m…

論文「Determining the density of states for classical statistical models」の実装

またまた友人からモンテカルロ法系の論文を教えてもらったので読んで実装。 その論文は 'Determining the density of states for classical statistical models: A random walk algorithm to produce a flat histogram, Phys. Rev. E 64, 056101 (2001)' こ…

論文「Markov Chain Monte Carlo Method without Detailed Balance」の実装

かなり革新的なマルコフ連鎖モンテカルロ法(MCMC)の論文があるという話を友人に聞いて、実際に読んで見たらこれはすごいぞと。・・・ということでさっそく簡易実装。 書いたプログラムは書き捨てのつもりで書いたんでクラスとか使ってない。その論文という…

マルコフ連鎖モンテカルロ法入門-2

前回「マルコフ連鎖モンテカルロ法入門-1」として作成した資料の続きとして「連続モデル(連続確率分布)をマルコフ連鎖モンテカルロ法で作る方法、熱浴法・メトロポリスヘイスティング法とは何か」を解説した資料を作成した。 前回のよりも内容が難しいので…

マルコフ連鎖モンテカルロ法入門−1

ネット上で見かけるマルコフ連鎖モンテカルロ法資料はどうも小難しいので、 マルコフ連鎖モンテカルロ法は全然難しくないということを伝えるべく平易に解説した資料を作ってみた。2状態離散モデルの解説を中心に、メトロポリス法の解説までを行った。 余裕…