def tear_down(self): MetropolisMH.tear_down(self) fit = self._fit # Restore ARF to original state for specresp, arf in zip(self.backup_arfs, self.arfs): arf.specresp = specresp
def __init__(self, fcn, sigma, mu, dof, fit, *args): MetropolisMH.__init__(self, fcn, sigma, mu, dof, *args) self._fit = fit if hasattr(fit.model, 'teardown'): fit.model.teardown() self.srcarfs, self.bkgarfs = search_arfs(fit) # Save a copy of original ARF self.arfs = flatten_arfs(self.srcarfs, self.bkgarfs) self.backup_arfs = [arf.specresp.copy() for arf in self.arfs] self.simarf = None
def init(self, log=False, inv=False, defaultprior=True, priorshape=False, priors=(), originalscale=True, scale=1, sigma_m=False, p_M=.5, simarf=None, p_M_arf=.5, sigma_arf=0.1): # nsubiters is missing from init() to indicate that nubiters=1 for # full bayes if isinstance(simarf, PCA1DAdd): self.simarf = simarf else: self.simarf = ARFSIMFactory()(simarf) if not isinstance(self.simarf, PCA1DAdd): raise TypeError("Simulation ARF must be PCA for FullBayes" + " not %s" % type(self.simarf).__name__) self.accept_arfs = [0] self.p_M_arf = p_M_arf self.rrsig = sigma_arf return MetropolisMH.init(self, log, inv, defaultprior, priorshape, priors, originalscale, scale, sigma_m, p_M)
def init(self, log=False, inv=False, defaultprior=True, priorshape=False, priors=(), originalscale=True, scale=1, sigma_m=False, p_M=.5, simarf=None, nsubiters=10): # Note that nsubiters is used as a dummy parameter to indicate the default # value. See the function WalkWithSubIters.__call__() if isinstance(simarf, (PCA1DAdd, SIM1DAdd)): self.simarf = simarf else: self.simarf = ARFSIMFactory()(simarf) return MetropolisMH.init(self, log, inv, defaultprior, priorshape, priors, originalscale, scale, sigma_m, p_M)
def init(self, log=False, inv=False, defaultprior=True, priorshape=False, priors=(), originalscale=True, scale=1, sigma_m=False, p_M=.5, simarf=None, p_M_arf=.5, sigma_arf=0.1): # nsubiters is missing from init() to indicate that nubiters=1 for # full bayes if isinstance(simarf, (PCA1DAdd,)): self.simarf = simarf else: self.simarf = ARFSIMFactory()(simarf) if not isinstance(self.simarf, (PCA1DAdd,)): raise TypeError("Simulation ARF must be PCA for FullBayes" + " not %s" % type(self.simarf).__name__) self.accept_arfs = [0] self.p_M_arf = p_M_arf self.rrsig = sigma_arf return MetropolisMH.init(self, log, inv, defaultprior, priorshape, priors, originalscale, scale, sigma_m, p_M)