from collections import OrderedDict from matplotlib import pyplot as plt import numpy as np import seaborn as sb import particles from particles import state_space_models as ssm # Data and parameter values from Pitt & Shephard raw_data = np.loadtxt('../../datasets/GBP_vs_USD_9798.txt', skiprows=2, usecols=(3, ), comments='(C)') T = 201 data = 100. * np.diff(np.log(raw_data[:(T + 1)])) my_ssm = ssm.StochVol(mu=2 * np.log(.5992), sigma=0.178, rho=0.9702) # FK models models = OrderedDict() models['bootstrap'] = ssm.Bootstrap(ssm=my_ssm, data=data) models['guided'] = ssm.GuidedPF(ssm=my_ssm, data=data) models['apf'] = ssm.AuxiliaryPF(ssm=my_ssm, data=data) # Get results results = particles.multiSMC(fk=models, N=10**3, nruns=250, moments=True) # Golden standard bigN = 10**5 bigpf = particles.SMC(fk=models['bootstrap'], N=bigN, qmc=True, moments=True) print('One SQMC run with N=%i' % bigN) bigpf.run()
def fkmod(theta): mu = theta[0] rho = theta[1] sigma = theta[2] return ssms.Bootstrap(ssm=ssms.StochVol(mu=mu, rho=rho, sigma=sigma), data=data)
def fkmod(**kwargs): return ssm.Bootstrap(ssm=ssm.StochVol(**kwargs), data=data)
def ssmod(theta): mu = theta[0] rho = theta[1] sigma = theta[2] return ssms.StochVol(mu=mu, rho=rho, sigma=sigma)