No.06335 Re: Κ統計で欠損値がある場合 【青木繁伸】 2008/04/10(Thu) 22:43
http://www.hs.hirosaki-u.ac.jp/~pteiki/research/stat/S/kappa/
の作者に問いあわせるのが筋でしょうが,この場合は,実際には cohen.kappa の作者に訊くべきと言うか,cohen.kappa のプログラムを読んでみればよいかと。
一般的な話としては,欠損値の部分を空欄にする事を許すかどうかは,プログラムの作成方法によるでしょう。
欠 損値があっては解析できない(何らかの値で補完するという方法もありますが,何通りかあるし妥当性の問題もあるので,そのような場合にはどの方法で補完す るかの選択があるべきでしょう)ので,プログラム作者としては,欠損値のあるデータを削除して(欠損値のない状態にして)から分析するでしょう。そのよう なことに気づかない,そのようなことを無視するプログラム作者もいるでしょうが,そのような場合の結果としては,プログラムの実行途中にエラーが生じる, あるいは,エラーは生じないが間違えた結果を表示してしまう,ということがあるでしょう。そのような場合の,プログラムの利用者としては,欠損値のない完 全な状態のデータを用意して分析するというのが妥当なやり方でしょう。
以下にちょっと概括してみました> library(concord)結論:人を頼らないこと。人はあてにできないものなんだなあ。自分で確かめるしかない。
次のパッケージを付け加えます: 'concord'
> x # 件のページにあるデータ例
検者A 検者B 検者C 検者D 検者E
a 1 2 2 2 2
b 1 1 3 3 3
c 3 3 3 3 3
d 1 1 1 1 3
e 1 3 1 1 3
f 2 2 1 2 2
g 1 1 1 1 1
h 2 3 2 2 2
j 1 3 3 3 3
i 1 3 3 1 1
> cohen.kappa(x) # そのページにあるのと同じ結果になっている(よかった)
Kappa test for nominally classified data
3 categories - 5 methods
kappa (Cohen) = 0.615991 , Z = 7.00802 , p = 1.20848e-12
kappa (Siegel) = 0.417892 , Z = 5.45333 , p = 2.4718e-08
kappa (2*PA-1) = 0.24
> y <-rt() # 上のデータの最後に欠損値を含むケースを1例追加(入力関数はMac用に作ったもの)
0: 検者A 検者B 検者C 検者D 検者E
1: a 1 2 2 2 2
2: b 1 1 3 3 3
3: c 3 3 3 3 3
4: d 1 1 1 1 3
5: e 1 3 1 1 3
6: f 2 2 1 2 2
7: g 1 1 1 1 1
8: h 2 3 2 2 2
9: j 1 3 3 3 3
10: i 1 3 3 1 1
11: k 1 1 1 3 # 検者Dが欠損値
以下にエラー scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
'11' 行目には,6 個の要素がありません # たぶん,Windows の場合にも同じようなエラーになるだろう
> y <-rt() # 欠損値を空のままほっとくのは駄目みたいだから,Rの欠損値を表すNAを入れておく
> y # 読み込まれたデータは以下のようになる
検者A 検者B 検者C 検者D 検者E
a 1 2 2 2 2
b 1 1 3 3 3
c 3 3 3 3 3
d 1 1 1 1 3
e 1 3 1 1 3
f 2 2 1 2 2
g 1 1 1 1 1
h 2 3 2 2 2
j 1 3 3 3 3
i 1 3 3 1 1
k 1 1 1 NA 3 # 欠損値は NA となっている
> cohen.kappa(y) # κを求めてみる
Different row sums, a no-classification category was added.
Can't use Cohen's method with NAs # エラーメッセージは出るが,計算している
# 一体どんな計算をしているんだろうか?
# k についてのデータは欠損値を含むので,完全なデータはa〜jの10例で,
# それは一番最初のデータと同じ。
# なのに,以下の結果は最初のデータに対するものと違う。
# 一体何を計算しているのか,プログラムを読まないとわからない。
# 以下の結果は怪しい?
Kappa test for nominally classified data
4 categories - 5 methods
# なるほど,前のデータでは「3 categories - 5 methods」だったのだが,
# NA を 4 番目のカテゴリーと見なしたわけですね。それでよければよいのだが。。。
# 「欠損値」というのと「判定できない」というのは違うと思うのだけど
kappa (Siegel) = 0.378141 , Z = 5.01014 , p = 2.71949e-07
kappa (2*PA-1) = 0.181818
# どうも,NA をもう一つの,有効なカテゴリーとして扱うようなので,
# 実際にそうなのか確かめてみる
> y[is.na(y)] <- 4 # 欠損値を 4 番目のカテゴリーに変換する
> cohen.kappa(y) # そして,κを求めると,おお,上と同じ結果になっている。
# 推測は当たった。
Kappa test for nominally classified data
4 categories - 5 methods
kappa (Cohen) = 0.586514 , Z = 6.98883 , p = 1.386e-12
kappa (Siegel) = 0.378141 , Z = 5.01014 , p = 2.71949e-07
kappa (2*PA-1) = 0.181818
それとまた,だから,欠損値の処理は,人に頼らず自分でやりましょう。何通りかあるのだから,その内のどれにするかは自分で決めるべし。
No.06336 Re: Κ統計で欠損値がある場合 【青木繁伸】 2008/04/10(Thu) 22:46
ちなみに,件のページがデータ入力にExcelを噛ましているのは,余りメリットがない。
R で直接データ作成した方がよい。二つのソフトをあちこちするのも煩わしいし。
少なくとも,最初は Excel でデータを作ったとしても,CSV なりなんなりでテキストファイルとして保存し,その後は R では read.table で読む方が一般的だろう。作ったファイルの微修正は単純なテキストエディタを使えばよいし。
No.06340 どうもありがとうございます。 【スナフキン】 2008/04/11(Fri) 22:24
迅速にご教示下さいまして,どうもありがとうございます。教えて下さった通りにNAと打ち込んで,うまく解析が出来ました。
すみませんが,もう一つ教えて下さい。
kappa (Cohen)とkappa (Siegel) は,どう違うのでしょうか。
前述のホームページでは,「kappa (Siegel)の値が求めるκ係数である」と記載されていますが,私の解析データでは kappa (Cohen)の値が合致する係数のようです。
kappa (Siegel)の値ではマイナスの値も出てきます。
また,最後のkappa (2*PA-1)の意味も分かりません。
「人を頼らないこと」と注意を頂いたばかりですのに,再び質問をしてすみません。
どうぞよろしくお願い致します。
No.06348 Re: Κ統計で欠損値がある場合 【青木繁伸】 2008/04/13(Sun) 20:18
> Siegel,S. and Castellan,N.J.Jr.: Nonparametric statistics for the behavioral sciences (2nd ed.). McGraw-Hill,1988.
を見ればすぐにわかるでしょうが,それが今ここにないので,すぐにはわからない。
一番最初にすべきは,R のオンラインヘルプを読むこと。> library(concord)また,google 等で検索してみるのも取りあえずの解決を見いだす道ではないかと思います。
> ? cohen.kappa
久しぶりに書きましょう
人に魚を与えれば,その人は一日は暮らせる
人に魚の取り方を教えれば,その人は一生暮らせる
● 「統計学関連なんでもあり」の過去ログ--- 041 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る