Would appreciate some help figuring out what's causing the errors.

I'm trying to put together a state-space model with all coefficients/variances already estimated, in order to use Eviews Kalman filter/smoother.

For some (but not all) combinations of my 200-300 signal variables I get "matrix near singular" errors while trying to initialize/estimate the state-space model.

I'm not sure what it's trying to estimate other than the final state vector, which I can try to estimate on my own using Kalman filter formulas and it works w/o a hitch (I do have to use @pinverse though, due to signal idiosyncratic error covariance matrix being rank-deficient).

A attach a small example workfile.

Estimating statespace 'now' on a sample of 1993m1 1993m1 yields the error.

Running the code below to calculate the final state works fine (and produces something fairly close to Eviews calculations for specifications where now.ml does not fail)

Code: Select all

`'--------------------Estimate a couple of Kalman filter steps------------------.`

' Filter notation:

' ksi(t+1)=F*ksi(t)+v(t+1)

' y(t)=H'*ksi(t)+w(t)

' var(v(t))=Q

' var(w(t))=R

'

matrix F=a1

Matrix H=@transpose(lambda)

scalar dim=@columns(H)

sym Q=sigmah

sym R=sig_ksi

vector(2) ksi1_0=0 'initial state

sym P1_0=@unvec(@inverse(@identity(4)-@kronecker(a1,a1))*@vec(sigmah),2) 'initial state MSE

matrix(dim,dim) K1=F*P1_0*H*@pinverse(@transpose(H)*P1_0*H+R) 'Kalman gain period 1

now.makeendog endog

sample testsmpl 1993m1 1993m1

stomna(endog,y1,testsmpl) 'y1-vector of signals on 1993m1

vector(2) ksi2_1=F*ksi1_0+K1*(@transpose(y1)-@transpose(H)*ksi1_0) 'state forecast on 1993m2

sym P2_1=(F-K1*@transpose(H))*P1_0*(@transpose(F)-H*@transpose(K1))+K1*R*@transpose(K1)+Q 'state MSE on 1993m2

Thanks in advance to anyone who can help.

PS: my signal idiosyncratic error covariance matrix is rank-deficient in most specifications, even when now.ml goes w/o error.