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

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

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

R
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}}$

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

分散分析表

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

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

R
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に計算してもらいます」です)

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.

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

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