note: xxxx cases (yyyy obs) dropped due to no positive outcome or multiple positive outcomes per case
nested logitは一つの個体に対して、当たり前ですが一つの選択肢しか認めません。最初はnlogtiのoption部分で ", case(id)"としていたのですが、今回はイベントヒストリーを走らせているので、一つの個体が複数のリスク期間を経験しています。したがって、個人*時間通りのidyear変数を別途作らないと、以上のようなエラー(というか忠告)が出て、大部分のケースが除外されてしまいます。
at least one alternative of var2 is contained in multiple alternatives of var1; this is not allowed
var1がtreeのレベル1とします(レストランのタイプなど)、var2が具体的な選択肢(店名)とします。var2が複数のvar1のカテゴリに入っている場合、以上のようなエラーが出ます。単純に用いる変数をミスっていました。ある個体が4つの最終的な選択肢を持つ時、分析に用いるケースは個体*4に等しくなります。実際には、その4つの選択肢のうち、どれか1つが個体によって選択されます。
note: branch 1 of level 1 is degenerate and the associated dissimilarity parameter ([first_tau]_cons) is not defined; see help nlogit for details
選択肢が一つしかネストされていない場合、以上のような警告が出ます。ここで必要な作業は、一つしかサブカテゴリがない選択肢に関して、以下のような制約をかけることです。
constraint 1 [altvar1_tau]_cons = 1
altvar1は、var1の選択肢です。最初の1はラベルに等しいので、数字ならなんでも良いはずです。後者の1は、dissimilarity parametersの係数を1に固定するという指示です。nlogitの際には、オプションのところにconstraints(1)のようにします。
先のようなnoteが出てしまいますが、事前にこのような処理をしていれば、推定結果は以下のようになります(処理をしても警告は出るので驚かないでください)。degenerateは割とよく発生する事態ですが、先のマニュアルには具体的な対策については書いていません。制約をかけないと、all constraints are invalidというエラーが出てしまうかと思います。
choice | Coef. Std. Err. z P>|z| [95% Conf. Interval]
(省略)
dissimilarity parameters
type |
/first_tau | 1 (constrained)
/second_tau | -2.361679 .0556322 -2.470716 -2.252642
No comments:
Post a Comment