matrix is singular

Hi Mr Ron Schoenberg

Thank you for answering my question. Unfortunately again errors which already happened, still remain and I can not solve it. if it is possible, I send you code and data. and guide me how I solve this dilemma

I write code here but for data please send me your Email address.

// Libraries
library cmlmt,pgraph;

// Data

x=xlsreadm("datafilename","a1:b100",1,0);

y=x-meanc(x)';

n=rows(y);

k=cols(y);

struct DS d0;

d0=dsCreate;

d0.DataMatrix=y;

// Declarations

varred=vcx(y);

epsilon=y';

avec=zeros(k,n);

lnvar=zeros(k,n);

lnvar[.,1]=ln(diag(varred));

var=diagrv(eye(k),exp(lnvar[.,1]));

ind=1|1|1;

// Parameters

struct PV p;

a12=0;

b12=0;

b122=0;

b123=0;

a21=0;

b21=0;

b212=0;

b213=0;

A=1~avec[1,1]|avec[2,1]~1;

g=eye(k)*0.95;

d=eye(k)*0.15;

f=eye(k)*(-0.09);

c=lnvar[.,1].*(1-diag(g));

uncs=A*varred*A';

rho=uncs[1,2]/sqrt(uncs[1,1]*uncs[2,2]);

p=pvPack(pvCreate,a12,"a12");

p=pvPack(p,b12,"b12");

p=pvPack(p,b122,"b122");

p=pvPack(p,b123,"b123");

p=pvPack(p,a21,"a21");

p=pvPack(p,b21,"b21");

p=pvPack(p,b212,"b212");

p=pvPack(p,b213,"b213");

p=pvPack(p,c,"c");

p=pvPack(p,g,"g");

p=pvPack(p,d,"d");

p=pvPack(p,f,"f");

p=pvPack(p,rho,"rho");

// Algorithm settings

struct cmlmtControl c0;

c0=cmlmtControlCreate;

c0.Algorithm=4;

c0.LineSearch=4;

c0.CovParType=2;

c0.printIters=1;

c0.DirTol=0.0001;

//c0.TrustRadius=0.001;

//c0.Switch=1|10000000|0;

//c0.Switch={3 1, 0.1 0.1, 1 1, .001 .001};

// Start likelihood procedure

proc likproc(struct PV p, struct DS d0, ind);

// Declarations

local i,llik,a12,b12,a21,b21,c,g,d,f,A,trans,b122,b123,b212,b213,rho;

llik=zeros(n,1);

A=1~avec[1,1]|avec[2,1]~1;

a12=pvUnpack(p,"a12");

b12=pvUnpack(p,"b12");

b122=pvUnpack(p,"b122");

b123=pvUnpack(p,"b123");

a21=pvUnpack(p,"a21");

b21=pvUnpack(p,"b21");

b212=pvUnpack(p,"b212");

b213=pvUnpack(p,"b213");

c=pvUnpack(p,"c");

g=pvUnpack(p,"g");

d=pvUnpack(p,"d");

f=pvUnpack(p,"f");

rho=pvUnpack(p,"rho");

y=d0.DataMatrix;

// Loop of likelihood for each observation

i=2;

do while i<=n;

// EGARCH for structural conditional variance process

lnvar[.,i]=c+g*lnvar[.,i-1]+d*(abs(epsilon[.,i-1]./sqrt(exp(lnvar[.,i-1])))-sqrt(2/pi))+f*(epsilon[.,i-1]./sqrt(exp(lnvar[.,i-1])));

// Transition variable = demeaned sqrt-variance

trans=sqrt(exp(lnvar[.,i]));
//-sqrt(exp(c./(1-diag(g))));

// Linear Variance Spillover vs. Taylor vs. Smooth Transition

avec[.,i]=a12+b12*trans[2]|a21+b21*trans[1];

//avec[.,i]=a12+b12*trans[2]+b122*trans[2]^2+b123*trans[2]^3|a21+b21*trans[1]+b212*trans[1]^2+b213*trans[1]^3;

// Structural coefficients matrix at time i

A=1~avec[1,i]|avec[2,i]~1;

// Structural Shocks

epsilon[.,i]=A*y[i,.]';

// Log-Likelihood

var=(1~rho*sqrt(exp(lnvar[1,i]+lnvar[2,i]))/exp(lnvar[2,i])|rho*sqrt(exp(lnvar[1,i]+lnvar[2,i]))/exp(lnvar[1,i])~1)*diagrv(eye(k),exp(lnvar[.,i]));

llik[i]=-0.5*(k*ln(2*pi)+ln(det(var))-2*ln(det(A))+y[i,.]*(A'*inv(var)*A)*y[i,.]');

i=i+1;

endo;

struct modelResults mm;

mm.Function=llik;

retp(mm);

endp;

// Inequality restrictions

proc ineqp(struct PV p, struct DS d0);

local g,d,f;

g=pvUnpack(p,"g");

d=pvUnpack(p,"d");

f=pvUnpack(p,"f");

retp(1-g[1,1]|1-g[2,2]|d[1,1]|d[2,2]);

endp;

c0.IneqProc=&ineqp;

// Equality restrictions ... restrict spillover from 1 to 2 (1 to source) to zero

proc eqp(struct PV p, struct DS d0);

local g,d,f,b12,b122,b123,b21,b212,b213;

b21=pvUnpack(p,"b21");

b212=pvUnpack(p,"b212");

b213=pvUnpack(p,"b213");

b12=pvUnpack(p,"b12");

b122=pvUnpack(p,"b122");

b123=pvUnpack(p,"b123");

g=pvUnpack(p,"g");

d=pvUnpack(p,"d");

f=pvUnpack(p,"f");

retp(b212|b213|b122|b123); // adjust to desired rstrictions

endp;

//c0.eqProc=&eqp; // uncomment for activating equality restrictions

// Output

struct cmlmtResults res;

res=cmlmt(&likproc,p,d0,c0);

cmlmtprt(res);

thank you so much


You must login to post answers.

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.

Try GAUSS for 30 days for FREE

See what GAUSS can do for your data

© Aptech Systems, Inc. All rights reserved.

Privacy Policy