omxMnor returns value for non p.d. cov.

2 replies [Last post]
wuhao_osu's picture
Offline
Joined: 09/07/2010

Hi,

I just found that the omxMnor returns a value for an input involving a non p.d. covariance matrix.

Example

omxMnor(array(1,dim=c(2,2)),cbind(0,0),cbind(-Inf,-Inf),cbind(0,0))

returns a value of .375. The limiting value should be .5

S<-diag(1,2);
S[1,2]<-S[2,1]<-2
omxMnor(S,cbind(0,0),cbind(-Inf,-Inf),cbind(0,0))

returns a value of 0.4262082, though S is not p.d.

neale's picture
Offline
Joined: 07/31/2009
omxMnor() bug
neale's picture
Offline
Joined: 07/31/2009
omxMnor() bug

Same problem exists with Classic Mx, with which it is more cumbersome to show... implicates integration routine issue.

#ngroups 1
Test mnor with singular matrix
Calc
Begin Matrices;
m full 1 2 ! means
c symm 2 2 ! covs
u unit 1 2 ! integral type (1 = t to +inf)
z full 1 2 ! thresholds
End Matrices;
Matrix C 1 1 1
Begin Algebra;
W = \mnor(C_M_Z_Z_U);
End Algebra;
Option issat rs
end

#ngroups 1
Test mnor with negative definite matrix
Calc
Begin Matrices;
m full 1 2 ! means
c symm 2 2 ! covs
u unit 1 2 ! integral type (1 = t to +inf)
z full 1 2 ! thresholds
End Matrices;
Matrix C 1 2 1
Begin Algebra;
W = \mnor(C_M_Z_Z_U);
End Algebra;
Option issat rs
end