行列の階数を算出

[OS] ALL
[リリース] ALL
[キーワード] IML, rank of matrix

[質問]

SAS/IMLで行列の階数を求めるには、どのようにすればよいですか。

[回答]

行列の階数に対する関数はありませんが、一般化逆行列を求めるGINV関数、対角要素の和を求めるTRACE関数を用いることによって、算出することができます。
具体的には、以下のプログラムとなります。


  rank=ROUND(TRACE(GINV(a)*a));

※ なお、SAS/IMLのRANK関数は、行列の階数ではなく、順位付けを行なう関数となるのでご注意ください。