Creates the structure of the model

        Parameters
        ----------
        beta : np.array
            Contains untransformed starting values for latent variables

        Returns
        ----------
        mu : np.array
            Contains the predicted values for the time series

        Y : np.array
            Contains the length-adjusted time series (accounting for lags)

def _model(self,beta):
        """ Creates the structure of the model

        Parameters
        ----------
        beta : np.array
            Contains untransformed starting values for latent variables

        Returns
        ----------
        mu : np.array
            Contains the predicted values for the time series

        Y : np.array
            Contains the length-adjusted time series (accounting for lags)
        """     

        Y = np.array([reg[self.lags:reg.shape[0]] for reg in self.data])

        # Transform latent variables
        beta = np.array([self.latent_variables.z_list[k].prior.transform(beta[k]) for k in range(beta.shape[0])])

        params = []
        col_length = 1 + self.ylen*self.lags
        for i in range(0,self.ylen):
            params.append(beta[(col_length*i): (col_length*(i+1))])

        mu = np.dot(np.array(params),self._create_Z(Y))
        return mu, Y