Source code for pymcmcstat.procedures.PriorFunction

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 18 09:10:21 2018

Description: Prior function

@author: prmiles
"""
# Import required packages
import numpy as np


[docs]class PriorFunction: ''' Prior distribution functions. Attributes: * :meth:`default_priorfun` * :meth:`evaluate_prior` ''' def __init__(self, priorfun=None, mu=np.array([0]), sigma=np.array([np.inf])): self.mu = mu self.sigma = sigma # Setup prior function and evaluate if priorfun is None: priorfun = self.default_priorfun self.priorfun = priorfun # function handle
[docs] @classmethod def default_priorfun(cls, theta, mu, sigma): ''' Default prior function - Gaussian. .. math:: \\pi_0(q) = \\frac{1}{\\sigma\\sqrt{2\\pi}}\\exp \ \\Big[-\\frac{1}{2}\\Big(\\frac{q - \ \\mu}{\\sigma}\\Big)^2\\Big] Args: * **theta** (:class:`~numpy.ndarray`): Current parameter values. * **mu** (:class:`~numpy.ndarray`): Prior mean. * **sigma** (:class:`~numpy.ndarray`): Prior standard deviation. ''' # proposed numpy implementation res = (mu - theta)/sigma pf = np.dot(res.reshape(1, res.size), res.reshape(res.size, 1)) return pf
[docs] def evaluate_prior(self, theta): ''' Evaluate the prior function. Args: * **theta** (:class:`~numpy.ndarray`): Current parameter values. ''' return self.priorfun(theta, self.mu, self.sigma)