Chapter Contents |
Previous |
Next |

Language Reference |

**CALL KALDFS(***sm, vsm, data, int, coef, var, bvec, bmat, initial, at,*

*mt,**s*2 <, un, vun>**);**

The inputs to the KALDFS subroutine are as follows:

*data*- is a
*T*×*N*_{y}matrix containing data (**y**_{1}, ... ,**y**_{T})'. *int*- is an vector for a time-invariant
intercept, or a vector containing fixed matrices for the time-variant
model in the transition equation and the measurement equation,
that is, (
**W**'_{t},**X**'_{t})'. *coef*- is an (
*N*_{y}+*N*_{z}) ×*N*_{z}matrix for a time-invariant coefficient, or a (*T*+ lead)(*N*_{y}+*N*_{z}) ×*N*_{z}matrix containing coefficients at each time in the transition equation and the measurement equation, that is, (**F**'_{t},**H**'_{t})'. *var*- is an (
*N*_{y}+*N*_{z}) ×(*N*_{y}+*N*_{z}) matrix for a time-invariant variance matrix for transition equation noise and the measurement equation noise, or a (*T*+ lead)(*N*_{y}+*N*_{z}) ×(*N*_{y}+*N*_{z}) matrix containing covariance matrices for the transition equation and measurement equation errors, that is, . *bvec*- is an constant vector for
the intercept for the mean effect .
*bmat*- is an matrix for
the coefficient for the mean effect .
*initial*- is an matrix containing an
initial random vector estimate and its covariance matrix,
that is, .
*at*- is a matrix containing
(
**A**'_{1}, ... ,**A**'_{T})'. *mt*- is a (
*TN*_{z}) ×*N*_{z}matrix containing (**M**_{1}, ... ,**M**_{T})'. *s*2- is the estimated variance in the end
of the data set, .
*un*- is an optional
matrix containing .
The returned value is .
*vun*- is an optional
*N*_{z}×*N*_{z}matrix containing**U**_{T}. The returned value is**U**_{0}.

The KALDFS call returns the following values:

*sm*- is a
*T*×*N*_{z}matrix containing smoothed state vectors . *vsm*- is a
*TN*_{z}×*N*_{z}matrix containing mean square error matrices of smoothed state vectors .

Given the one-step forecast and mean square error matrix in the KALDFF call, the KALDFS call computes a smoothed state vector and its mean square error matrix. Then the KALDFS subroutine produces an estimate of the smoothed state vector at time

The KALDFS call is accompanied by the KALDFF call as shown in the following code:

ny = ncol(y); nz = ncol(coef); nb = ncol(int); nd = ncol(coefd); at = j(nz,nd+1,.); mt = j(nz,nz,.); qt = j(nd+1,nd+1,.); n0 = -1; call kaldff(pred,vpred,initial,s2,y,0,int,coef,var,intd,coefd, n0,at,mt,qt); bvec = intd[nz+1:nz+nb,]; bmat = coefd[nz+1:nz+nb,]; call kaldfs(sm,vsm,x,int,coef,var,bvec,bmat,initial,at,mt,s2);You can also compute the smoothed estimate and its covariance matrix observation by observation. When the SSM is time invariant, the following code performs smoothing. You should initialize UN and VUN as matrices of value

n = nrow(y); ny = ncol(y); nz = ncol(coef); nb = ncol(int); nd = ncol(coefd); at = j(nz,nd+1,.); mt = j(nz,nz,.); qt = j(nd+1,nd+1,.); n0 = -1; call kaldff(pred,vpred,initial,s2,y,0,int,coef,var,intd,coefd, n0,at,mt,qt); bvec = intd[nz+1:nz+nb,]; bmat = coefd[nz+1:nz+nb,]; un = j(nz,nd+1,0); vun = j(nz,nz,0); do i = 1 to n; call kaldfs(sm_i,vsm_i,y[n-i+1],int,coef,var,bvec,bmat, initial,at,mt,s2,un,vun); sm = sm_i // sm; vsm = vsm_i // vsm; end;

Chapter Contents |
Previous |
Next |
Top |

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.