LOGISTICプロシジャの結果でパラメータ推定値の符号が逆転する

[OS] ALL
[リリース] SAS 8.2以降
[キーワード] LOGISTIC, DESCENDING, REF=, ORDER=

[質問]

パラメータ推定値の符号が正負逆となるのですが、どうしてでしょうか。また、応答変数のどの水準に対して、モデルが推定されているのでしょうか。

[回答]

応答変数において、目的の水準に対するモデルではないことが考えられます。また、水準が3つ以上である場合には、水準の順序が意図されているとおりではないかもしれません。LOGISTICプロシジャを実行すると、ログにおけるNOTEメッセージ、およびアウトプットにおける‘Response Profile’にて、2値応答変数(binary response)の場合には、どの水準に対するモデルであるかが表示されます。また、順序応答変数(ordinal response)の場合には水準の順序、名義応答変数(nominal response)の場合には参照の水準が表示されます。2値応答変数、または順序応答変数の場合、モデルにおける水準、または水準の順序の変更は、パラメータ推定値の符号に影響します。

SAS 8.2以降では、MODELステートメントにおける応答変数のオプションとして、応答変数の水準、水準の順序、参照水準を指定することができます。これらのオプションを用いることによって、LOGISTICプロシジャにて意図されているモデルを推定することができます。

2値応答変数に対するモデル

EVENT=オプションを用いて、目的の応答水準を指定することができます。
たとえば、応答変数Yの水準が0、または1であり、水準1に対するモデルを推定する場合には、以下のように指定します。


  proc logistic;
    model y(event='1') = <your model effects>;
  run;

順序応答変数に対するモデル

算出される結果は、応答変数の水準が一様に昇順であるか、降順であるかに影響されます。
DESCENDINGオプション、ORDER=オプションを用いて応答変数における水準の順序を指定することができます。 この場合、‘Response Profile’にて表示される応答変数の水準が昇順であるか、降順であるかをご確認ください。 ‘Response Profile’にて、応答変数の水準と‘Ordered Value’の関連付けが表示され、 LOGISTICプロシジャでは、‘Ordered Value’が小さい水準に対するモデルを推定します。

たとえば、応答変数の水準が‘lo’,‘med’,‘hi’であるとします。
デフォルトでは、LOGISTICプロシジャは、昇順に水準を並べ、 ‘Ordered Value1’を最小の水準、 ‘Ordered Value 2’を次の水準に割り付けますので、以下のように水準が意味のある昇順とはなりません。

Response Profile
Ordered
Value
y Total
Frequency
1 hi 50
2 lo 50
3 med 59

入力データセットにおいて、水準が昇順、または降順となっている場合、(たとえば、‘lo’が‘med’の前、‘med’が‘hi’の前となっている場合)、ORDER=DATAオプションを指定することによって、適切な並び順とすることができます。


  proc logistic;
    model y(order=data) = <your model effects>;
  run;

Response Profile
Ordered
Value
y Total
Frequency
1 lo 50
2 med 59
3 hi 50

この場合、LOGISTICプロシジャでは、‘Ordered Value’が最小である‘lo’に対するモデルを推定します。
以下のように、DESCENDINGオプションを追記することにより、水準の順序を変更し、 ‘hi’に対するモデルに変更することができます。


  proc logistic;
    model y(order=data descending) = <your model effects>;
  run;

Response Profile
Ordered
Value
y Total
Frequency
1 hi 50
2 med 59
3 lo 50

名義応答変数に対するモデル

MODELステートメントにて、LINK=GLOGITオプションを指定することにより、一般化ロジットモデル(generalized logit model)を推定することができます。REF=オプションにて常に参照水準を指定することをお勧めします。
たとえば、名義応答変数Yの水準が1,2,3であり、水準1を参照水準とする場合には、以下のような記述となります。


  proc logistic;
    model y(ref='1') = <your model effects>;
  run;

上記の指定によって、以下の一般化ロジットに対するモデルを推定することになります。

log(p2/p1)
log(p3/p1)

参照水準1は、両方のロジットにおける分母となります。

上記の内容は、米国SAS Institute社のWebページに記載されているFAQをもとに作成しています。