docstr: Loglikelihood for observations with data arguments.
  
  Parameters
  ----------
  endog : ndarray
      1d array of endogenous variable.
  exog : ndarray
      2d array of explanatory variables.
  exog_precision : ndarray
      2d array of explanatory variables for precision.
  params : ndarray
      The parameters of the model, coefficients for linear predictors
      of the mean and of the precision function.
  
  Returns
  -------
  loglike : ndarray
      The log likelihood for each observation of the model evaluated
      at `params`.
docstr_tok: ["Loglikelihood","for","observations","with","data","arguments",".","Parameters","--","--","--","--","--","endog",":","ndarray","1d","array","of","endogenous","variable",".","exog",":","ndarray","2d","array","of","explanatory","variables",".","exog_precision",":","ndarray","2d","array","of","explanatory","variables","for","precision",".","params",":","ndarray","The","parameters","of","the","model",",","coefficients","for","linear","predictors","of","the","mean","and","of","the","precision","function",".","Returns","--","--","--","-","loglike",":","ndarray","The","log","likelihood","for","each","observation","of","the","model","evaluated","at","`","params","`","."]
code: def _llobs(self, endog, exog, exog_precision, params):
      """
      Loglikelihood for observations with data arguments.
  
      Parameters
      ----------
      endog : ndarray
          1d array of endogenous variable.
      exog : ndarray
          2d array of explanatory variables.
      exog_precision : ndarray
          2d array of explanatory variables for precision.
      params : ndarray
          The parameters of the model, coefficients for linear predictors
          of the mean and of the precision function.
  
      Returns
      -------
      loglike : ndarray
          The log likelihood for each observation of the model evaluated
          at `params`.
      """
      y, X, Z = endog, exog, exog_precision
      nz = Z.shape[1]
  
      params_mean = params[:-nz]
      params_prec = params[-nz:]
      linpred = np.dot(X, params_mean)
      linpred_prec = np.dot(Z, params_prec)
  
      mu = self.link.inverse(linpred)
      phi = self.link_precision.inverse(linpred_prec)
  
      eps_lb = 1e-200
      alpha = np.clip(mu * phi, eps_lb, np.inf)
      beta = np.clip((1 - mu) * phi, eps_lb, np.inf)
  
      ll = (
          lgamma(phi)
          - lgamma(alpha)
          - lgamma(beta)
          + (mu * phi - 1) * np.log(y)
          + (((1 - mu) * phi) - 1) * np.log(1 - y)
      )
  
      return ll
  
imports: import numpy
  from scipy.special import gammaln
  import patsy
  import statsmodels.base.wrapper
  import statsmodels.regression.linear_model
  from statsmodels.tools.decorators import cache_readonly
  from statsmodels.base.model import GenericLikelihoodModel, GenericLikelihoodModelResults, _LLRMixin
  from statsmodels.genmod import families
label_desc: Use image node_id 8 for calling the BetaModel obj's underlying member method code with example usage: obj._llobs(endog, exog, exog_precision, params) and returns: ll