ICC(1,1) の計算とサンプルサイズ計算を R で行う方法
- 級内相関係数 ICC(1,1) の計算
- 級内相関係数 ICC(1,1) のサンプルサイズ計算
- 級内相関係数のサンプルサイズ計算のスクリプト
- 級内相関係数のサンプルサイズ計算をエクセルで
- まとめ
- 参考サイト
級内相関係数 ICC(1,1) の計算
級内相関係数(ICC)は、信頼性指標に使える。
ICC Case1は、一人の検査をする人(検者、けんじゃ)の一貫性を確認する指標だ。
ICC(1,1)は、一人の検者がk回測定を行ったデータそのものを使って計算する。
ICC(1,k)は、k回測定の平均値を使う方法。
R では、psych パッケージ の ICC() で計算できる。
データ拝借元:級内相関係数|統計解析ソフト エクセル統計
first <- c(2.8,5.4,4.0,4.9,5.2,2.2,3.5) second <- c(3.1,4.4,4.3,4.2,4.5,3.4,3.9) third <- c(2.6,4.3,4.0,4.7,4.2,2.7,3.3) dat.oneway <- cbind(first, second, third) rownames(dat.oneway) <- c(1:7) dat.oneway library(psych) ICC(dat.oneway)
3回の測定値をそのままつかうICC1は0.77、3回の平均を使うICC1kは0.91と計算された。
> library(psych) > > ICC(dat.oneway) Call: ICC(x = dat.oneway) Intraclass correlation coefficients type ICC F df1 df2 p lower bound upper bound Single_raters_absolute ICC1 0.77 11 6 14 0.00011 0.43 0.95 Single_random_raters ICC2 0.77 12 6 12 0.00022 0.43 0.95 Single_fixed_raters ICC3 0.78 12 6 12 0.00022 0.41 0.95 Average_raters_absolute ICC1k 0.91 11 6 14 0.00011 0.69 0.98 Average_random_raters ICC2k 0.91 12 6 12 0.00022 0.69 0.98 Average_fixed_raters ICC3k 0.91 12 6 12 0.00022 0.68 0.98 Number of subjects = 7 Number of Judges = 3
複数検者を想定したICC2やICC3が同時に計算されるが、検査のデザイン(一人の検者が3回ずつ測定)の観点から、計算結果は採用しない。
級内相関係数 ICC(1,1) のサンプルサイズ計算
ICC.Sample.Size パッケージの calculateIccSampleSize() を使うと、ICC(1,1) のサンプルサイズ計算ができる。
最初に一回だけインストールが必要だ。
install.packages("ICC.Sample.Size")
ICCが0.8で、一人の被検者さんあたり2回測定(k=2)の場合、
ICCが0.8で、k=3の場合
ICCが0.6で、k=4の場合を計算してみる。
library(ICC.Sample.Size) calculateIccSampleSize(p=0.80) calculateIccSampleSize(p=0.80,k=3) calculateIccSampleSize(p=0.60,k=4)
結果は、必要サンプルサイズは8例、5例、7例と計算された。
> calculateIccSampleSize(p=0.80) 1 N p p0 k alpha tails power 1 8 0.8 0 2 0.05 2 0.8 > calculateIccSampleSize(p=0.80,k=3) 1 N p p0 k alpha tails power 1 5 0.8 0 3 0.05 2 0.8 > calculateIccSampleSize(p=0.60,k=4) 1 N p p0 k alpha tails power 1 7 0.6 0 4 0.05 2 0.8
この関数の優れものなところは、ICCを一定間隔で刻んでサンプルサイズを計算できるところ。
いずれも0.1で刻んで、k=2, k=3, k=4のサンプルサイズを計算してみる。
calculateIccSampleSize(by="p", step=0.1) calculateIccSampleSize(by="p", step=0.1, k=3) calculateIccSampleSize(by="p", step=0.1, k=4)
ICCが0.0から1.0まで、0.1刻みのサンプルサイズ計算が得られる。
k=2, 3, 4それぞれ計算してみた。
観察回数kが増えるとサンプルサイズが小さくなることがわかる。
> calculateIccSampleSize(by="p", step=0.1) 1 N p p0 k alpha tails power 1 Inf 0 0 2 0.05 2 0.8 2 p N 1 0.0 Inf 2 0.1 781 3 0.2 192 4 0.3 83 5 0.4 45 6 0.5 28 7 0.6 18 8 0.7 12 9 0.8 8 10 0.9 5 11 1.0 2 > > calculateIccSampleSize(by="p", step=0.1, k=3) 1 N p p0 k alpha tails power 1 Inf 0 0 3 0.05 2 0.8 2 p N 1 0.0 Inf 2 0.1 286 3 0.2 77 4 0.3 36 5 0.4 21 6 0.5 14 7 0.6 10 8 0.7 7 9 0.8 5 10 0.9 4 11 1.0 2 > > calculateIccSampleSize(by="p", step=0.1, k=4) 1 N p p0 k alpha tails power 1 Inf 0 0 4 0.05 2 0.8 2 p N 1 0.0 Inf 2 0.1 156 3 0.2 45 4 0.3 22 5 0.4 14 6 0.5 10 7 0.6 7 8 0.7 5 9 0.8 4 10 0.9 3 11 1.0 2
級内相関係数のサンプルサイズ計算のスクリプト
calculateIccSampleSize() プログラムの中身から主要な部分を抜き出して、計算手順を確認してみた。
また、結果がわかりやすい表示になるように改造した。
icc.sample.size <- function (p=0, p0=0, k=2, sig.level=0.05, power=0.8, alternative=c("two.sided","one.sided")){ alternative <- match.arg(alternative) side <- switch(alternative, one.sided=1, two.sided=2) Za <- qnorm(sig.level/side, lower.tail=FALSE) Zb <- qnorm(power) Fp <- (1+(k-1)*p)/(1-p) Fp0 <- (1+(k-1)*p0)/(1-p0) Nraw <- 1+(2*(Za+Zb)^2*k)/((log(Fp/Fp0))^2*(k-1)) N <- ceiling(Nraw) METHOD <- "ICC Class1 sample size" structure(list(N=N, p=p, p0=p0, k=k, sig.level=sig.level, power=power, alternative=alternative, method=METHOD), class="power.htest") }
上記と同じ条件で、計算してみた。きちんと同じ答えになった。
> icc.sample.size(p=0.8) ICC Class1 sample size N = 8 p = 0.8 p0 = 0 k = 2 sig.level = 0.05 power = 0.8 alternative = two.sided > > icc.sample.size(p=0.8, k=3) ICC Class1 sample size N = 5 p = 0.8 p0 = 0 k = 3 sig.level = 0.05 power = 0.8 alternative = two.sided > > icc.sample.size(p=0.6, k=4) ICC Class1 sample size N = 7 p = 0.6 p0 = 0 k = 4 sig.level = 0.05 power = 0.8 alternative = two.sided
級内相関係数のサンプルサイズ計算をエクセルで
エクセルでサンプルサイズ計算できるようにした。
よければどうぞ。
級内相関係数 ICC のサンプルサイズ計算【エクセルでサンプルサイズ】 | TKER SHOP
使い方解説動画もよければどうぞ。
まとめ
級内相関係数 ICC(1,1) と ICC(1,k) の計算方法および ICC(1,1) のサンプルサイズ計算方法を紹介した。
参考になれば。
コメント