omxMnor returns value for non p.d. cov.
Posted on

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.
omxMnor() bug
I have filed this as a bug: http://openmx.psyc.virginia.edu/issue/2011/08/omxmnor-problem
Log in or register to post comments
In reply to omxMnor() bug by neale
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
Log in or register to post comments