級内相関係数, 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)をご参照ください

例題

3名の評価者が10名の患者に検査を実施した場合の誤差について検証します

データの準備と要約

ICC(1, 1)、ICC(1, k)で使用したデータと同じファイルになります

ここではtest1=評価者1、test2=評価者2、test3=評価者3とします

使用するパッケージ
library(irr)
library(tidyr)
library(ggplot2)
縦のデータに変換
dat2 <- tidyr::gather(
    dat[,-5],
    key=PT,
    value=data,
    -ID)
head(dat2)
変数をfactorへ変換(ここを忘れたらグラフが変わります)
dat2$PT <- as.factor(dat2$PT)
dat2$ID <- as.factor(dat2$ID)
グラフでデータ構造を可視化
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

Rの関数でICC(2,1)をやってみましょう

Rの関数を使用してICC(2,1)を算出

irr::icc(
    dat[,2:4],
    model="twoway",
    type="agreement",
    unit="single"
)

結果のみでよければ、ここまでです

ここからは、もう少し詳しく学習してみましょう

統計モデル

モデルは繰り返し測定のない二元配置分散分析です

Shrout(1979)の論文では、以下のようになっています(ただし記号は異なります)

$y_{ij}=\mu+\alpha_i+\beta_j+(\alpha\beta)_{ij}+w_{ij}$

$i=1, \dots , n \quad j=1, \dots ,k $

このモデルを簡単に説明すると以下のようになります

検査結果=全体の平均+患者の影響+評価者の影響+ 患者と評価者の組み合わせで生じる影響+誤差による影響

しかし繰り返し測定がないので、$(\alpha\beta)_{ij}とw_{ij}$ を個別に推定することは困難です(Shrout, 1979, p422)

ここでは以下のモデルで考えます(ICCの結果には問題ありません)

$y_{ij}=\mu+\alpha_i+\beta_j+e_{ij}$

$\alpha_i \sim N(0, \sigma_T^2) \quad \beta_j \sim N(0, \sigma_U^2) \quad e_{ij} \sim N(0, \sigma_E^2)$

  • $\sigma_T^2$:真の分散(真の検査結果のバラツキ)
  • $\sigma_U^2$:評価者による分散(測定誤差)
  • $\sigma_E^2$:誤差による分散

$ICC(2,1)=\dfrac{\sigma_T^2}{\sigma_T^2+\sigma_U^2+\sigma_E^2}$

The Expected Mean Squares(平均平方の期待値)

評価者数$=k$、患者数$=n$

患者平均平方和 (between-targets mean square) の期待値

$\quad BMS=k\sigma_T^2+\sigma_E^2$

評価者平均平方和 (between-judges mean square) の期待値

$\quad JMS=n\sigma_U^2+\sigma_E^2$

誤差平均平方和 (Mean Square Error) の期待値

$\quad MSE=\sigma_E^2$

$ICC(2,1)=\dfrac{BMS-MSE}{BMS+(k-1)MSE+\dfrac{k(JMS-MSE)}{n}}$

(期待値の求め方は以下のページをご参照ください)

分散分析表

fit <- lm(data ~ ID + PT, data=dat2)
anova(fit)

分散分析表から平均平方和のみを取り出してICCを求めてみます

BMS <- anova(fit)[1, 3]
JMS <- anova(fit)[2, 3]
MSE <- anova(fit)[3, 3]
(ICC2 <- (BMS - MSE)/(BMS + (3-1)*MSE + 3*(JMS-MSE)/10))

Rの関数iccで算出した解と同じですね

ICC(2,1) の95%信頼区間

$ICC(2,1)=\dfrac{BMS-MSE}{BMS+(k-1)MSE+\dfrac{k(JMS-MSE)}{n}}$

$\quad =\dfrac{n(BMS-MSE)}{nBMS+(kn-k-n)MSE+kJMS}$

ここからは、かなり難解ですので・・・

Shrout(1979)の論文から引用させていただきます

$ICC = ICC(2,1)$

$F_j = \dfrac{JMS}{MSE}$

$v = \dfrac{(k-1)(n-1)(k*ICC*F_j+n(1+(k-1)ICC)-k*ICC)^2}{(n-1)k^2*ICC^2*F_j^2+(n(1+(k-1)*ICC)-k*ICC)^2}$

ICC(2,1)の95%信頼区間は以下のようになるそうです

$Fu=F_{0.975}(n-1,v)$

$Fl=F_{0.975}(v, n-1)$

下限:$Lo = \dfrac{n(BMS-F^*MSE)}{F^*(kJMS+(kn-k-n)EMS)+nBMS)}$

上限:$Up = \dfrac{n(F_*BMS-MSE)}{kJMS+(kn-k-n)EMS+nF_*BMS}$

そのまま計算してみます(正確には「Rに計算してもらいます」です)

k <- 3
n <- 10
ICC <- ICC2
f <- JMS/MSE
v1 <- ((k-1)*(n-1))*(k*ICC*f+n*(1+(k-1)*ICC)-k*ICC)^2
v2 <- (n-1)*k^2*ICC^2*f^2+(n*(1+(k-1)*ICC)-k*ICC)^2
v <- v1/v2
F1 <- qf(0.975, 9, v)
F2 <- qf(0.975, v, 9)
(Lo <- n*(BMS-F1*MSE)/(F1*(k*JMS+(k*n-k-n)*MSE)+n*BMS))
(Up <- n*(F2*BMS-MSE)/(k*JMS+(k*n-k-n)*MSE+n*F2*BMS))

Rの関数で算出した値と同じですね

詳細は下記の論文をご参照ください
SATTERTHWAITE, Franklin E. An approximate distribution of estimates of variance components. Biometrics bulletin, 1946, 2.6: 110-114.
FLEISS, Joseph L.; SHROUT, Patrick E. Approximate interval estimation for a certain intraclass correlation coefficient. Psychometrika, 1978, 43: 259-262.

Rの関数でICC(2, k)をやってみましょう 

3人の計測結果の平均値が対象

患者平均平方和 (between-targets mean square) の期待値

平均値をとるので一人の患者に結果が1つになります

よって

$BMS=\sigma_T^2+\sigma_E^2$

$ICC(2,3)=\dfrac{BMS-MSE}{BMS+\dfrac{JMS-MSE}{10}}$

irr::icc(
    dat[,2:4],
    model="twoway",
    type="agreement",
    unit="average"
)
(ICC2k <- (BMS - MSE)/(BMS + (JMS - MSE)/10))

ICC(2,k) の95%信頼区間の求め方

同一患者に$k$回の同じ試験を実施しているため、全試験の合計得点の信頼性係数はスピアマン・ブラウンの公式(Spearman-Brown’s formula)により算出されます

$\dfrac{k*ICC(2,1)の下限}{1+(k-1)*ICC(2,1)の下限} < ICC(2,k) < \dfrac{k*ICC(2,1)の上限}{1+(k-1)*ICC(2,1)の上限}$

##

$ICC(2,1)$で求めた下限($Lo$)と上限($Up$)を使用

k*Lo/(1+(k-1)*Lo)#下限
k*Up/(1+(k-1)*Up)#上限

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

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