fit_volume {intradayModel}R Documentation

Fit a Univariate State-Space Model on Intraday Trading Volume

Description

The main function for defining and fitting a univaraite state-space model on intraday trading volume. The model is proposed in (Chen et al., 2016) as

\mathbf{x}_{\tau+1} = \mathbf{A}_{\tau}\mathbf{x}_{\tau} + \mathbf{w}_{\tau},

y_{\tau} = \mathbf{C}\mathbf{x}_{\tau} + \phi_{\tau} + v_\tau,

where

In the model, \boldsymbol{\Theta} = \left\{a^{\eta},a^{\mu},\sigma^{\eta},\sigma^{\mu},r,\boldsymbol{\phi}, \mathbf{x}_0, \mathbf{V}_0\right\} are treated as parameters. The model is fitted by expectation-maximization (EM) algorithms. The implementation follows (Chen et al., 2016), and the accelerated scheme is provided in (Varadhan and Roland, 2008). The algorithm terminates when maxit is reached or the condition \|\Delta \boldsymbol{\Theta}_i\| \le \textrm{abstol} is satisfied.

Usage

fit_volume(
  data,
  fixed_pars = NULL,
  init_pars = NULL,
  verbose = 0,
  control = NULL
)

Arguments

data

An n_bin * n_day matrix or an xts object storing intraday trading volume.

fixed_pars

A list of parameters' fixed values. The allowed parameters are listed below,

  • "a_eta": a^{\eta} of size 1 ;

  • "a_mu": a^{\mu} of size 1 ;

  • "var_eta": \sigma^{\eta} of size 1 ;

  • "var_mu": \sigma^{\mu} of size 1 ;

  • "r": r of size 1 ;

  • "phi": \boldsymbol{\phi} = [\phi_1,\dots, \phi_I]^\top of size I ;

  • "x0": \mathbf{x}_0 of size 2 ;

  • "V0": \mathbf{V}_0 of size 2 * 2 .

init_pars

A list of unfitted parameters' initial values. The parameters are the same as fixed_pars. If the user does not assign initial values for the unfitted parameters, default ones will be used.

verbose

An integer specifying the print level of information during the algorithm (default 1). Possible numbers:

  • "0": no output;

  • "1": show the iteration number and \|\Delta \boldsymbol{\Theta}_i\|;

  • "2": 1 + show the obtained parameters.

control

A list of control values of EM algorithm:

  • acceleration: TRUE/FALSE indicating whether to use the accelerated EM algorithm (default TRUE);

  • maxit: Maximum number of iterations (default 3000);

  • abstol: Absolute tolerance for parameters' change \|\Delta \boldsymbol{\Theta}_i\| as the stopping criteria (default 1e-4)

  • log_switch: TRUE/FALSE indicating whether to record the history of convergence progress (defalut TRUE).

Value

A list of class "volume_model" with the following elements (if the algorithm converges):

Author(s)

Shengjie Xiu, Yifan Yu and Daniel P. Palomar

References

Chen, R., Feng, Y., and Palomar, D. (2016). Forecasting intraday trading volume: A Kalman filter approach. Available at SSRN 3101695.

Varadhan, R., and Roland, C. (2008). Simple and globally convergent methods for accelerating the convergence of any EM algorithm. Scandinavian Journal of Statistics, 35(2), 335–353.

Examples

library(intradayModel)
data(volume_aapl)
volume_aapl_training <- volume_aapl[, 1:20]

# fit model with no prior knowledge
model_fit <- fit_volume(volume_aapl_training)

# fit model with fixed_pars and init_pars
model_fit <- fit_volume(volume_aapl_training, fixed_pars = list(a_mu = 0.5, var_mu = 0.05),
                        init_pars = list(a_eta = 0.5))

# fit model with other control options
model_fit <- fit_volume(volume_aapl_training, verbose = 2, 
  control = list(acceleration = FALSE, maxit = 1000, abstol = 1e-4, log_switch = FALSE))



[Package intradayModel version 0.0.1 Index]