class_docstr: Fit a conditional multinomial logit model to grouped data.
  
  Parameters
  ----------
  endog : array_like
      The dependent variable, must be integer-valued, coded
      0, 1, ..., c-1, where c is the number of response
      categories.
  exog : array_like
      The independent variables.
  groups : array_like
      Codes defining the groups. This is a required keyword parameter.
  
  Notes
  -----
  Equivalent to femlogit in Stata.
  
  References
  ----------
  Gary Chamberlain (1980).  Analysis of covariance with qualitative
  data. The Review of Economic Studies.  Vol. 47, No. 1, pp. 225-238.
class_docstr_tok: ["Fit","a","conditional","multinomial","logit","model","to","grouped","data",".","Parameters","--","--","--","--","--","endog",":","array_like","The","dependent","variable",",","must","be","integer-valued",",","coded","0",",","1",",","...",",","c-1",",","where","c","is","the","number","of","response","categories",".","exog",":","array_like","The","independent","variables",".","groups",":","array_like","Codes","defining","the","groups",".","This","is","a","required","keyword","parameter",".","Notes","--","--","-","Equivalent","to","femlogit","in","Stata",".","References","--","--","--","--","--","Gary","Chamberlain","(","1980",")",".","Analysis","of","covariance","with","qualitative","data",".","The","Review","of","Economic","Studies",".","Vol",".","47",",","No",".","1",",","pp",".","225-238","."]
code: def fit(
      self,
      start_params=None,
      method="BFGS",
      maxiter=100,
      full_output=True,
      disp=False,
      fargs=(),
      callback=None,
      retall=False,
      skip_hessian=False,
      **kwargs,
  ):
      if start_params is None:
          q = self.exog.shape[1]
          c = self.k_cat - 1
          start_params = np.random.normal(size=q * c)
  
      # Do not call super(...).fit because it cannot handle the 2d-params.
      rslt = base.LikelihoodModel.fit(
          self,
          start_params=start_params,
          method=method,
          maxiter=maxiter,
          full_output=full_output,
          disp=disp,
          skip_hessian=skip_hessian,
      )
  
      rslt.params = rslt.params.reshape((self.exog.shape[1], -1))
      rslt = MultinomialResults(self, rslt)
  
      # Not clear what the null likelihood should be, there is no intercept
      # so the null model is not clearly defined.  This is needed for summary
      # to work.
      rslt.set_null_options(llnull=np.nan)
  
      return MultinomialResultsWrapper(rslt)
  
imports: import numpy
  import statsmodels.base.model
  import statsmodels.regression.linear_model
  import statsmodels.base.wrapper
  from statsmodels.discrete.discrete_model import MultinomialResults, MultinomialResultsWrapper
  import collections
  import warnings
  import itertools
label_desc: Use image node_id 2 for calling the ConditionalMNLogit obj's underlying member method code with example usage: obj.fit(start_params, method, maxiter, full_output, disp, fargs, callback, retall, skip_hessian) and returns: MultinomialResultsWrapper