def ests_ll_exact(self, params):
"""
Calculate the loglikelihood given model parameters `params`.
This method uses an exact integral and returns exact ll values, i.e.
it does not use quadrature to approximate the integral.
"""
mu, gamma, err = np.split(params, 3)
d = self.num2 - mu
q = self.w2 / err**2
r = d * q
f = self.w2 @ (2 * np.log(abs(err)) + LOG2PI)
a = q @ gamma**2
b = r @ gamma
c = nsum_row(d * r)
return .5 * (b * b / (a+1) - c - f - np.log1p(a))
评论列表
文章目录