The matrix function \momnor will compute moments of the truncated multinormal distribution. Currently, it will work only with 'tails' of the distribution, though selection may be absent for some variables. Here is a bivariate example:
Test momnor function data calc ng=1 matrices r symm 2 2 !covariance matrix m full 1 2 !means t full 1 2 !thresholds s full 1 2 !selection vector n full 1 2 !# of abscissae compute \momnor((r_m_t_s_n)) / matrix r 1 .5 1 matrix m 0 0 matrix t 1.282 1.282 matrix s 1 1 matrix n 16 16 option rs end
This script requests the covariances and means of individuals selected above the threshold 1.282 in a N(0,1) bivariate normal distribution. It returns the covariance matrix and means stacked on top of each other as output.
I haven't tested it very thoroughly yet. CPU time will go up with the number of abscissae, but 64 is the maximum (and it goes in jumps 16 20 24 32 48 64, along with some smaller jumps below that). Mx will take care of it by assigning i) 16 if you enter 0 or less, ii) 64 if you enter 64 or more, and iii) the next lowest value if you happen to chose an intermediate value (eg it will pick 24 if you enter 30).
Mike Neale, email@example.com, Medical College of VA