FilterModel1 {SMFilter} | R Documentation |
Filtering algorithm for the type one model.
Description
This function implements the filtering algorithm for the type one model. See Details part below.
Usage
FilterModel1(mY, mX, mZ, beta, mB = NULL, Omega, vD, U0,
method = "max_1")
Arguments
mY |
the matrix containing Y_t with dimension |
mX |
the matrix containing X_t with dimension |
mZ |
the matrix containing Z_t with dimension |
beta |
the |
mB |
the coefficient matrix |
Omega |
covariance matrix of the errors. |
vD |
vector of the diagonals of |
U0 |
initial value of the alpha sequence. |
method |
a string representing the optimization method from c('max_1','max_2','max_3','min_1','min_2'). |
Details
The type one model on Stiefel manifold takes the form:
\boldsymbol{y}_t \quad = \quad \boldsymbol{\alpha}_t \boldsymbol{\beta} ' \boldsymbol{x}_t + \boldsymbol{B} \boldsymbol{z}_t + \boldsymbol{\varepsilon}_t
\boldsymbol{\alpha}_{t+1} | \boldsymbol{\alpha}_{t} \quad \sim \quad ML (p, r, \boldsymbol{\alpha}_{t} \boldsymbol{D})
where \boldsymbol{y}_t
is a p
-vector of the dependent variable,
\boldsymbol{x}_t
and \boldsymbol{z}_t
are explanatory variables wit dimension q_1
and q_2
,
\boldsymbol{x}_t
and \boldsymbol{z}_t
have no overlap,
matrix \boldsymbol{B}
is the coefficients for \boldsymbol{z}_t
,
\boldsymbol{\varepsilon}_t
is the error vector.
The matrices \boldsymbol{\alpha}_t
and \boldsymbol{\beta}
have dimensions p \times r
and q_1 \times r
, respectively.
Note that r
is strictly smaller than both p
and q_1
.
\boldsymbol{\alpha}_t
and \boldsymbol{\beta}
are both non-singular matrices.
\boldsymbol{\alpha}_t
is time-varying while \boldsymbol{\beta}
is time-invariant.
Furthermore, \boldsymbol{\alpha}_t
fulfills the condition \boldsymbol{\alpha}_t' \boldsymbol{\alpha}_t = \boldsymbol{I}_r
,
and therefor it evolves on the Stiefel manifold.
ML (p, r, \boldsymbol{\alpha}_{t} \boldsymbol{D})
denotes the Matrix Langevin distribution or matrix von Mises-Fisher distribution on the Stiefel manifold.
Its density function takes the form
f(\boldsymbol{\alpha_{t+1}} ) = \frac{ \mathrm{etr} \left\{ \boldsymbol{D} \boldsymbol{\alpha}_{t}' \boldsymbol{\alpha_{t+1}} \right\} }{ _{0}F_1 (\frac{p}{2}; \frac{1}{4}\boldsymbol{D}^2 ) }
where \mathrm{etr}
denotes \mathrm{exp}(\mathrm{tr}())
,
and _{0}F_1 (\frac{p}{2}; \frac{1}{4}\boldsymbol{D}^2 )
is the (0,1)-type hypergeometric function for matrix.
Value
an array aAlpha
containing the modal orientations of alpha in the prediction step.
Author(s)
Yukai Yang, yukai.yang@statistik.uu.se
Examples
iT = 50
ip = 2
ir = 1
iqx = 4
iqz=0
ik = 0
Omega = diag(ip)*.1
if(iqx==0) mX=NULL else mX = matrix(rnorm(iT*iqx),iT, iqx)
if(iqz==0) mZ=NULL else mZ = matrix(rnorm(iT*iqz),iT, iqz)
if(ik==0) mY=NULL else mY = matrix(0, ik, ip)
alpha_0 = matrix(c(runif_sm(num=1,ip=ip,ir=ir)), ip, ir)
beta = matrix(c(runif_sm(num=1,ip=ip*ik+iqx,ir=ir)), ip*ik+iqx, ir)
mB=NULL
vD = 100
ret = SimModel1(iT=iT, mX=mX, mZ=mZ, mY=mY, alpha_0=alpha_0, beta=beta, mB=mB, vD=vD, Omega=Omega)
mYY=as.matrix(ret$dData[,1:ip])
fil = FilterModel1(mY=mYY, mX=mX, mZ=mZ, beta=beta, mB=mB, Omega=Omega, vD=vD, U0=alpha_0)