Inputs:
        ------------------
        
        balance: bool
        Whether to balance or not the model as a whole

def predict(self, Xnew=None, filteronly=False, include_likelihood=True, balance=None, **kw):
        """
        Inputs:
        ------------------
        
        balance: bool
        Whether to balance or not the model as a whole
        
        """
        
        if balance is None:
            p_balance = self.balance
        else:
            p_balance = balance
            
        # Run the Kalman filter to get the state
        (m, V) = self._raw_predict(Xnew,filteronly=filteronly, p_balance=p_balance)

        # Add the noise variance to the state variance
        if include_likelihood:
            V += float(self.likelihood.variance)

        # Lower and upper bounds
        #lower = m - 2*np.sqrt(V)
        #upper = m + 2*np.sqrt(V)

        # Return mean and variance
        return m, V