毎日がんばれあたん

計量社会学に関するメモとモチベーションを高めてくれる推しについて

パネルデータのロジスティック回帰分析メモ~stata~

 

パネルデータを使った分析は最近徐々に浸透しつつあるような気がしますが,

多くはいわゆるOLS線形回帰モデルであり,あまりロジットやプロビットに代表される

従属変数が2値のものでリンク関数をロジスティック分布とするような分析は相対的に少ないように思うので,備忘の意味もこめてxtlogitコマンドの使い方のメモです.

コマンドはstata ユーザー用(私の環境はstata ver.15)です.

 

基本は,線形回帰と同様に固定効果(fixed effect)とランダム効果(random effecr).

前者は時間不変の共変量の影響を完全に取り除いた上(つまり,独立変数と誤差項が無相関)で推計を行う.コマンドは,

xtlogit  Y  X ,fe 

が基本.サブコマンドfeは必須でfixed effectの略.

まず,Y(従属変数)は0か1かの2値を取る変数でかつ,時間によって変化する変数.

例えば結婚しているかどうか.これは同じA君でも25歳では未婚であっても30歳になると既婚となることが考えられるため,当然ながら時間によって変化する変数.よって例えば性別などの時間によって変化しない2値変数は使用できない(推定されない).

 またたとえば体重は,1か0という2値でないため,上記のコマンドではエラーとなり,この場合は線形回帰のxtregを用いる.ただし,体重が増えたかどうかかのように変換するのであれば(増えたら1,変化なしもしくは減ったら0などの変換)2値となるので使用可能.

 また,X(独立変数)は複数投入することができ,かつ時間によって変化する変数であれば,2値変数(ダミー変数)も多値変数(連続変数)も投入可能.もし,時間によって変化しない変数を投入した場合,変化の水準が変わらないため推定されない(エラーにはならないがstataの場合はomittedと表示される).

従属変数が量的変数の場合にはふつうxtregを使う(xtlogitは使えない).

 

ここまでの話はパネルデータ分析では基本的な話ではあるが念のための補足.

すべての変数は2値(ダミー変数)であるか否かという軸と,その変数が時間によって変わりうるか否かという軸に分けられる.それぞれ具体的な変数を示す.

 

①性別:男性か女性かの2値かつ,時間によって変化しない(性転換などは例外).

②出生時体重:2値でなくかつ,時間によって変化しない変数.

③婚姻状態:既婚か未婚かの2値かつ,時間によって変化する変数

④収入:2値でなくかつ,時間によって変化する変数

 

大きくは上記のように分けられる.うち,xtlogitの固定効果の推定において,従属変数は①婚姻状態,独立変数は④収入あるいは③婚姻状態を用いることができる.固定効果モデルの場合,①は独立変数としても従属変数としても使用できない.

 

また,これも念のための補足であるが,ここでいう「変数」とは,ある特定の値に定まらない数のことを指す.変数でないもの,つまり特定の値に一意に決まるものを「定数」という.

 分析に落とし込んで考えてみると,変数とは分散を持っており,つまりはデータを見た時に値が変わりうるものであれば変数となる.

 こうしたくどい説明をするのは,上記の例で「時間によって変化しない変数」と述べたことで混乱する人がいるためである.「変化しない」のに「変数」??と違和感を覚かもしれないが,これは何も不思議なことではなく,あくまで「同一個人の中では値が変わらない」の意味で時間不変という意味である.一方で個人「」では変わりうるものであれば変数となる.たとえば性別を考えてみれば,Aさんは1年間に男であれば今年も男になるため時間によって変化しないが,Bさんは女であれば「個人間で変わりうる」ため,変数といえる.

ただし,女性のみを調査対象として男性回答者が一人も含まれないデータ,あるいは女性のみを対象とした分析を行うような場合には,「女」という性別を取る個人しかいないため(つまり分散が0になるため),性別は変数ではなくなることに注意.

 少しくどくなったがこうした違いはデータ分析においてとても重要な違いである.特にパネルデータの分析において①~④の違いを理解しておかないと,xtloigtやxtregを実行した時に,なぜかエラーが出る,なぜか係数が推定されない,逆になぜか推定された,といった現象が起こりうるためである.

 

固定効果モデルの話に戻る.以下,xtlogit以外のパネルデータに対するロジスティック回帰分析を実行するコマンドを紹介する.

 

①xtgee

パネルデータに対する一般化推定方程式のコマンドであるxtgeeを用いることも可能.

コマンドは

xtgee Y X ,family(binomial) link(logit) corr(exchangeable) 

 

パネルデータに対する一般化方程式のコマンドは,要するに「線形回帰も非線形回帰も全部まとめてこのコマンドでいけます」というもの.

カンマの後のサブコマンドであるfamily , link, corrをいじってやると,線形モデルのほか,様々な一般化線形モデルを推定することができる.

family はいわゆる分布族を指定するコマンドで,ここでは従属変数が2値であるので,二項分布を示すbinomialを指定,linkは誤差分布のことで,ここではロジスティック回帰分析なのでlogitを指定,最後のcorrは共分散構造の指定で,ここではexchangeableと指定する.

場合によってはこのコマンドのほうが便利. 

 

②clogit 

clogit(条件付きロジット).コマンドは

clogit Y  X,group(ID)

 

カンマ後のサブコマンドでグループ変数を指定することが必須で,()内は

集団を示す変数名を入力する.

条件付きロジットは,要するにパネルデータに対するロジスティック回帰分析ということができ,ロジスティック回帰分析の推定である最尤推定を各グループ間で行うということ.xtlogitよりもこちらのコマンドのほうが実行している推定方法がコマンドとして具体的に再現されているため,本質を理解するにはこちらのコマンドのほうが良いかも.こちらでは、従属変数が変化した時点のみが分析対象として含まれる点に注意したい。

 

また,xtgeeとclogitはいわゆる頑健標準誤差をサブコマンドvce(robust)で出力することができるが,xtlogitだとなぜかそれができない.

 

ちなみに,ロジスティック回帰分析なのに,誤差ってなんだ?とひっかかる人もいるかもしれません.ここでは説明しませんが,離散選択モデルという発想のもとに,潜在的には2値の変数もその2値の間を揺れ動くため潜在的には連続量と想定することができるため(ただし,通常の連続量のように0より小さい,1より大きい値はとらない),誤差を問題とできるという話です.イメージとしては,未婚を0,既婚を1とすると,いまにも結婚しそうなより既婚に近い状態の未婚の人は1に近い0.8くらいかもしれないし,全然そういう気配を見せない人であれば,0に近い0.2くらいかもしれない,というようなイメージのもとで推計を行うのが,ロジスティック回帰分析(パネルデータによらない話です).

 

次に,固定効果モデル以外の代表として,ランダム効果モデルです.こちらは,固定効果モデルと異なり,独立変数と誤差との間に(ゆるい)相関を認めるモデルです.コマンドは

xtlogit Y   X   ,re

ここでいう誤差,とはつまりは時間不変の変数(と時間によって変わるけど,モデルに投入しなかった変数)との間に相関を認めるということになり,このモデルの場合,独立変数に時間不変の変数を投入することが可能.

ちなみに,ここでいう誤差は観察されない異質性と呼ばれることが多々あり,分析に投入しなかった(もしくはできなかった)変数のこと.例えば婚姻状態(未婚か既婚か)をYとした分析を行う時に,学歴のみを独立変数として投入したとする.しかし,結婚に影響しそうな年収をモデルに入れ忘れたか,もしくは持っているデータに含まれていないような場合,年収が観察されない異質性となる.つまり年収は結婚に対して効果を持ちそう,かつ,学歴とも関連がありそうな変数となる.「かつ」が重要で,別に学歴と年収が関連しない場合(統計的には相関しない場合),学歴の影響は正しく推計できる(結婚全体の説明力は弱くなるが).が,関連する場合には学歴の効果が過小あるいは過大に推計されてしまう(バイアス,偏りを持った推計値と呼ぶ). 上記の問題は線形回帰でもロジスティック回帰でも同様の問題であるが,パネルデータ分析の際の肝となる問題.

 

最後に補足というか,意外と大事なことではあるが,固定効果モデルの場合でも,時間依存の変数との交互作用をとる場合のみモデルに投入することが可能である.たとえば,現在働いているか否か,という時間で変わる変数と性別との交互作用のような場合である.交互作用とはつまりは,変数同士の積をモデルに投入するわけであるが,この積をとった新変数をデータセットなどで確認すれば時間によって変わる変数であることが一目瞭然である.当然ながら時間不変の変数の主効果は推定できないので,注意.

 

また,パネルデータの線形回帰と同様に,ハウスマン検定によって固定効果かランダム効果かどちらのモデルが適切か推定することもできる.