code: def pdf_link(self, link_f, y, Y_metadata=None):
          
          assert np.atleast_1d(link_f).shape == np.atleast_1d(y).shape
          #return stats.gamma.pdf(obs,a = self.gp_link.transf(gp)/self.variance,scale=self.variance)
          alpha = link_f*self.beta
          objective = (y**(alpha - 1.) * np.exp(-self.beta*y) * self.beta**alpha)/ special.gamma(alpha)
          return np.exp(np.sum(np.log(objective)))
docs: Likelihood function given link(f)
  
          .. math::
              p(y_{i}|\\lambda(f_{i})) = \\frac{\\beta^{\\alpha_{i}}}{\\Gamma(\\alpha_{i})}y_{i}^{\\alpha_{i}-1}e^{-\\beta y_{i}}\\\\
              \\alpha_{i} = \\beta y_{i}
  
          :param link_f: latent variables link(f)
          :type link_f: Nx1 array
          :param y: data
          :type y: Nx1 array
          :param Y_metadata: Y_metadata which is not used in poisson distribution
          :returns: likelihood evaluated for this point
          :rtype: float