ICC दो बेतरतीब ढंग से तैयार की गई इकाइयों के बीच अपेक्षित सहसंबंध के रूप में है जो एक ही समूह में हैं


12

बहुस्तरीय मॉडलिंग में इंट्राक्लास सहसंबंध अक्सर एक यादृच्छिक-प्रभाव एनोवा से गणना करता है

yमैंजे=γ00+यूजे+मैंजे

जहाँ स्तर -2 अवशिष्ट हैं और स्तर -1 अवशिष्ट हैं। फिर हम क्रमशः, और के विचरण के लिए अनुमान लगाते हैं, और , और उन्हें निम्नलिखित समीकरण में प्लग करते हैं:यूजेमैंजेσ^यू2σ^2यूजेमैंजे

ρ=σ^यू2σ^यू2+σ^2

होक्स (2002) पी 15 पर लिखते हैं कि

इंट्रक्लास सहसंबंध ρ को दो यादृच्छिक रूप से तैयार इकाइयों के बीच अपेक्षित सहसंबंध के रूप में भी समझा जा सकता है जो एक ही समूह में हैं

यहां एक प्रश्न है जो एक उन्नत प्रश्न पूछता है (यह लगभग बराबर के बजाय इसके बराबर क्यों है) और एक उन्नत उत्तर प्राप्त करता है।

हालांकि, मैं बहुत सरल प्रश्न पूछना चाहता हूं।

प्रश्न: एक ही समूह में दो बेतरतीब ढंग से खींची गई इकाइयों के बीच संबंध के बारे में बात करने का क्या मतलब है?

मुझे इस तथ्य की एक बुनियादी समझ है कि इंट्राक्लास सहसंबंध समूहों पर काम करता है न कि युग्मित डेटा पर। हालाँकि, मुझे अभी भी समझ में नहीं आया है कि यदि हम एक ही समूह से दो बेतरतीब ढंग से तैयार की गई इकाइयाँ हैं तो सहसंबंध की गणना कैसे की जा सकती है। उदाहरण के लिए, यदि मैं विकिपीडिया पृष्ठ पर डॉट प्लॉटों को देखता हूं , तो हमारे पास प्रत्येक समूह के भीतर कई समूह और कई बिंदु हैं।

जवाबों:


10

यदि आप एक ऐसे मामले पर विचार करते हैं, जहां प्रति समूह केवल दो व्यक्ति हैं, तो समतुल्यता को देखना सबसे आसान हो सकता है। तो, चलो एक विशिष्ट उदाहरण के माध्यम से चलते हैं (मैं इसके लिए आर का उपयोग करूँगा):

dat <- read.table(header=TRUE, text = "
group person   y
1     1        5
1     2        6
2     1        3
2     2        2
3     1        7
3     2        9
4     1        2
4     2        2
5     1        3
5     2        5
6     1        6
6     2        9
7     1        4
7     2        2
8     1        8
8     2        7")

इसलिए, हमारे पास 2 व्यक्तियों के साथ 8 समूह हैं। अब आइए रैंडम-इफेक्ट्स ANOVA मॉडल को फिट करें:

library(nlme)
res <- lme(y ~ 1, random = ~ 1 | group, data=dat, method="ML")

और अंत में, आइसीसी की गणना करें:

getVarCov(res)[1] / (getVarCov(res)[1] + res$sigma^2)

यह पैदावार: 0.7500003(यह 0.75 सटीक है, लेकिन यहां अनुमान प्रक्रिया में कुछ मामूली संख्यात्मक प्रभाव है)।

अब डेटा को लॉन्ग फॉर्मेट से वाइड फॉर्मेट में फिर से सेट करते हैं:

dat <- as.matrix(reshape(dat, direction="wide", v.names="y", idvar="group", timevar="person"))

अब ऐसा दिखता है:

   group y.1 y.2
1      1   5   6
3      2   3   2
5      3   7   9
7      4   2   2
9      5   3   5
11     6   6   9
13     7   4   2
15     8   8   7

और अब के बीच संबंध की गणना y.1और y.2:

cor(dat[,2], dat[,3])

यह प्रदान करता है: 0.8161138

रुको क्या? यहाँ क्या चल रहा है? यह 0.75 नहीं होना चाहिए? काफी नहीं! मैंने ऊपर जो गणना की है, वह आईसीसी ( इंट्रक्लास सहसंबंध गुणांक) नहीं है, लेकिन नियमित पियर्सन उत्पाद-पल सहसंबंध गुणांक है, जो एक अंतरसंबंध सहसंबंध गुणांक है। ध्यान दें कि लंबे प्रारूप के आंकड़ों में, यह पूरी तरह से मनमाना है कि कौन व्यक्ति 1 है और कौन व्यक्ति 2 है - जोड़े अनियंत्रित हैं। आप समूहों के भीतर डेटा में फेरबदल कर सकते हैं और आपको समान परिणाम प्राप्त होंगे। लेकिन व्यापक प्रारूप के आंकड़ों में, यह मनमाना नहीं है कि किसके तहत सूचीबद्ध है y.1और किसके तहत सूचीबद्ध है y.2। यदि आप कुछ व्यक्तियों के आसपास स्विच करने के लिए थे, तो आपको एक अलग सहसंबंध मिलेगा (सिवाय इसके कि आप उन सभी के चारों ओर स्विच करने के लिए थे - तो यह बराबर हैcor(dat[,3], dat[,2])जो अभी भी आपको देता है 0.8161138)।

फिशर ने बताया कि व्यापक प्रारूप डेटा के साथ आईसीसी प्राप्त करने के लिए एक छोटी सी चाल है। क्या प्रत्येक जोड़ी को दो बार, दोनों आदेशों में शामिल किया गया है, और फिर सहसंबंध की गणना करें:

dat <- rbind(dat, dat[,c(1,3,2)])
cor(dat[,2], dat[,3])

यह पैदावार: 0.75

इसलिए, जैसा कि आप देख सकते हैं, ICC वास्तव में एक सहसंबंध गुणांक है - एक ही समूह के दो व्यक्तियों के "अप्रकाशित" डेटा के लिए।

यदि प्रति समूह में दो से अधिक व्यक्ति थे, तो आप अभी भी उस तरह से आईसीसी के बारे में सोच सकते हैं, सिवाय इसके कि समूहों के भीतर व्यक्तियों के जोड़े बनाने के अधिक तरीके होंगे। ICC तब सभी संभावित युग्मों (फिर से अव्यवस्थित तरीके से) के बीच संबंध है।


7

@ वोल्फगैंग ने पहले ही शानदार जवाब दिया। मैं इसे थोड़ा विस्तार से दिखाना चाहता हूं कि आप 0.75 के अनुमानित आईसीसी में भी उसके उदाहरण के डेटासेट में पहुंच सकते हैं, जो कि वैल्यू के कई जोड़े को बेतरतीब ढंग से चुनने के सहज एल्गोरिथ्म को लागू करके - जहां प्रत्येक जोड़ी के सदस्य आते हैं एक ही समूह - और फिर बस उनके सहसंबंध की गणना। और फिर इस प्रक्रिया को आसानी से किसी भी आकार के समूहों के साथ डेटासेट पर लागू किया जा सकता है, जैसा कि मैं भी दिखाऊंगा।y

पहले हम @ वोल्फगैंग का डेटासेट (यहां नहीं दिखाया गया) लोड करते हैं। अब चलो एक साधारण R फंक्शन को परिभाषित करते हैं जो data.frame लेता है और एक ही समूह से टिप्पणियों का एकल यादृच्छिक रूप से चयनित युग्म लौटाता है:

get_random_pair <- function(df){
  # select a random row
  i <- sample(nrow(df), 1)
  # select a random other row from the same group
  # (the call to rep() here is admittedly odd, but it's to avoid unwanted
  # behavior when the first argument to sample() has length 1)
  j <- sample(rep(setdiff(which(dat$group==dat[i,"group"]), i), 2), 1)
  # return the pair of y-values
  c(df[i,"y"], df[j,"y"])
}

यदि हम इस फ़ंक्शन को @ वुल्फगैंग के डेटासेट पर 10 बार कॉल करते हैं, तो इसका एक उदाहरण है:

test <- replicate(10, get_random_pair(dat))
t(test)
#       [,1] [,2]
#  [1,]    9    6
#  [2,]    2    2
#  [3,]    2    4
#  [4,]    3    5
#  [5,]    3    2
#  [6,]    2    4
#  [7,]    7    9
#  [8,]    5    3
#  [9,]    5    3
# [10,]    3    2

अब ICC का अनुमान लगाने के लिए, हम इस फ़ंक्शन को बड़ी संख्या में कॉल करते हैं और फिर दो स्तंभों के बीच सहसंबंध की गणना करते हैं।

random_pairs <- replicate(100000, get_random_pair(dat))
cor(t(random_pairs))
#           [,1]      [,2]
# [1,] 1.0000000 0.7493072
# [2,] 0.7493072 1.0000000

यह एक ही प्रक्रिया लागू की जा सकती है, जिसमें कोई संशोधन नहीं है, किसी भी आकार के समूहों के साथ डेटासेट के लिए। उदाहरण के लिए, आइए एक डेटासेट बनाएं जिसमें 100 समूहों में से प्रत्येक में 100 समूह होते हैं, जिसमें सच आईसीसी 0.75 पर @ वोल्फगैंग के उदाहरण में सेट है।

set.seed(12345)
group_effects <- scale(rnorm(100))*sqrt(4.5)
errors <- scale(rnorm(100*100))*sqrt(1.5)
dat <- data.frame(group = rep(1:100, each=100),
                  person = rep(1:100, times=100),
                  y = rep(group_effects, each=100) + errors)

stripchart(y ~ group, data=dat, pch=20, col=rgb(0,0,0,.1), ylab="group")

यहाँ छवि विवरण दर्ज करें

मिश्रित मॉडल से विचरण घटकों के आधार पर ICC का अनुमान, हम प्राप्त करते हैं:

library("lme4")
mod <- lmer(y ~ 1 + (1|group), data=dat, REML=FALSE)
summary(mod)
# Random effects:
#  Groups   Name        Variance Std.Dev.
#  group    (Intercept) 4.502    2.122   
#  Residual             1.497    1.223   
# Number of obs: 10000, groups:  group, 100

4.502/(4.502 + 1.497)
# 0.7504584

और अगर हम यादृच्छिक युग्मन प्रक्रिया लागू करते हैं, तो हम प्राप्त करते हैं

random_pairs <- replicate(100000, get_random_pair(dat))
cor(t(random_pairs))
#           [,1]      [,2]
# [1,] 1.0000000 0.7503004
# [2,] 0.7503004 1.0000000

जो बारीकी से विचरण घटक के अनुमान से सहमत है।

ध्यान दें कि जबकि यादृच्छिक युग्मन प्रक्रिया सहज ज्ञान युक्त है, और विशेष रूप से उपयोगी है, जो विधि @ वुल्फगैंग द्वारा सचित्र है, वास्तव में बहुत चालाक है। इस तरह के डेटासेट के लिए आकार 100 * 100 में से एक, अनोखा समूह जोड़ियों की संख्या (स्व-युग्मों सहित) 505,000 है - एक बड़ी लेकिन खगोलीय संख्या नहीं - इसलिए यह सहसंबंध की गणना करना हमारे लिए पूरी तरह से संभव है। डेटासेट से बेतरतीब ढंग से नमूना लेने के बजाय, सभी संभव जोड़ियों के पूरी तरह से समाप्त सेट। यहां किसी भी आकार के समूहों के साथ सामान्य मामले के लिए सभी संभव जोड़ियों को प्राप्त करने के लिए एक समारोह है:

get_all_pairs <- function(df){
  # do this for every group and combine the results into a matrix
  do.call(rbind, by(df, df$group, function(group_df){
    # get all possible pairs of indices
    i <- expand.grid(seq(nrow(group_df)), seq(nrow(group_df)))
    # remove self-pairings
    i <- i[i[,1] != i[,2],]
    # return a 2-column matrix of the corresponding y-values
    cbind(group_df[i[,1], "y"], group_df[i[,2], "y"])
  }))
}

अब यदि हम इस फ़ंक्शन को 100 * 100 डेटासेट पर लागू करते हैं और सहसंबंध की गणना करते हैं, तो हमें यह मिलता है:

cor(get_all_pairs(dat))
#           [,1]      [,2]
# [1,] 1.0000000 0.7504817
# [2,] 0.7504817 1.0000000

जो अन्य दो अनुमानों से अच्छी तरह सहमत है, और यादृच्छिक युग्मन प्रक्रिया की तुलना में, गणना करने के लिए बहुत तेज है, और कम विचरण करने के अर्थ में एक अधिक कुशल अनुमान भी होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.