Stataでマルチレベル・モデル
ちょうどマルチレベル・モデルの原稿を書いたので、ついでにこのネタ。
マルチレベル・モデル(あるいは混合モデル)で分析したいときはHLMやSASのproc mixedがよく使われてますが、Stataでもversion9から分析可能になりました。ただし専用アプリのHLMなどと比べると、コマンドが少々わかりにくいような気もするので、ごく簡単に説明しておきます。
被説明変数Y(連続変量)を、個体レベルの変数X1とX2、グループ・レベルの変数Zで説明するとします。グループ変数はGとします。一番シンプルなマルチレベル・モデルは、下の通り、切片のみにランダム効果を設定したもの。
Y=β0+β1X1+β2X2+r
β0=γ00+u0
対応するStataコマンドは以下の通りです。オプション(推計方法や分散-共分散構造の設定)は適宜。
xtmixed Y X1 X2 || G:
次に切片と傾き(X1だけ)をランダムにしたもの。
Y=β0+β1X1+β2X2+r
β0=γ00+u0
β1=γ10+u1
コマンドは以下。||G:の右には個体レベルの変数のみを入れますが、すべて入れるのではなく傾きをランダムにしたいものだけを入れます。何も入らなければ切片のみにランダム効果が導入されます。
xtmixed Y X1 X2 || G: X1
次に切片のランダム効果のみにグループ・レベルの説明変数Zを投入したもの。
Y=β0+β1X1+β2X2+r
β0=γ00+γ01Z+u0
β1=γ10+u1
コマンドは以下。特に何も意識せずZを投入するだけです。
xtmixed Y X1 X2 Z || G: X1
次に切片と傾き(X1だけ)のランダム効果にZを投入したもの。
Y=β0+β1X1+β2X2+r
β0=γ00+γ01Z+u0
β1=γ10+γ11Z+u1
コマンドは以下。面倒なのは、あらかじめ交互作用項を作っておく必要があること(下のコマンドのままうつとエラーが出ます)。
xtmixed Y X1 X2 Z X1*Z || G: X1
最後にX2にもランダム効果とZを導入したもの。
Y=β0+β1X1+β2X2+r
β0=γ00+γ01Z+u0
β1=γ10+γ11Z+u1
β2=γ20+γ21Z+u2
コマンドは以下です。X2とZの交互作用項の他に、G:の右側にもX2を追加します。
xtmixed Y X1 X2 Z X1*Z X2*Z|| G: X1 X2
X2のランダム効果にZを投入しない場合でも、β2をランダム効果にしたい場合にはG:の右側にX2を追加します。
やっぱりややこしいですね〜。とはいえ、||の前の部分は、混合表記の式をそのまま推計すればいいんですけどね。
Multilevel and Longitudinal Modeling Using Stata, Second Edition
- 作者: Sophia Rabe-Hesketh,Anders Skrondal
- 出版社/メーカー: Stata Press
- 発売日: 2008/02/07
- メディア: ペーパーバック
- クリック: 18回
- この商品を含むブログ (4件) を見る