def findLikelihood(q, r, hypo): Q = hypo distancePmf = trianglePrior(r, (1.0/3)) #gaussian distribution of error qstarPmf = thinkbayes.Pmf() for dist, p in distancePmf.Items(): qstar = heatflux(Q, dist) qstarPmf.Set(qstar, p) qstars = sorted(qstarPmf.GetDict().keys()) qNearest = nearestNeighbor(qstars, q) qstar = qstars[qNearest] # if qstar > q: # right = qstarPmf.Prob(qstar) # left = qstarPmf.Prob(qstars[qNearest-1]) # like = (right+left)/2 # else: # left = qstarPmf.Prob(qstar) # right = qstarPmf.Prob(qstars[qNearest+1]) # like = (right+left)/2 like = qstarPmf.Prob(qstar) return like
def Likelihood(self, hypo, data): """ @param hypo: the range of hypothesis used to generate a prior @type hypo: xrange @param data: the values for heatflux and distance from the fire (q, r) @type data: tuple """ q = data[0] r = data[1] q_star = heatflux(hypo, r) error = q-q_star like = thinkbayes.EvalGaussianPdf(0, .01, error) return like