# SimModel2: Simulate from the type two state-space Model on Stiefel... In SMFilter: Filtering Algorithms for the State Space Models on the Stiefel Manifold

## Description

This function simulates from the type two model on Stiefel manifold. See Details part below.

## Usage

 1 2 SimModel2(iT, mX = NULL, mZ = NULL, mY = NULL, beta_0, alpha, mB = NULL, Omega = NULL, vD, burnin = 100) 

## Arguments

 iT the sample size. mX the matrix containing X_t with dimension T \times q_1. mZ the matrix containing Z_t with dimension T \times q_2. mY initial values of the dependent variable for ik-1 up to 0. If mY = NULL, then no lagged dependent variables in regressors. beta_0 the initial beta, iqx+ip*ik, y_1,t-1,y_1,t-2,...,y_2,t-1,y_2,t-2,.... alpha the α matrix, p \times r. mB the coefficient matrix \boldsymbol{B} before mZ with dimension p \times q_2. Omega covariance matrix of the errors. vD vector of the diagonals of D. burnin burn-in sample size (matrix Langevin).

## Details

The type two model on Stiefel manifold takes the form:

\boldsymbol{y}_t \quad = \quad \boldsymbol{α} \boldsymbol{β}_t ' \boldsymbol{x}_t + \boldsymbol{B}' \boldsymbol{z}_t + \boldsymbol{\varepsilon}_t

\boldsymbol{β}_{t+1} | \boldsymbol{β}_{t} \quad \sim \quad ML (q_1, r, \boldsymbol{β}_{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{α} and \boldsymbol{β}_t have dimensions p \times r and q_1 \times r, respectively. Note that r is strictly smaller than both p and q_1. \boldsymbol{α} and \boldsymbol{β}_t are both non-singular matrices. \boldsymbol{β}_t is time-varying while \boldsymbol{α} is time-invariant.

Furthermore, \boldsymbol{β}_t fulfills the condition \boldsymbol{β}_t' \boldsymbol{β}_t = \boldsymbol{I}_r, and therefor it evolves on the Stiefel manifold.

ML (p, r, \boldsymbol{β}_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{β_{t+1}} ) = \frac{ \mathrm{etr} ≤ft\{ \boldsymbol{D} \boldsymbol{β}_{t}' \boldsymbol{β_{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.

Note that the function does not add intercept automatically.

## Value

A list containing the sampled data and the dynamics of beta.

The object is a list containing the following components:

 dData a data.frame of the sampled data aBeta an array of the \boldsymbol{β}_t with the dimension T \times q_1 \times r

## Author(s)

Yukai Yang, yukai.yang@statistik.uu.se

## Examples

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 iT = 50 ip = 2 ir = 1 iqx =3 iqz=2 ik = 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 = matrix(c(runif_sm(num=1,ip=ip,ir=ir)), ip, ir) beta_0 = matrix(c(runif_sm(num=1,ip=ip*ik+iqx,ir=ir)), ip*ik+iqx, ir) if(ip*ik+iqz==0) mB=NULL else mB = matrix(c(runif_sm(num=1,ip=(ip*ik+iqz)*ip,ir=1)), ip, ip*ik+iqz) vD = 50 ret = SimModel2(iT=iT, mX=mX, mZ=mZ, mY=mY, alpha=alpha, beta_0=beta_0, mB=mB, vD=vD) 

SMFilter documentation built on May 1, 2019, 8:01 p.m.