FREQプロシジャのAGREEオプションで計算不能になった時の回避法

[OS]ALL
[リリース]
[キーワード] SAS/STAT

[質問]

FREQプロシジャでAGREEオプションを使用したところ、統計量が計算されませんでした。どのようにしたら一致統計量(agree statistics)を計算できるでしょうか。

[回答]

一致統計量を正しく計算するためには、分割表が正方形であり、かつ行ラベルが対応する列ラベルと合致していなくてはなりません。一例を挙げると、一方の評価者が評価尺度のカテゴリの1つを使用しておらず、それに対してもう1人の評価者が全てのカテゴリを使用しているような場合に、分割表は正方形になりません。このとき、分割表の1行、または1列が全て0カウントとなります。そのような行や列に対するオブザベーションがデータに含まれていたとしても、FREQプロシジャのデフォルト設定では、計算を行う前に全て0である行や列を削除します。結果として正方形でない分割表が作成され、SASログに次のメッセージが現れます。

NOTE: AGREE 統計量は、表の行と列の数が等しいとき計算されます。解析に重み付けされていないオブザベーションを追加するには、ZERO オプションを WEIGHT ステートメントに使用します。

評価者がそれぞれ1つずつのカテゴリを使用しておらず、またそれらのカテゴリが異なる場合には、全て0である行や列を削除した後の分割表は正方形になり、一致統計量が計算されてしまうことに注意しましょう。しかし、行と列が合致していないため、統計量は正しいものではありません。統計量を使用する前には、行と列が合致しているかどうかを確認するために、表を常にチェックすべきです。

これらのケースにおいて一致統計量を計算するためには、全て0である行や列が分割表の中で確かに存在していなくてはなりません。(評価された対象ごとに1オブザベーションずつ存在する)生データを使用しているときは、使用されていないカテゴリがあることは、特定の行や列にオブザベーションが存在しないことを単に意味します。そのため、FREQプロシジャはその行や列を含めるべきかを知る術がありません。そのような欠測のカテゴリに少なくとも1つのオブザベーションを追加することによって、表を正方形にすることができます。さらに、オリジナルのオブザベーションに1という重みを与え、WEIGHTステートメントを使用する必要があります。SAS 9以降では、追加したオブザベーションに対する重みを0として、WEIGHTステートメントでZEROSオプションを利用してください。SAS 9以前では、追加したオブザベーションの重みに何らかの非常に小さな値を与えてください。これらの方法はともに以下の例で紹介します。正確分布に基づいた計算は非整数の重みが存在するときには実行できないことから、小さな重みを与える方法ではEXACTステートメントによるカッパ係数に対する正確検定の計算を行うことができません。

場合によっては、(分割表のセルごとに1つのオブザベーションが存在する)要約されたデータが用意されていることもあります。ここでも、未利用のカテゴリの行や列のセルに対してオブザベーションが存在していないかもしれません。そのときには、前項と同様に0または小さな重みを持つオブザベーションを1つ追加しなくてはなりません。しかし、正方形である表の全セルがデータに存在しており、また欠測であるカテゴリに対して全て0の重みが与えられていれば、単にZEROSオプションをWEIGHTステートメントに追加する(SAS9以降)か、それらの1つを小さな値に変更する(SAS9以前)ことになります。

この例では、評価者の1人が評価尺度の1つのカテゴリを使用していないときに、表を正方形にする過程を紹介します。次のDATAステップは、シミュレーションで生データを作成していて、2人の評価者が50の対象を1から4までの尺度で評価していることを想定したものです。この簡単な例において、評価者による評価は互いに完全に独立です。重要な点として、評価者2がカテゴリ3を使用する確率は0であり、一方評価者1については全てのカテゴリに対して同じ確率が与えられています。結果として、評価者2からは3番目の評価項目が得られておらず、そのためPROC FREQにおいて分割表が正方形でなくなり、一致統計量が計算されません。

  data a;
do subject=1 to 50;
rater1=rantbl(4198374,.25,.25,.25,.25);
rater2=rantbl(4198374,.50,.25,0,.25);
output;
end;
run;
proc freq data=a;
tables rater1*rater2 / agree nocol norow nopercent;
run;

表 : rater1 * rater2

rater1

rater2

合計

1

2

4

1

10

4

3

17

2

5

3

3

11

3

2

6

3

11

4

6

3

2

11

合計

23

16

11

50

SAS 9 以降

SAS 9 からは、各欠測カテゴリに0の重みを持つオブザベーションを追加することによって、表を正方形にすることができます。そのカテゴリの全セルに対してではなく、ただ1つのセルにのみオブザベーションを追加するだけで構いません。以下のDATAステップでは、重みとして0を持つオブザベーションを1つ作成して、それをオリジナルデータに追加しています。また、オリジナルのデータセットにおける全オブザベーションに対して、重み1が与えられています。

  data b;
rater1=1; rater2=3; wt=0; output;
run;
data c;
set a b;
if wt=. then wt=1;
run;

WEIGHTステートメントとZEROSオプションを使用して分析を行いますが、それらの指定によりPROC FREQで重みが0であるセルを表の中に残すことができます。表は正方形になっていて、また一致統計量が計算されていることに注目しましょう。

  proc freq data=c;
weight wt / zeros;
tables rater1*rater2 / agree nocol norow nopercent;
run;

: rater1 * rater2

rater1

rater2

合計

1

2

4

1

10

4

3

17

2

5

3

3

11

3

2

6

3

11

4

6

3

2

11

合計

23

16

11

50




カッパ統計量

統計量

漸近標準誤差

95% 信頼区間

単純カッパ係数

0.0342

0.0779

-0.1185

0.1869

重み付きカッパ係数

0.0592

0.0990

-0.1349

0.2533

SAS 9 以前

SAS 9以前では、各欠測カテゴリに0ではなく小さな重みを持つオブザベーションを追加することによって、分割表を正方形にします。ここでも、そのカテゴリの全セルに対してではなく、ただ1つのセルにのみオブザベーションを追加するだけで構いません。以下のDATAステップは、重みとして1×10-20を持つオブザベーションを1つ作成して、オリジナルデータにそれを追加するものです。オリジナルのデータセットにおける全オブザベーションに対して、重み1が与えられています。

  data b;
rater1=1; rater2=3; wt=1e-20; output;
run;
data c;
set a b;
if wt=. then wt=1;
run;

WEIGHTステートメントを使用して分析を行います。分割表は正方形になり、一致統計量が計算されていることに注目しましょう。

  proc freq data=c;
weight wt;
tables rater1*rater2 / agree nocol norow nopercent;
run;

表 : rater1 * rater2

rater1

rater2

合計

1

2

3

4

1

10

4

1e-20

3

17

2

5

3

0

3

11

3

2

6

0

3

11

4

6

3

0

2

11

合計

23

16

1e-20

11

50




κ統計量

統計量

漸近標準誤差

95% 信頼区間

単純カッパ係数

0.0342

0.0779

-0.1185

0.1869

重み付きカッパ係数

0.0592

0.0990

-0.1349

0.2533

上記の内容は、米国SAS本社のWEBページに記載されているFAQに基づいて作成されています。

http://support.sas.com/kb/22/883.html