monad-bayes-0.1.0.0: benchmark/SSM.hs
module Main where
import Control.Monad.IO.Class
import Control.Monad.Bayes.Sampler
import Control.Monad.Bayes.Weighted
import Control.Monad.Bayes.Population
import Control.Monad.Bayes.Inference.SMC
import Control.Monad.Bayes.Inference.RMSMC
import Control.Monad.Bayes.Inference.PMMH as PMMH
import Control.Monad.Bayes.Inference.SMC2 as SMC2
import NonlinearSSM
main :: IO ()
main = sampleIO $ do
let t = 5
dat <- generateData t
let ys = map snd dat
liftIO $ print "SMC"
smcRes <- runPopulation $ smcMultinomial t 10 (param >>= model ys)
liftIO $ print $ show smcRes
liftIO $ print "RM-SMC"
smcrmRes <- runPopulation $ rmsmcLocal t 10 10 (param >>= model ys)
liftIO $ print $ show smcrmRes
liftIO $ print "PMMH"
pmmhRes <- prior $ pmmh 2 t 3 param (model ys)
liftIO $ print $ show pmmhRes
liftIO $ print "SMC2"
smc2Res <- runPopulation $ smc2 t 3 2 1 param (model ys)
liftIO $ print $ show smc2Res