def __init__(self):
     dataset = data.sp500_returns(num_points=100)
     super(StochasticVolatilitySP500Small, self).__init__(
         name='stochastic_volatility_sp500_small',
         pretty_name=
         'Smaller stochastic volatility model of S&P500 returns.',
         **dataset)
 def __init__(self, use_markov_chain=False):
     dataset = data.sp500_returns()
     super(StochasticVolatilitySP500, self).__init__(
         name='stochastic_volatility_sp500',
         pretty_name='Stochastic volatility model of S&P500 returns.',
         use_markov_chain=use_markov_chain,
         **dataset)
Exemplo n.º 3
0
    def testStochasticVolatilityModelSP500(self):
        num_train_points = 2516

        dataset = data.sp500_returns()

        self.assertEqual((num_train_points, ),
                         dataset['centered_returns'].shape)
        self.assertAllClose(0.0,
                            np.mean(dataset['centered_returns']),
                            atol=1e-5)
Exemplo n.º 4
0
 def __init__(
     self,
     centered=False,
     use_fft=True,
 ):
   dataset = data.sp500_returns(num_points=100)
   super(VectorizedStochasticVolatilitySP500Small, self).__init__(
       name='vectorized_stochasticic_volatility_sp500_small',
       pretty_name='Smaller stochastic volatility model of S&P500 returns.',
       **dataset)
Exemplo n.º 5
0
 def __init__(
     self,
     centered=False,
     use_fft=True,
 ):
   dataset = data.sp500_returns()
   super(VectorizedStochasticVolatilitySP500, self).__init__(
       name='vectorized_stochastic_volatility_sp500',
       pretty_name='Stochastic volatility model of S&P500 returns.',
       **dataset)
Exemplo n.º 6
0
def stochastic_volatility_sp500_small():
    """Stochastic volatility model.

  This is a smaller version of `stochastic_volatility_model_sp500` using only
  100 days of returns from the S&P 500, ending 6/24/2020.

  Returns:
    target: StanModel.
  """
    dataset = data.sp500_returns(num_points=100)
    return stochastic_volatility.stochastic_volatility(**dataset)
Exemplo n.º 7
0
def stochastic_volatility_sp500():
    """Stochastic volatility model.

  This uses a dataset of 2517 daily returns of the S&P 500 index,
  representing the time period 6/25/2010-6/24/2020.

  Returns:
    target: StanModel.
  """
    dataset = data.sp500_returns()
    return stochastic_volatility.stochastic_volatility(**dataset)
Exemplo n.º 8
0
    def testMarkovChainLogprobMatchesOriginal(self):
        # Use a very short dataset since the non-markov-chain model is slow.
        dataset = data.sp500_returns(num_points=10)
        model = stochastic_volatility.StochasticVolatility(
            use_markov_chain=False, **dataset)
        markov_chain_model = stochastic_volatility.StochasticVolatility(
            use_markov_chain=True, **dataset)

        xs = self.evaluate(model.prior_distribution().sample(
            10, seed=tfp_test_util.test_seed()))
        xs_stacked = xs[:-1] + (tf.stack(xs[-1], axis=-1), )
        self.assertAllClose(
            model.unnormalized_log_prob(xs),
            markov_chain_model.unnormalized_log_prob(xs_stacked),
            atol=1e-2)