code: def predict(self, h=5):      
               
  
          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)
              forecasted_values = np.ones(h)*self.states[-1]
              t_params = self.transform_z()
  
              if self.model_name2 == 'Skewt':
                  forecasted_values = forecasted_values + ((t_params[-3] - (1.0/t_params[-3]))*t_params[-2]*gas.SkewtScore.tv_variate_exp(t_params[-1]))
  
              result = pd.DataFrame(self.link(forecasted_values))
              result.rename(columns={0:self.data_name}, inplace=True)
              result.index = date_index[-h:]
  
              return result
docs: 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