天天看點

相關系數excel_如何求組内相關系數ICC?(應用篇)

注:本文沒有理論隻有實際操作方法(R,Mplus,SPSS,EXCEL, HLM)。主要是組内相關系數(intraclass correlation coefficient ;ICC)算法,順帶捎了點求

相關系數excel_如何求組内相關系數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)
           

#得到結果:

相關系數excel_如何求組内相關系數ICC?(應用篇)

根據公式

ICC(1)=組間方差/(組間方差+組内方差)計算ICC(1)
相關系數excel_如何求組内相關系數ICC?(應用篇)

ICC(1)=組間方差/(組間方差+組内方差)

再根據

ICC2= k*ICC1 / (1 + (k-1)*ICC1)

求得ICC2,k是每組的平均樣本量。

相關系數excel_如何求組内相關系數ICC?(應用篇)

ICC2= k*ICC1 / (1 + (k-1)*ICC1)

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) 
xray.icc 
           

#檢視方差組成部分

xray.icc$lme
           

3.ref="https://www.rdocumentation.org/packages/irr/versions/0.84.1/topics/icc">irr 包——icc()功能

icc(data, model = c("oneway", "twoway"),   type = c("consistency", "agreement"),      unit = c("single", "average"), r0 = 0, conf.level = 0.95)
           

data就是資料集(dataframe),載入前要預先處理好行列資訊(僅保留要測的變量)。

model(預設單因子)、type(預設C)、unit(預設單個評分者)的選擇上面講過了。

r0(明确零假設(H0:r=r0),執行了單側檢驗(H1: r > r0)和conf.level可以不用打出來,按預設設定處理。

方法2、3的資料種,列(column)數預設是評分/評委人數(number of judges),行(line)數預設是被試人數;輸出結果都是6項ICC指數,即ICC1-3、ICC1k-3k。

4. 專門的ICC包(筆者沒用過,請自行琢磨)

Mplus(例子引自Michael Zyphur的5日workshop)

完整資料連結如下:

Mplus Workshop at The University of Melbourne, February 4-8, 2019 (5 Days).​melbourne.figshare.com

或者:dropbox連結(不含視訊):https://tinyurl.com/y2ooc4nw 或者:B站教學視訊連結:https://www.bilibili.com/video/BV1MV411f7yt 或者:海外黨油管連結:https://www.youtube.com/watch?v=ekpMPTYn8uQ&list=PL8aoPJZQes3qZbWeho7WFNjgpRtLU3KHs&index=13

先建一個空的雙層模型,求ICC1,然後自己手動求一下ICC2,

代碼如下:

Title: Random Intercept
Data: File is High School and Beyond.dat;  
           

! 1982年,7185名來自160所高中及以上學校的問卷資料

Variable: 
Names are   school student minority 
female ses MAch size pracad disclim;
           
  • ! school 是學校編号,分類變量(clustering variable)
  • ! student 是學生編号
  • !minority代表是否是少數族裔,1=黑人,0=其他
  • ! female代表性别,1 = 女, 0 = 男
  • ! ses 是社會經濟地位
  • !MAch 是數學成績
  • !size 學校規模(組間變量)
  • ! sector 部門, 1 = 私立天主教學校, 0 = 公立學校 (組間變量)
  • ! pracad ! 學生占比(組間變量)
  • !disclim; ! 紀律風氣(disciplinary climate), 分數越低越好(組間變量)
Usevariables = MAch;   
Cluster = School;    

Analysis:   
Type = twolevel;   
Estimator = ML; 
           

! 也可以使用貝葉斯模型Bayes

Model:   
%Between%   MAch;    
%Within%   MAch;    
Output: Tech1 Tech8 standardized sampstat;
           

!輸出結果:

相關系數excel_如何求組内相關系數ICC?(應用篇)

Intraclass correlation就是要求的ICC1了,然後average cluster seize就是k(平均每組的樣本大小),帶入公式

ICC2= k*ICC1 / (1 + (k-1)*ICC1)

求得ICC2。 注:結果會得到如下

warnings

說你輸入的變量和其它所有别的變量都無關,

可以直接無視

,因為你隻輸入了一個變量MACH,不存在和它有關的别的變量。

相關系數excel_如何求組内相關系數ICC?(應用篇)

SPSS(點點滑鼠就好了。)

1.用ANOVA模型求均方,代公式

  1. Analyze > Compare Means > One-Way ANOVA
  2. 選擇Factor(組Group),Dependent List(分數Score)>OK
相關系數excel_如何求組内相關系數ICC?(應用篇)

3.得到結果:

相關系數excel_如何求組内相關系數ICC?(應用篇)

根據公式算ICC1和ICC2。

注意:這裡ICC1代入得公式是:

相關系數excel_如何求組内相關系數ICC?(應用篇)

ICC2代入公式是:

相關系數excel_如何求組内相關系數ICC?(應用篇)
  • 繼續用ICC2= k*ICC1 / (1 + (k-1)*ICC1)也可以

2.用混合線性模型求方差(linear mixed-effects model, LME),代公式(

*針對多層模型是否要聚合aggregate/資料是否具有高度組内相關性interclass correlation/個體分組内聚集clustered by group

  1. 分析Analyze >混合模型 Mixed Models > 線性混合模型Linear
  2. (選擇被試/重複變量/)直接點繼續
  3. 選擇因變量(Dependent variable)(+自變量(factor))
  4. 面闆上Random> 自定義模型>繼續continue
  5. 面闆Statistics > Model Statistics > 勾選parameter estimates>繼續continue
  6. 面闆點OK

根據公式:

相關系數excel_如何求組内相關系數ICC?(應用篇)

組間方差/(組間方差+組内方差)

ICC1 = 結果中(intercept estimate)/(intercept estimate + residual estimate)

3. 直接計算6類ICC。

确定了要計算的ICC模型類型後:
  1. “分析”(Analyze)>“度量”(Scale)>“可靠性分析”(Reliability Analysis)
  2. 選擇好想要分析的項目後,點選“統計量”(Statistics)
  3. 勾選”同類相關系數“(Intraclass correlation coefficient)
  4. 選擇你要計算的ICC模型和類型
  5. 按下”繼續“ (Continue)
  6. 按下”确定“(OK),得到”結果“(output)。

3.用syntax(LeBreton, & Senter, 2008).:

例1:

導入原始資料如下圖:

相關系數excel_如何求組内相關系數ICC?(應用篇)

原始資料:LeBreton, J. M., &amp;amp;amp;amp;amp;amp;amp;amp; Senter, J. L. (2008). Answers to 20 questions about interrater reliability and interrater agreement.Organizational research methods,11(4), 815-852.

  1. File >New > Syntax

#重整資料

SORT CASES BY Target. 
CASESTOVARS 
/ID = Target 
/GROUPBY = VARIABLE. 
EXECUTE. 
           
相關系數excel_如何求組内相關系數ICC?(應用篇)

重整後資料

#設定缺失資料

RECODE ITEM1.1 to ITEM2.5 (MISSING = 999). 
MISSING VALUES ITEM1.1 to ITEM2.5 (999). 
EXECUTE.
           
相關系數excel_如何求組内相關系數ICC?(應用篇)

處理缺失資料後的資料

#計算rwg

COMPUTE obs_var1 = var(item1.1,item1.2,item1.3,item1.4,item1.5). 
EXECUTE.
COMPUTE rwg1_un = 1-(obs_var1/2). 
COMPUTE rwg1_ss = 1-(obs_var1/1.34). 
EXECUTE.
           

#求ADM

COMPUTE MEAN1 = mean(item1.1,item1.2,item1.3,item1.4,item1.5). 
COMPUTE AD1 = mean(abs(item1.1-mean1),abs(item1.2-mean1),abs(item1.3-mean1), 
abs(item1.4-mean1), abs(item1.5-mean1)). 
EXECUTE.
           

#求ICC(1)ICC(k)

RELIABILITY 
/VARIABLES = Item1.1 Item1.2 Item1.3 Item1.4 Item1.5 
/SCALE(ALPHA) = ALL/MODEL = ALPHA 
/ICC = MODEL(ONEWAY) CIN = 95 TESTVAL = 0. 
EXECUTE.
           

#rwg(j)

COMPUTE obs_var2 = var(item2.1,item2.2,item2.3,item2.4,item2.5). 
COMPUTE avg_var = mean(obs_var1,obs_var2). 
EXECUTE.
COMPUTE rwgj_un = (2∗(1-avg_var/2))/((2∗(1-avg_var/2)) + avg_var/2). 
COMPUTE rwgj_ss = (2∗(1-avg_var/1.34))/((2∗(1-avg_var/1.34)) + avg_var/1.34). 
EXECUTE.
           

#求ADM(j)

COMPUTE MEAN2 = mean(item2.1,item2.2,item2.3,item2.4,item2.5). 
COMPUTE AD2 = mean(abs(item2.1-mean2),abs(item2.2-mean2),abs(item2.3-mean2), 
abs(item2.4-mean2), abs(item2.5-mean2)). 
COMPUTE ADJ = mean(AD1,AD2). 
EXECUTE.
           
相關系數excel_如何求組内相關系數ICC?(應用篇)

完成以上所有步驟後,新增了變量

例2.

原始資料如下

相關系數excel_如何求組内相關系數ICC?(應用篇)
#求rWGp

#先估計rwg

SORT CASES BY Leader. 
SPLIT FILE 
SEPARATE BY Leader. 
DESCRIPTIVES 
VARIABLES = Item1 
/STATISTICS = MEAN STDDEV VARIANCE MIN MAX.
           

#接着求

rWGp

(a single, global estimate of (pooled) within-groups agreement).

SORT CASES BY Leader. 
SPLIT FILE 
SEPARATE BY Leader. 
UNIANOVA 
item1 BY status  
/METHOD = SSTYPE(3) 
/INTERCEPT = INCLUDE 
/EMMEANS = TABLES(status) 
/PRINT = HOMOGENEITY 
/CRITERIA = ALPHA(.05) 
/DESIGN = status.
           

#item 2

SORT CASES BY Leader. 
SPLIT FILE 
SEPARATE BY Leader. 
UNIANOVA 
item2 BY status 
/METHOD = SSTYPE(3) 
/INTERCEPT = INCLUDE 
/EMMEANS = TABLES(status) 
/PRINT = HOMOGENEITY 
/CRITERIA = ALPHA(.05) 
/DESIGN = status.
           

#item3

SORT CASES BY Leader. 
SPLIT FILE 
SEPARATE BY Leader. 
UNIANOVA 
item3 BY status 
/METHOD = SSTYPE(3) 
/INTERCEPT = INCLUDE 
/EMMEANS = TABLES(status) 
/PRINT = HOMOGENEITY 
/CRITERIA = ALPHA(.05) 
/DESIGN = status.
           

完成以上步驟後,得到 3個平均均方誤差估計(average mean square error estimates)/

rWGp值:

.611, .333, .333。

#接着求rWGp(j)

根據公式求得3個rWGp(j):.87, .94, .94。

EXCEL

Michael S. Cole的網站可以下載下傳Biemann, Cole, & Voelpel (2012)開發的基于EXCEL計算ICC的工具。但是似乎需要付費的宏包才能運作?

****Available for download: Excel tool for computing within-group agreement and interrater reliablity. Developed to accompany Biemann, Cole, & Voelpel (2012).

HLM(筆者沒用過,但還是找了些資源,感興趣的小夥伴可以自行檢視):

下載下傳https://www.ssicentral.com/index.php/product/hlm

HLM8使用者手冊:https://www.hearne.software/getattachment/a104646a-d78e-4ccd-88cf-cf04a78b47f2/HLM8-Manual.aspx

HLM7指南裡有詳細步驟圖:https://multilevel-analysis.sites.uu.nl/wp-content/uploads/sites/27/2018/06/HLM-manual-Final.pdf