class_docstr:     An abstract statistical model class for panel (longitudinal) datasets.
  
      Parameters
      ----------
      endog : array_like or str
          If a pandas object is used then endog should be the name of the
          endogenous variable as a string.
  #    exog
  #    panel_arr
  #    time_arr
      panel_data : pandas.Panel object
  
      Notes
      -----
      If a pandas object is supplied it is assumed that the major_axis is time
      and that the minor_axis has the panel variable.
      
class_docstr_tok: ["An","abstract","statistical","model","class","for","panel","(","longitudinal",")","datasets",".","Parameters","--","--","--","--","--","endog",":","array_like","or","str","If","a","pandas","object","is","used","then","endog","should","be","the","name","of","the","endogenous","variable","as","a","string",".","#","exog","#","panel_arr","#","time_arr","panel_data",":","pandas.Panel","object","Notes","--","--","-","If","a","pandas","object","is","supplied","it","is","assumed","that","the","major_axis","is","time","and","that","the","minor_axis","has","the","panel","variable","."]
docstr: Initialize plain array model.
  
  See PanelModel
docstr_tok: ["Initialize","plain","array","model",".","See","PanelModel"]
code: def initialize(self, endog, exog, panel, time, xtnames, equation):
      """
      Initialize plain array model.
  
      See PanelModel
      """
      # TODO: for now, we are going assume a constant, and then make the first
      # panel the base, add a flag for this....
  
      # get names
      names = equation.split(" ")
      self.endog_name = names[0]
      exog_names = names[1:]  # this makes the order matter in the array
      self.panel_name = xtnames[0]
      self.time_name = xtnames[1]
  
      novar = exog.var(0) == 0
      if True in novar:
          cons_index = np.where(novar == 1)[0][0]  # constant col. num
          exog_names.insert(cons_index, "cons")
  
      self._cons_index = novar  # used again in fit_fixed
      self.exog_names = exog_names
      self.endog = np.squeeze(np.asarray(endog))
      exog = np.asarray(exog)
      self.exog = exog
      self.panel = np.asarray(panel)
      self.time = np.asarray(time)
  
      self.paneluniq = np.unique(panel)
      self.timeuniq = np.unique(time)
  
imports: from functools import reduce
  import numpy
  from statsmodels.regression.linear_model import GLS
  from pandas import Panel
label_desc: Use image node_id 2 for calling the PanelModel obj's underlying member method code with example usage: obj.initialize(endog, exog, panel, time, xtnames, equation) without return types