複数の (バイナリ) 基準で一連のビデオクリップを判断する 2 人の評価者からのデータ セットを入手しました。彼らの同意/不同意をよりよく理解するために、混同マトリックスをプロットしたいと思います。しかし、これまでに見つけたすべての例は、各審査員がクリップごとに 1 つの基準のみを評価した場合のものです。私の場合、審査員は各クリップのすべての基準を評価します。
ビデオクリップのセット (この場合は 80) に対して、2 人の評価者 (A と B) によって判断される 4 つのバイナリ基準 (A_Con..A_Mod) があるとします。
str (mydata)
'data.frame': 160 obs. of 6 variables:
$ A_Con: int 0 0 0 0 0 0 0 0 0 0 ...
$ A_Dom: int 0 0 0 1 0 0 0 0 0 0 ...
$ A_Met: int 0 0 0 0 0 0 1 0 0 1 ...
$ A_Mod: int 0 0 0 1 0 1 0 0 0 1 ...
$ Rater: Factor w/ 2 levels "A","B": 2 2 2 2 2 2 2 2 2 2 ...
$ Clip : int 1 2 3 4 5 6 7 8 9 10 ...
これを次のように溶かすことができます:
> str(mymolten)
'data.frame': 640 obs. of 4 variables:
$ Rater : Factor w/ 2 levels "A","B": 2 2 2 2 2 2 2 2 2 2 ...
$ Clip : int 1 2 3 4 5 6 7 8 9 10 ...
$ variable: Factor w/ 4 levels "A_Con","A_Dom",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value : int 0 0 0 0 0 0 0 0 0 0 ...
しかし、それを組み合わせをカウントする混同行列にキャストする方法がわかりません(これはこれほど完璧ではありません):
Rater B
A_Con A_Dom A_Met A_Mod
A_Con 19 1 0 0
Rater A A_Dom 1 20 0 0
A_Met 0 0 20 5
A_Mod 0 2 0 20
table() 関数が良いようですが、データをフォーマットするにはどうすればよいでしょうか?