Stataのmlexpコマンドにおける欠損値指定

 有限混合モデルの一種を適用するために、Stata13以降に搭載されているmlexpコマンドを用いて最尤推定する作業を、ここ数日進めていました。

 しかし、なぜか初期値からエラがー出てしまい、何度確認しても尤度関数は間違っていなさそうなので、いいかげん発狂しそうになっていました。昨日、新幹線の中にて、欠損値指定の問題だということがようやくわかりました。

 もともとSPSS形式であったデータをStataに変換して用いていたのですが、SPSSデータにおけるユーザー指定の欠損値が変換時に妙な値になっていたようです。Stataにビルトインされているコマンド(regやprobitなど)では、こうした値も欠損値として自動的に処理してくれるようですが、mlexpは1つのobservationとして用いようとするようです。

 あらかじめ欠損値としてあらためて指定しておくか、mlexpのオプションであるvariables()で指定することで解決しました。