code: def _create_B_direct(self):
                   
  
          Y = np.array([reg[self.lags:reg.shape[0]] for reg in self.data])        
          Z = self._create_Z(Y)
          return np.dot(np.dot(Y,np.transpose(Z)),np.linalg.inv(np.dot(Z,np.transpose(Z))))
docs: Creates OLS coefficient matrix (calculates Y within - for OLS fitting)
  
          Returns
          ----------
          The coefficient matrix B