class_docstr: Short Panel with general intertemporal within correlation
  
  assumes data is stacked by individuals, panel is balanced and
  within correlation structure is identical across individuals.
  
  It looks like this can just inherit GLS and overwrite whiten
class_docstr_tok: ["Short","Panel","with","general","intertemporal","within","correlation","assumes","data","is","stacked","by","individuals",",","panel","is","balanced","and","within","correlation","structure","is","identical","across","individuals",".","It","looks","like","this","can","just","inherit","GLS","and","overwrite","whiten"]
code: def __init__(self, endog, exog, group, sigma_i=None):
      self.group = GroupSorted(group)
      self.n_groups = self.group.n_groups
      # self.nobs_group =   #list for unbalanced?
      nobs_i = (
          len(endog) / self.n_groups
      )  # endog might later not be an ndarray
      # balanced only for now,
      # which is a requirement anyway in this case (full cov)
      # needs to change for parametrized sigma_i
  
      #
      if sigma_i is None:
          sigma_i = np.eye(int(nobs_i))
      self.cholsigmainv_i = np.linalg.cholesky(
          np.linalg.pinv(sigma_i)
      ).T
  
      # super is taking care of endog, exog and sigma
      super(self.__class__, self).__init__(endog, exog, sigma=None)
  
imports: import numpy
  from statsmodels.regression.linear_model import OLS, GLS
  from statsmodels.tools.grouputils import GroupSorted
label_desc: Use image node_id 1 to create a new ShortPanelGLS object from inherited base classes: GLS with example: obj = ShortPanelGLS(endog, exog, group, sigma_i)