注:本文没有理论只有实际操作方法(R,Mplus,SPSS,EXCEL, HLM)。主要是组内相关系数(intraclass correlation coefficient ;ICC)算法,顺带捎了点求
尽管检验信度和非独立性的ICC概念上不同,但计算的时候是一回事儿。请在算ICC前,理理清楚自己要算啥、怎么算、有啥意义。【可以去看理论篇(1)和理论篇(2)】
R
1.(多层模型分析中最常用)lme4包 ——VarCorr()和lmer()功能/ nlme包 ——lme()功能
#先建模(random coefficient models, e.g. HLM)
fm1 <- lmer(Y~ XX+ (XX|Group1), data = data, na.action=na.omit)
#也可以写作
fm1 <- lme(Y~ XX, random = ~ 1|Group1, data = data, na.action=na.omit)
# 提取方差和标准差
VarCorr(fm1)
#得到结果:

根据公式ICC(1)=组间方差/(组间方差+组内方差)计算ICC(1)

再根据ICC2= k*ICC1 / (1 + (k-1)*ICC1)求得ICC2,k是每组的平均样本量。

2. psych包——ICC()功能
#例子1(此为 Shrout & Fleiss (1979)文中的例子)
sf <- matrix(c( 9, 2, 5, 8, 6, 1, 3, 2, 8, 4, 6, 8, 7, 1, 2, 6, 10, 5, 6, 9, 6, 2, 4, 7),ncol=4,byrow=TRUE) colnames(sf) <- paste("J",1:4,sep="") rownames(sf) <- paste("S",1:6,sep="")
#仅基于方差分析 ICC(sf,lmer=FALSE)
#例子2
#载入数据
sai <- psychTools::sai
#选择要分析的部分数据
sai.xray <- subset(sai,(sai$study=="XRAY") & (sai$time==1))
#计算ICC(lmer=True的情况下允许有缺失数据并会生成方差成分(variance components),相当于使用了lme4包种的lmer功能)
xray.icc <- ICC(sai.xray[-c(1:3)],lmer=TRUE,check.keys=TRUE)
xr