診断の一致の程度

  • 今日の前の記事で紹介したSLE関係の話では、新規分類基準の性能を「ゴールドスタンダード診断」との正誤の程度として評価している
  • Cohen's kappa(Wiki)を使っているらしい
  • たまたま診断名が一致したのではなくて、「有意」に関連していますよ、という程度の数値化
  • Rでは、irrパッケージ(他のパッケージにもあるようだが)のkappa2()関数
    • 2カラムの診断名データを渡すようだ
library(irr)
data(diagnoses)
# Unweighted Kappa for categorical data without a logical order
kappa2(diagnoses[,2:3])
print(diagnoses[,2:3])
> diagnoses[,2:3]
                    rater2                  rater3
1              4. Neurosis             4. Neurosis
2  2. Personality Disorder 2. Personality Disorder
3         3. Schizophrenia        3. Schizophrenia
4                 5. Other                5. Other
5  2. Personality Disorder 2. Personality Disorder
6            1. Depression        3. Schizophrenia
7         3. Schizophrenia        3. Schizophrenia
8            1. Depression        3. Schizophrenia
9            1. Depression             4. Neurosis
10                5. Other                5. Other
11             4. Neurosis             4. Neurosis
12 2. Personality Disorder             4. Neurosis
13 2. Personality Disorder 2. Personality Disorder
14             4. Neurosis             4. Neurosis
15 2. Personality Disorder             4. Neurosis
16        3. Schizophrenia        3. Schizophrenia
17           1. Depression           1. Depression
18           1. Depression           1. Depression
19 2. Personality Disorder             4. Neurosis
20        3. Schizophrenia        3. Schizophrenia
21                5. Other                5. Other
22             4. Neurosis             4. Neurosis
23 2. Personality Disorder             4. Neurosis
24           1. Depression             4. Neurosis
25             4. Neurosis             4. Neurosis
26 2. Personality Disorder 2. Personality Disorder
27           1. Depression           1. Depression
28 2. Personality Disorder             4. Neurosis
29        3. Schizophrenia        3. Schizophrenia
30                5. Other                5. Other
  • また、新旧の2基準間の診断の一致の程度はMcNemarテストを使っている
Performance <-
matrix(c(794, 86, 150, 570),
       nrow = 2,
       dimnames = list("1st Survey" = c("Approve", "Disapprove"),
                       "2nd Survey" = c("Approve", "Disapprove")))
Performance
mcnemar.test(Performance)