def deviance(self, endog, mu, freq_weights=1., scale=1.):
        r"""
        Gamma deviance function

        Parameters
        -----------
        endog : array-like
            Endogenous response variable
        mu : array-like
            Fitted mean response variable
        freq_weights : array-like
            1d array of frequency weights. The default is 1.
        scale : float, optional
            An optional scale argument. The default is 1.

        Returns
        -------
        deviance : float
            Deviance function as defined below

        Notes
        -----
        .. math::

           D = 2 * \sum_i freq\_weights_i * ((Y_i - \mu_i)/\mu_i - \log(Y_i /
               \mu_i))
        """
        endog_mu = self._clean(endog/mu)
        return 2*np.sum(freq_weights*((endog-mu)/mu-np.log(endog_mu)))
dataset/ETHPy150Open statsmodels/statsmodels/statsmodels/genmod/families/family.py/Gamma.deviance/original