Makes forecast with the estimated model

        Parameters
        ----------
        h : int (default : 5)
            How many steps ahead would you like to forecast?

        Returns
        ----------
        - pd.DataFrame with predictions

def predict(self, h=5):      
        """ Makes forecast with the estimated model

        Parameters
        ----------
        h : int (default : 5)
            How many steps ahead would you like to forecast?

        Returns
        ----------
        - pd.DataFrame with predictions
        """     

        if self.latent_variables.estimated is False:
            raise Exception("No latent variables estimated!")
        else:
            # Retrieve data, dates and (transformed) latent variables         
            date_index = self.shift_dates(h)

            # Get expected values
            forecasted_values = np.zeros(h)

            for value in range(0,h):
                if value == 0:
                    forecasted_values[value] = self.states[0][-1] + self.states[1][-1]
                else:
                    forecasted_values[value] = forecasted_values[value-1] + self.states[1][-1]

            result = pd.DataFrame(self.link(forecasted_values))
            result.rename(columns={0:self.data_name}, inplace=True)
            result.index = date_index[-h:]

            return result