級内相関係数, Case2, ICC(2, 1), ICC(2, k)

$ICC(1,1):$は、一人の評価者が測定した値の信頼性や一貫性を評価します
$ICC(1,k):$は、一人の評価者が測定した値の平均値の信頼性や一貫性を評価します

$ICC(2, 1)$では、数名の評価者が測定した値の信頼性や一貫性を評価します
$ICC(2, k)$では、数名の評価者が測定した平均値の信頼性や一貫性を評価します

$ICC(3, 1)$では、評価者を固定した場合の測定値の信頼性や一貫性を評価します(評価者間のばらつきは考慮されません)
$ICC(3, k)$では、評価者を固定した場合の測定値
平均値の信頼性や一貫性を評価します(評価者間のばらつきは考慮されません)

下記の文献のICC(2, 1)、ICC(2, k)をRでやってみます.

Shrout PE, Fleiss JL. Intraclass correlations: uses in assessing rater reliability. Psychol Bull. 1979 Mar;86(2):420-8. doi: 10.1037//0033-2909.86.2.420.

サンプルはここからです(いつもお世話になってます)

統計学入門−第5章

この記事を読まれる前にICC(1, 1)、ICC(1, k)をご参照ください

データの準備と要約

ICC(1, 1)、ICC(1, k)で使用したデータと同じファイルになります.3名の評価者が10名の患者に検査を実施した場合の誤差について検証します.ここではtest1=評価者1、test2=評価者2、test3=評価者3とします.

> head(dat)
  ID test1 test2 test3   mean
1  1    15    10    21 15.333
2  2    30    14    38 27.333
3  3    34    42    36 37.333
4  4    52    38    40 43.333
5  5    58    51    42 50.333
6  6    69    78    63 70.000
使用するパッケージ
R
library(irr)
library(tidyr)
library(ggplot2)
縦のデータに変換
R
dat2 <- tidyr::gather(
    dat[,-5],
    key=PT,
    value=data,
    -ID)
head(dat2)
> head(dat2)
  ID    PT data
1  1 test1   15
2  2 test1   30
3  3 test1   34
4  4 test1   52
5  5 test1   58
6  6 test1   69
変数をfactorへ変換(ここを忘れたらグラフが変わります)
基準カテゴリー

factor() 関数は名義変数をカテゴリカル変数(因子型変数)に変換し、データのカテゴリーは「水準」として定義されます。levels() 関数で表示されるカテゴリカル変数の水準のうち、最初に表示されるカテゴリーがデフォルトで基準カテゴリー(参照カテゴリー)となり、統計モデルでの比較の基点として機能します。relevel() 関数や factor() 関数の levels 引数を使用することで、レベルの順序を指定し、基準カテゴリーを変更することが可能です。

R
dat2$PT <- as.factor(dat2$PT)
levels(dat2$PT)
dat2$ID <- as.factor(dat2$ID)
levels(dat2$ID)
> dat2$PT <- as.factor(dat2$PT)
> levels(dat2$PT)
[1] "test1" "test2" "test3"
> dat2$ID <- as.factor(dat2$ID)
> levels(dat2$ID)
 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"
グラフでデータ構造を可視化
R
g1 <- ggplot2::ggplot(
    dat2,
    aes(x = ID, y = data)
)

g2 <- g1 + geom_jitter(
    height=0, width =0.1, size = 3,
    aes(colour = PT)
) 

m <- mean(dat2$data)

g2 + theme_test() + 
    xlab("ID") + ylab("評価者3名の検査結果") +
    geom_hline(aes(yintercept = m),
    color = "red"
)

test1=評価者1、test2=評価者2、test3=評価者3

コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください

タイトルとURLをコピーしました