class_docstr: Negative Binomial regression
  
  Parameters
  ----------
  endog : array_like
      1-d array of the response variable.
  exog : array_like
      `exog` is an n x p array where n is the number of observations and p
      is the number of regressors including the intercept if one is
      included in the data.
  ll_type: str
      log-likelihood type
      `nb2`: Negative Binomial type-2 (most common)
      `nb1`: Negative Binomial type-1
      `nbp`: Negative Binomial type-P (Greene, 2008)
      `nbt`: Left-truncated Negative Binomial (type-2)
      `geom`: Geometric regression model
  C: int
      Cut-point for `nbt` model
code: def nloglikeobs(self, params):
      alph = params[-1]
      beta = params[: self.exog.shape[1]]
      if self.ll_type == "geom":
          return -self.ll_func(self.endog, self.exog, beta)
      elif self.ll_type == "nbt":
          return -self.ll_func(
              self.endog, self.exog, beta, alph, self.C
          )
      elif self.ll_type == "nbp":
          Q = params[-2]
          return -self.ll_func(self.endog, self.exog, beta, alph, Q)
      else:
          return -self.ll_func(self.endog, self.exog, beta, alph)
  
imports: from urllib.request import urlopen
  import numpy
  from numpy.testing import assert_almost_equal
  from scipy.special import digamma
  from scipy.stats import nbinom
  import pandas
  import patsy
  from statsmodels.base.model import GenericLikelihoodModel
  from statsmodels.base.model import GenericLikelihoodModelResults
label_desc: Use image node_id 2 for calling the NBin obj's underlying member method code with example usage: obj.nloglikeobs(params) and returns: unknown, unknown, unknown, unknown