close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 16 years ago

Last modified 16 years ago

#664 closed enhancement

Preconditioned simulation of BSR linear block — at Version 12

Reported by: Víctor de Buen Remiro Owned by: Víctor de Buen Remiro
Priority: highest Milestone: Numerical methods
Component: Math Version: 2.0.1
Severity: major Keywords: BSR, linear, ARIMA, preconditioned
Cc:

Description (last modified by Víctor de Buen Remiro)

In each iteration of BSR, we need to simulate vector \beta $$ matching this linear constrained regression with ARIMA noise:

Y = X \beta + z $$
A \beta <= a $$
\phi\left(B\right) z_t = \theta\left(B\right) e_t $$
e \sim N\left(0,\sigma^{2} I\right) $$

ARMA and variance parameters are changing in each iteration of BSR, and, if there are missing values or non linear filters matrices Y $$ and X $$ could also change in each iteration. Only constraining inequations remain invariant in any case.

So, an ARIMA decomposition and filter and a Cholesky decomposition are needed in order to simulate linear block. Even if X $$ is very sparse, after applying ARIMA filter it could become dense and process will be too slow.

I propose a preconditioning method to save a lot of time calculating and storing all blocks of a simulation only for one of a lot of iterations and using them to generate aproximations that will be refinated inside an internal Metropolis-Hastings chain.

The main idea behind this method is that, when external BSR Gibbs chain is already in convergence phase, difference of expected values between two different iterations should tend to zero. So, the simulator of a past iteration should be a good candidate generator for distribution of current iteration.

Let be the last full calculated and stored system

Y' = X' \beta' + z' $$
A \beta' <= a $$
\phi'\left(B\right) z'_t = \theta'\left(B\right) e'_t $$
e' \sim N\left(0,\sigma'^{2} I\right) $$

Following these steps for each Metropolis-Hastings step we can generate a candidate of vector \beta' $$ calculating simultaneously its exact density:

  1. Since this system has been previously decomposed is very fast to generate a pre-candidate vector \beta' $$ matching it
  2. The corresponding ARIMA noise is simply
    z' = Y' - X' \beta' $$
  3. By means of Almagro method it's posible to calculate residuals e' $$ and initial values u' $$ that solve difference equation
    e'_t = \frac{\phi'\left(B\right)}{\theta'\left(B\right)} z'_t $$
  4. Let be the standarized multinormal residuals
     \epsilon' =\frac{1}{\sigma'}e' $$
  5. Since \beta' $$ are determined by \epsilon' $$ by means of a full range linear equation, their densities have constant ratio, and logarithm of density of candidate vector can be calculated directly as
    cte -\frac{T}{2}\log\left(2\pi\right)-\frac{1}{2}\sum_{t=1}^{T}\epsilon'_{t}^{2}$$
  6. Then we can propose residuals and initial values for current system as
    e^{*} = \frac{\sigma}{\sigma'}e' $$
    u = \frac{\sigma}{\sigma'}u' $$
  7. ARIMA noise for current system becomes simply
    z^{*}_t = \frac{\theta\left(B\right)}{\phi\left(B\right)} e^{*}_t $$
  8. In order to get the refined candidate, we will take minimum residuals solution of sparse linear system
    X \beta = Y-z^{*} $$
  9. In order to calculate its exact density, it will be obtained the ARIMA noise
    z = Y - X \beta $$
    to get standarized residuals from ARIMA equations.
  10. If resulting vector doesn't match constraining inequations
    A \beta <= a $$
    density will be toggled to -\infty $$ in order to force rejection.

The number of internal Metropolis-Hastings non rejected iterations must be a parameter of user configuration and should not be more than 10 or 20 iterations. When number of rejected iterations growns is the moment of remake full calculations and store a new preconditioner regression. If this happens after a large number of iterations, then a lot of time will be saved.

Change History (12)

comment:1 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:2 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:3 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:4 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:5 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:6 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:7 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:8 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)
Status: newassigned

comment:9 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:10 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:11 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:12 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)
Note: See TracTickets for help on using tickets.