読者です 読者をやめる 読者になる 読者になる

とあるモデルのMCMC

C++ MCMC

飽きもせずにGibbs Samplingとかばっかりやってますが、久しぶりにはまった。離散確率分布とかからサンプリングするのにrandとかを使ってたんだけど、これがとてもとてもとてもいけなかった。CとかC++のrandは線形合同法で実装されているとかで周期性が問題になる場合があるが、これがとてもとてもとても問題になった。対数尤度を見てるとそれなりに収束したのかなと思ってとあるF値を観察していたんだけど、こんな感じの推移を示した。
Quartz 2 [*]
ちなみに、これは10個の平均をplotしたものである。平均してこれである。死んでしまえ。

200くらいで周期があるように見うけられたので、(半日くらい経って)boostのメルセンヌツイスターに切り変えてみた。これである。
Quartz 2 [*]

MCMCするときにrandは使っちゃだめだよっていうのは常識なんですよね、きっと。ようやく身を持って勉強いたしましたまる。