omxMnor returns value for non p.d. cov.

Posted on
Picture of user. wuhao_osu 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.

Replied on Wed, 08/24/2011 - 12:57
Picture of user. neale Joined: 07/31/2009

I have filed this as a bug: http://openmx.psyc.virginia.edu/issue/2011/08/omxmnor-problem
Replied on Sat, 08/27/2011 - 16:01
Picture of user. neale Joined: 07/31/2009

In reply to by neale

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