'The log-likelihood function in terms of the fitted mean response.
Parameters
endog : array-like
Endogenous response variable
mu : array-like
Fitted mean response variable
iweights : array-like
1d array of weights. The default is 1.
scale : float, optional
The default is 1.
Returns
llf : float
The value of the loglikelihood function evaluated at
(endog,mu,iweights,scale) as defined below.
Notes
.. math::
llf = -1 / scale * \sum_i *(Y_i / \mu_i+ \log(\mu_i)+
(scale -1) * \log(Y) + \log(scale) + scale *
\ln \Gamma(1 / scale))'

def loglike(self, endog, mu, iweights=1.0, scale=1.0):

    endog_mu = self._clean((endog / mu))
    return ((- np.sum((((((endog_mu - np.log(endog_mu)) + (scale * np.log(endog))) + np.log(scale)) + (scale * special.gammaln((1.0 / scale)))) * iweights))) / scale)
