def _mean_prediction(self, lmda, Y, scores, h, t_params):
        """ Creates an h-step ahead mean prediction
        
        Parameters
        ----------
        
        lmda : np.array
            The past predicted values
        
        Y : np.array
            The past data
        
        scores : np.array
            The past scores
        
        h : int
            How many steps ahead for the prediction
        
        t_params : np.array
            A vector of (transformed) latent variables
        
        Returns
        ----------
        h-length vector of mean predictions
        """     

        # Create arrays to iteratre over
        lmda_exp = lmda.copy()
        scores_exp = scores.copy()
        Y_exp = Y.copy()

        # Loop over h time periods          
        for t in range(0, h):
            new_value = t_params[0]

            if self.p != 0:
                for j in range(1, self.p+1):
                    new_value += t_params[j]*lmda_exp[-j]

            if self.q != 0:
                for k in range(1, self.q+1):
                    new_value += t_params[k+self.p]*scores_exp[-k]

            if self.leverage is True:
                new_value += t_params[1+self.p+self.q]*np.sign(-(Y_exp[-1]-t_params[-1]))*(scores_exp[-1]+1)

            lmda_exp = np.append(lmda_exp, [new_value]) # For indexing consistency
            scores_exp = np.append(scores_exp, [0]) # expectation of score is zero
            Y_exp = np.append(Y_exp, [t_params[-1]])

        return lmda_exp