カッパ係数とその難点
はじめに
心理的な特性の評価や、疾患の重症度の判定など、僕たちの身の回りには何らかの評価を行うためのさまざまな検査方法があります。
例えば学校や企業の採用試験などで適正検査というものを受けさせられた経験もあるかと思います。
これらの検査は決して適当に作られている訳ではなく、開発の段階で「時間を空けて同じ人を再検査したとしても、同じ結果になること」や「同じ人を異なる判定者が判定したとしても、同じ結果になること」を確かめる作業を行なっています。このことは信頼性(Reliability)の評価と呼ばれます。
今回は、信頼性を評価するための統計的指標のうち、カテゴリカルデータの場合に頻用されるカッパ係数(Kappa coefficient)について説明します。
カテゴリカルデータの場合というのは、検査による判定結果が「病気のあり・なし」(2値)であったり、1〜5の5段階評価(順序)であったりする場合に当たります。
今回は話を簡単にするために、判定が2値の場合について説明していきたいと思います。この場合のカッパ係数はCohen(コーエン)のカッパ係数と呼ぶことがあります*1。
状況設定
今回はSim and Wrightによる論文(参考文献1)の数値例を、より身近な例に置き換えて考えます。
ある企業では、入社希望者の採用選考の初期段階において
- 採用しても良いかもしれないので、応募者を次の選考ステップへ進める
- 明らかに採用すべきではないので、応募者を不採用とする
のいずれかの判断を行うためのチェックリストを作成しました。
しかしながら、このチェックリストを使った場合に採用担当者によって異なった判断がなされる恐れはないか?という意見が出たため、チェックリストの運用を始める前にその信頼性を評価することになりました*2。
そこで、実際の採用選考でチェックリストを使用し、信頼性を評価するためのデータ収集を行うこととしました。
39人の応募者に対して、2人の人事部員、AさんとBさんがチェックリストに沿った判断を行いました。結果は次の表のようになりました。
人事部員Bさん | ||||
採用 | 不採用 | 合計 | ||
---|---|---|---|---|
人事部員Aさん | 採用 | 22 | 2 | 24 |
不採用 | 4 | 11 | 15 | |
合計 | 26 | 13 | 39 |
直感的には、2人の採用・不採用の判断はほとんど一致しており、チェックリストはうまく作られていると言えそうです。一致した人数の総人数に占める割合を計算するとであり、84.62%の応募者に対して両者の判断が一致していました。
しかしながら、一致した2人の判断のうち、ある程度は偶然による可能性があります。
このデータによると、Aさんが採用と判断した割合は、Bさんが採用と判断した割合はでした。ここで、もし仮に「このチェックリストには異なる担当者の判断を一致させる効果が全くない」と仮定すると*3、たまたま両者ともに採用と判断する応募者の割合は(41.03%)と考えられます。同様に、偶然両者が不採用と判断する割合は(12.82%)です。
よって、今回のケースでは偶然2人の判断が一致する可能性は(53.85%)ほどあったことになります。
このように、もしチェックリストが採用判断の統一には役に立たないものだったとしても、半数以上の応募者についてはたまたま採否の判断が一致すると考えられるため、今回の一致の割合84.62%をもって信頼性が十分との結論を下すのは少し難しいかもしれません。
このようなとき、カッパ係数を用いることにより「偶然を超えた一致の度合い」を評価することができます。
カッパ係数とは
カッパ係数は、以下の式で定義される指標です。なおカッパとはギリシャ文字ののことをいいます。
ここでは観測された一致割合であり、先ほどの例では0.8462です。または「偶然起こりうる一致の割合」を指し、同じく先の例では0.5385と計算されていました。
カッパ係数の意味あいは以下のように解釈することができます。
つまり、偶然による影響を取り除いて、どの程度の一致が得られたかを測っています。
今回のデータからカッパ係数を計算すると以下のようになります。
カッパ係数の計算はどの統計ソフトにも実装されているかと思いますが、Rでは例えばirrパッケージを使って計算できます。コード例と、上記のデータ例を用いて計算した結果は以下の通りです(ごく単純な例ですみません)。
コード例
library(irr) ad = data.frame( rator1 = c(rep("accept", 24), rep("reject", 15)), rator2 = c(rep("accept", 22), rep("reject", 2), rep("accept", 4), rep("reject", 11)) ) table(ad$rator1, ad$rator2) kappa2(ad)
出力
> table(ad$rator1, ad$rator2) accept reject accept 22 2 reject 4 11 > kappa2(ad) Cohen's Kappa for 2 Raters (Weights: unweighted) Subjects = 39 Raters = 2 Kappa = 0.667 z = 4.19 p-value = 2.8e-05
カッパ係数の数値をそのまま解釈するのは少し難しいのですが、経験的な基準がいくつか知られています。
例えばLandis and Kochによる論文(参考文献2)で示された以下のものが有名です(日本語訳は筆者による)。
カッパ係数 | 一致の強さ |
---|---|
<0.00 | Poor(不十分) |
0.00 - 0.20 | Slight(わずか) |
0.21 - 0.40 | Fair(まずまず) |
0.41 - 0.60 | Moderate(中くらい) |
0.61 - 0.80 | Substantial(かなり) |
0.81 - 1.00 | Almost Perfect(ほぼ完全) |
このように、偶然判断が一致する可能性を考慮に入れて評価できることがカッパ係数の利点なのですが、データの性質によっては思わぬ結果が得られる場合があることが知られています。
カッパ係数の難点
Prevalenceの影響
まず、得られたデータが以下のようだった場合を考えてみます。*4
(例1-1)
人事部員Bさん | ||||
採用 | 不採用 | 合計 | ||
---|---|---|---|---|
人事部員Aさん | 採用 | 28 | 3 | 31 |
不採用 | 6 | 2 | 8 | |
合計 | 34 | 5 | 39 |
両者の判断が一致した割合はで、かなりの一致が見られています。ところが、偶然による一致を計算するとと大きな値であり、一致のかなりの部分が偶然によるものである可能性を否定できません。
この時カッパ係数は
と非常に小さい値になってしまいます。
一方、次のような結果が得られたとしたらどうでしょうか。
(例1-2)
人事部員Bさん | ||||
採用 | 不採用 | 合計 | ||
---|---|---|---|---|
人事部員Aさん | 採用 | 15 | 3 | 18 |
不採用 | 6 | 15 | 21 | |
合計 | 21 | 18 | 39 |
両者の判断が一致した割合は例1-1と同じくですが、偶然による一致はほどであり、カッパ係数は
です。このように、例1-1と例1-2では、観測された一致割合は同じですが、カッパ係数は大きく異なります。
例1-2では一致のうち採用と不採用はともに15人となりましたが、例1-1では採用との判断が一致したのは28人、不採用との判断が一致したのは2人で、大きな偏りがあります。今回の例での採用・不採用の頻度のことを「prevalence」*5と呼び、カッパ係数に影響を与える要因の一つとして知られています。prevalenceの不均衡が大きい(今回の例では採用と不採用の頻度の差が大きい)ほど、偶然による一致の可能性が大きくなるため、カッパ係数は小さい値をとる傾向にあります。
Biasの影響
今度は、以下のようなデータを考えます。
(例2-1)
人事部員Bさん | ||||
採用 | 不採用 | 合計 | ||
---|---|---|---|---|
人事部員Aさん | 採用 | 29 | 21 | 50 |
不採用 | 23 | 27 | 50 | |
合計 | 52 | 48 | 100 |
(例2-2)
人事部員Bさん | ||||
採用 | 不採用 | 合計 | ||
---|---|---|---|---|
人事部員Aさん | 採用 | 29 | 6 | 35 |
不採用 | 38 | 27 | 65 | |
合計 | 67 | 33 | 100 |
どちらの例も判断が一致した人数は採用29人・不採用27人で同じであり、その割合はです。一方、例2-1では採用・不採用と判断した人数がAさんとBさんでほとんど同じであるのに対し、例2-2ではAさんは半数以上を不採用、Bさんは半数以上を採用と判断しています。
まずは偶然による一致の割合を計算してみると、次のようになります。
(例2-1):
(例2-2):
よって、カッパ係数は次のようになります。
(例2-1):
(例2-2):
このように、採用・不採用と判断する割合が2人の間で異なるほど、カッパ係数は大きい値をとる傾向があることが知られています。この割合の相違の程度は「bias」と呼ばれています。
難点にどう対処するか
これら2つの影響を取り除いて評価するために、カッパ係数を調整するPABAK(Prevalence-adjusted Bias-adjusted Kappa)という方法が提案されています(参考文献3)。PABAKは、PrevalenceとBiasの問題が生じないような状況を想定し、もしそうであった場合に得られるであろうカッパ係数を計算します。
ただし、実際に得られたデータではなく仮想的な状況を考えているため、PABAK単体では意味をなさないのではないかという批判もあります。
参考文献1でも述べられているように、実際には、オリジナルのカッパ係数とPABAKをあわせて報告したり、PrevalenceやBiasがどの程度か・カッパ係数にはどの程度の影響を与えているのか、等の考察を加えることが必要になってくるかと思います。
まとめ
今回は、ある検査方法の信頼性を測る統計的指標であるカッパ係数について紹介しました。
カッパ係数にはさまざまな拡張がありますが、最も基本的なものは、異なる2名の判定が偶然を超えてどの程度一致するかを評価することを目的とします。単なる偶然の影響を除いた評価を行えるというところがポイントですが、一方でPrevalenceとBiasに影響を受けることが知られており、計算したカッパ係数の解釈には注意が必要と言えます。
参考文献
[1] Sim, J., & Wright, C. C. (2005). The kappa statistic in reliability studies: use, interpretation, and sample size requirements. Physical therapy, 85(3), 257-268.
[2] Landis, J. R., & Koch, G. G. (1977). The measurement of observer agreement for categorical data. biometrics, 159-174.
[3] Byrt, T., Bishop, J., & Carlin, J. B. (1993). Bias, prevalence and kappa. Journal of clinical epidemiology, 46(5), 423-429.
*1:判定結果が順序カテゴリー、例えば5段階評価のような場合には、2値の場合のカッパ係数を拡張した重み付きカッパ係数(Weighted Kappa coefficient)というものが使われます。
*2:チェックリストの内容の妥当性については別途検討されているものとします。
*3:つまり、2人の判断は統計的に独立と仮定しています。以下の計算では、独立な場合の同時確率の性質を用いています。
*4:本セクションの数値例も、参考文献1のものを使わせていただきました。
*5:医学分野では「有病率」と訳されることが多く、その文脈では、ある時点において関心ある集団内で疾患にかかっている人の割合を指します。「疾患のあり・なし」を判定するような場合をイメージするとしっくりくるかと思います。