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.
I have filed this as a bug: http://openmx.psyc.virginia.edu/issue/2011/08/omxmnor-problem
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