docs: def forecast(self, horizon, method=ARIMA, frequency=None):
          '''Forecast points beyond the time series range using the specified
          forecasting method. `horizon` is the number of points to forecast.'''
          if len(self.points) <= 1:
              raise ArithmeticError('Cannot run forecast when len(series) <= 1')
          R = LazyImport.rpy2()
          series = LazyImport.numpy().array(self.values)
          if frequency is not None:
              series = R.ts(series, frequency=frequency)
          if method == TimeSeries.ARIMA:
              fit = R.forecast.auto_arima(series)
          elif method == TimeSeries.ETS:
              fit = R.forecast.ets(series)
          else:
              raise ValueError('Unknown forecast() method')
          forecasted = R.forecast.forecast(fit, h=horizon)
          forecast_y = list(forecasted.rx2('mean'))
          interval = self.interval
          last_x = self.points[-1][0]
          forecast_x = [ last_x + x * interval for x in xrange(1, horizon+1) ]
          return TimeSeries(zip(forecast_x, forecast_y))