class_docstr: A simple ordinary least squares model.
  
  Parameters
  ----------
  design : array-like
      This is your design matrix.  Data are assumed to be column ordered
      with observations in rows.
  
  Methods
  -------
  model.__init___(design)
  model.logL(b=self.beta, Y)
  
  Attributes
  ----------
  design : ndarray
      This is the design, or X, matrix.
  
  whitened_design : ndarray
      This is the whitened design matrix.
      `design` == `whitened_design` by default for the OLSModel,
      though models that inherit from the OLSModel will whiten the design.
  
  calc_beta : ndarray
      This is the Moore-Penrose pseudoinverse of the whitened design matrix.
  
  normalized_cov_beta : ndarray
      ``np.dot(calc_beta, calc_beta.T)``
  
  df_residuals : scalar
      Degrees of freedom of the residuals.  Number of observations less the
      rank of the design.
  
  df_model : scalar
      Degrees of freedome of the model.  The rank of the design.
docstr: Construct instance.
docstr_tok: ["Construct","instance","."]
code: def initialize(self, design):
      """Construct instance."""
      # PLEASE don't assume we have a constant...
      # TODO: handle case for noconstant regression
      self.design = design
      self.whitened_design = self.whiten(self.design)
      self.calc_beta = spl.pinv(self.whitened_design)
      self.normalized_cov_beta = np.dot(
          self.calc_beta, np.transpose(self.calc_beta)
      )
      self.df_total = self.whitened_design.shape[0]
  
      eps = np.abs(self.design).sum() * np.finfo(np.float64).eps
      self.df_model = matrix_rank(self.design, eps)
      self.df_residuals = self.df_total - self.df_model
  
imports: import numpy
  import scipy.linalg
  from nibabel.onetime import auto_attr
  from numpy.linalg import matrix_rank
  from nilearn.glm._utils import positive_reciprocal
  from nilearn.glm.model import LikelihoodModelResults
label_desc: Use image node_id 2 for calling the OLSModel obj's underlying member method code with example usage: obj.initialize(design) without return types