একাধিক ভেরিয়েবলের সাথে ইন্ট্রাক্লাস সমন্ধের সহগ (আইসিসি)


13

ধরুন আমি ভাইবোনদের মধ্যে কিছু পরিবর্তনশীল পরিমাপ করেছি, যা পরিবারগুলির মধ্যে বাসা বাঁধে। ডেটা স্ট্রাকচারটি দেখে মনে হচ্ছে:

পরিবারের সহোদর মান
------ ------- -----
1 1 y_11
1 2 y_12
2 1 y_21
2 2 y_22
2 3 y_23
... ... ...

আমি একই পরিবারের মধ্যে ভাইবোনদের উপর নেওয়া পরিমাপের মধ্যে সম্পর্ক জানতে চাই। এটি করার স্বাভাবিক উপায়টি হল এলোমেলো-ইন্টারসেপ্ট মডেলের উপর ভিত্তি করে আইসিসি গণনা করা:

res <- lme(yij ~ 1, random = ~ 1 | family, data=dat)
getVarCov(res)[[1]] / (getVarCov(res)[[1]] + res$s^2)

এটি সমান হবে:

res <- gls(yij ~ 1, correlation = corCompSymm(form = ~ 1 | family), data=dat)

এগুলি বাদে পরবর্তী পদ্ধতির ফলে নেতিবাচক আইসিসিও পাওয়া যায়।

এখন ধরুন আমি পরিবারে বাসাবাড়িতে তিনটি জিনিস পরিমাপ করেছি। সুতরাং, ডেটা কাঠামোটি এর মতো দেখাচ্ছে:

পরিবারের সহোদর আইটেম মান
------ ------- ---- -----
1 1 1 y_111
1 1 2 y_112
1 1 3 y_113
1 2 1 y_121
1 2 2 y_122
1 2 3 y_123
2 1 1 y_211
2 1 2 y_212
2 1 3 y_213
2 2 1 y_221
2 2 2 y_222
2 2 3 y_223
2 3 1 y_231
2 3 2 y_232
2 3 3 y_233
... ... ... ...

এখন, আমি এটি সম্পর্কে জানতে চাই:

  1. একই আইটেমটির জন্য একই পরিবারের মধ্যে ভাইবোনদের উপর নেওয়া পরিমাপের মধ্যে সম্পর্ক
  2. বিভিন্ন আইটেমের জন্য একই পরিবারের মধ্যে ভাইবোনদের উপর নেওয়া পরিমাপের মধ্যে সম্পর্ক

পরিবারগুলির মধ্যে আমার যদি কেবল কয়েক ভাইবোন থাকে তবে আমি কেবল এটি করতাম:

res <- gls(yijk ~ item, correlation = corSymm(form = ~ 1 | family), 
           weights = varIdent(form = ~ 1 | item), data=dat)

6×6

[σ12ρ12σ1σ2ρ13σ1σ3ϕ11σ12ϕ12σ1σ2ϕ13σ1σ3σ22ρ23σ2σ3ϕ22σ22ϕ23σ2σ3σ32ϕ33σ32σ12ρ12σ1σ2ρ13σ1σ3σ22ρ23σ2σ3σ32]

ϕjjϕjj

আমি কীভাবে এর কাছে যেতে পারি তার কোনও ধারণা / পরামর্শ? কোনো সাহায্যের জন্য আগাম ধন্যবাদ!

উত্তর:


1

MCMCglmm প্যাকেজটি সহজেই সামঞ্জস্য কাঠামো এবং এলোমেলো প্রভাবগুলি পরিচালনা করতে পারে এবং অনুমান করতে পারে। তবে এটি বেইসিয়ান পরিসংখ্যান ব্যবহার করে যা নতুন ব্যবহারকারীদের জন্য ভয়ঙ্কর হতে পারে। এই প্রশ্নের জন্য MCMCglmm একটি পূর্ণাঙ্গ গাইডের জন্য MCMCglmm কোর্স নোটস এবং বিশেষত অধ্যায়ে দেখুন। আমি একেবারে এমসিএমসিগ্লিমিমে বাস্তবের জন্য ডেটা বিশ্লেষণ করার আগে মডেল কনভার্ভেশন এবং চেইন মিক্সিং মূল্যায়ন করার বিষয়ে সম্পূর্ণ পরামর্শ দিচ্ছি।

library(MCMCglmm)

MCMCglmm প্রিরিয়ার ব্যবহার করে, এটি পূর্বে একটি ইনফরমেশনাল ইনভার্স উইশচার্ট।

p<-list(G=list(
  G1=list(V=diag(2),nu=0.002)),
R=list(V=diag(2),nu=0.002))

মডেল ফিট

m<-MCMCglmm(cbind(x,y)~trait-1,
#trait-1 gives each variable a separate intercept
        random=~us(trait):group,
#the random effect has a separate intercept for each variable but allows and estiamtes the covariance between them.
        rcov=~us(trait):units,
#Allows separate residual variance for each trait and estimates the covariance between them
        family=c("gaussian","gaussian"),prior=p,data=df)

মডেল সংক্ষিপ্তসারে summary(m)জি কাঠামোটি এলোমেলো ইন্টারসেপ্টগুলির প্রকরণ এবং সম্প্রদায়ের বর্ণনা দেয়। আর কাঠামোটি পর্যবেক্ষণ স্তরের বৈকল্পিকতা এবং ইন্টারসেপ্টের কোভেরিয়েন্স বর্ণনা করে যা এমসিসিএমসিজিএলএম এর অবশিষ্টাংশ হিসাবে কাজ করে।

আপনি যদি কোনও বায়েশিয়ান প্ররোচিত হন তবে আপনি সহ / বৈকল্পিক শর্তগুলির পুরো উত্তর বিতরণ পেতে পারেন m$VCV। মনে রাখবেন যে নির্দিষ্ট প্রভাবগুলির জন্য অ্যাকাউন্টিংয়ের পরে এগুলি বৈকল্পিক।

তথ্য অনুকরণ

library(MASS)
n<-3000

#draws from a bivariate distribution
df<-data.frame(mvrnorm(n,mu=c(10,20),#the intercepts of x and y
                   Sigma=matrix(c(10,-3,-3,2),ncol=2)))
#the residual variance covariance of x and y


#assign random effect value
number_of_groups<-100
df$group<-rep(1:number_of_groups,length.out=n)
group_var<-data.frame(mvrnorm(number_of_groups, mu=c(0,0),Sigma=matrix(c(3,2,2,5),ncol=2)))
#the variance covariance matrix of the random effects. c(variance of x,
#covariance of x and y,covariance of x and y, variance of y)

#the variables x and y are the sum of the draws from the bivariate distribution and the random effect
df$x<-df$X1+group_var[df$group,1]
df$y<-df$X2+group_var[df$group,2]

এলোমেলো প্রভাবগুলির মূল সহ / প্রকরণটি অনুমান করার জন্য এলোমেলো প্রভাবের একটি বৃহত সংখ্যার স্তর প্রয়োজন। পরিবর্তে আপনার মডেল সম্ভবত পর্যবেক্ষিত কো / বৈকল্পিকগুলির অনুমান করবে যা দ্বারা গণনা করা যেতে পারেcov(group_var)


0

যদি আপনি একটি "পারিবারিক প্রভাব" এবং একটি "আইটেম এফেক্ট" পেতে চাইছেন তবে আমরা ভাবতে পারি যে এই দুটিয়ের জন্য এলোমেলো ইন্টারসেপ্ট রয়েছে এবং তারপরে এটি 'lme4' প্যাকেজের সাহায্যে মডেল করতে পারি।

কিন্তু, প্রথম আমরা একে সহোদর একটি অদ্বিতীয় আইডি বদলে একটি অদ্বিতীয় আইডি দিতে হবে মধ্যে পরিবার।

তারপরে " বিভিন্ন আইটেমের জন্য একই পরিবারের মধ্যে ভাইবোনদের উপর নেওয়া পরিমাপের মধ্যে সম্পর্ক" এর জন্য আমরা এরকম কিছু নির্দিষ্ট করতে পারি:

mod<-lmer(value ~ (1|family)+(1|item), data=family)

এটি আমাদের পরিবার এবং আইটেমের জন্য সমস্ত ভাইবোনদের জন্য একটি স্থির প্রভাব এবং তারপরে দুটি এলোমেলো প্রভাবের বিরতি (বৈকল্পিক সহ) দেবে।

তারপরে, " একই আইটেমটির জন্য একই পরিবারের মধ্যে ভাইবোনদের নিয়ে নেওয়া পরিমাপের মধ্যে সম্পর্ক ", আমরা একই জিনিসটি করতে পারি তবে কেবল আমাদের ডেটা সাবসেট করতে পারি, সুতরাং আমাদের মতো কিছু রয়েছে:

mod2<-lmer(value ~ (1|family), data=subset(family,item=="1")) 

আমি মনে করি এটি আপনার প্রশ্নের সহজতর পদ্ধতি হতে পারে। তবে, যদি আপনি কেবল আইটেম বা পরিবারের জন্য আইসিসি চান তবে 'সাইক' প্যাকেজের একটি আইসিসি () ফাংশন রয়েছে - আপনার উদাহরণের ডেটাতে কীভাবে আইটেম এবং মান গলে যায় সে সম্পর্কে সতর্ক থাকুন।

হালনাগাদ

নীচের কিছু আমার কাছে নতুন, তবে আমি এটির কাজটি উপভোগ করেছি। আমি নেতিবাচক ইন্ট্রাক্লাস পারস্পরিক সম্পর্কের ধারণার সাথে সত্যই পরিচিত নই। যদিও আমি উইকিপিডিয়ায় দেখতে পাচ্ছি যে "আইসিসির প্রথম দিকের সংজ্ঞা" জোড়যুক্ত ডেটার সাথে নেতিবাচক সম্পর্কের জন্য মঞ্জুরি দেয়। তবে এখন এটি সর্বাধিক ব্যবহৃত হওয়ার কারণে, আইসিসি-গ্রুপ-বৈকল্পিকের মধ্যে মোট বৈকল্পিকের অনুপাত হিসাবে বোঝা যায়। এবং এই মান সর্বদা ইতিবাচক। যদিও উইকিপিডিয়া সর্বাধিক অনুমোদনযোগ্য রেফারেন্স নাও হতে পারে, এই সংক্ষিপ্তসারটি আমি কীভাবে সর্বদা আইসিসি ব্যবহার করতে দেখেছি তার সাথে মিল রাখে:

এই আনোভা কাঠামোর একটি সুবিধা হ'ল বিভিন্ন গোষ্ঠীতে বিভিন্ন ধরণের ডেটা মান থাকতে পারে, যা পূর্ববর্তী আইসিসির পরিসংখ্যানগুলি ব্যবহার করে পরিচালনা করা কঠিন। এটিও নোট করুন যে এই আইসিসি সর্বদা অ-নেতিবাচক থাকে, এটি "গোষ্ঠীগুলির মধ্যে" মোট বৈকল্পিকের অনুপাত হিসাবে ব্যাখ্যা করার অনুমতি দেয়। এই আইসিসিকে কোভারিয়েট ইফেক্টের অনুমতি দেওয়ার জন্য সাধারণীকরণ করা যেতে পারে, এক্ষেত্রে আইসিসি কোভারিয়েট-অ্যাডজাস্টেড ডেটা মানগুলির অভ্যন্তরীণ শ্রেণির মিল খুঁজে পাওয়া হিসাবে ব্যাখ্যা করা হয়।

এটি বলেছিল যে আপনি এখানে দিয়েছেন এমন ডেটা দিয়ে, 1, 2 এবং 3 আইটেমের মধ্যে আন্তঃ শ্রেণীর সম্পর্ক খুব ভাল নেতিবাচক হতে পারে। এবং আমরা এটির মডেল করতে পারি, তবে গ্রুপগুলির মধ্যে ব্যাখ্যা করা বৈকল্পিকের অনুপাত এখনও ইতিবাচক থাকবে।

# load our data and lme4
library(lme4)    
## Loading required package: Matrix    

dat<-read.table("http://www.wvbauer.com/fam_sib_item.dat", header=TRUE)

সুতরাং পরিবারের মধ্যে পার্থক্য কত শতাংশ, আইটেম-গোষ্ঠী মধ্যে গ্রুপ বৈকল্পিক জন্য নিয়ন্ত্রণ? আপনার পরামর্শ মতো আমরা একটি র্যান্ডম ইন্টারসেপ্ট মডেল ব্যবহার করতে পারি:

mod<-lmer(yijk ~ (1|family)+(1|item), data=dat)
summary(mod)    
## Linear mixed model fit by REML ['lmerMod']
## Formula: yijk ~ (1 | family) + (1 | item)
##    Data: dat
## 
## REML criterion at convergence: 4392.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.6832 -0.6316  0.0015  0.6038  3.9801 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  family   (Intercept) 0.3415   0.5843  
##  item     (Intercept) 0.8767   0.9363  
##  Residual             4.2730   2.0671  
## Number of obs: 1008, groups:  family, 100; item, 3
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)    2.927      0.548   5.342

দুটি র্যান্ডম এফেক্টস ইন্টারসেপ্ট এবং অবশিষ্টাংশ থেকে পৃথক হয়ে আমরা আইসিসি গণনা করি। তারপরে আমরা সমস্ত বৈকল্পিকের স্কোয়ারের যোগফলের সাথে পারিবারিক প্রকরণের বর্গক্ষেত্র গণনা করি।

temp<-as.data.frame(VarCorr(mod))$vcov
temp.family<-(temp[1]^2)/(temp[1]^2+temp[2]^2+temp[3]^2)
temp.family    
## [1] 0.006090281

অন্য দুটি বৈকল্পিক অনুমানের জন্য আমরা তখন একই কাজ করতে পারি:

# variance between item-groups
temp.items<-(temp[2]^2)/(temp[1]^2+temp[2]^2+temp[3]^2)
temp.items    
## [1] 0.04015039    
# variance unexplained by groups
temp.resid<-(temp[3]^2)/(temp[1]^2+temp[2]^2+temp[3]^2)
temp.resid    
## [1] 0.9537593    
# clearly then, these will sum to 1
temp.family+temp.items+temp.resid    
## [1] 1

এই ফলাফলগুলি দেখায় যে মোট বৈকল্পিকের খুব সামান্যই পরিবারগুলির মধ্যে বা আইটেম-গোষ্ঠীর মধ্যে বৈচিত্র দ্বারা ব্যাখ্যা করা হয়েছে। তবে, উপরে উল্লিখিত হিসাবে, আইটেমগুলির মধ্যে আন্তঃ-শ্রেণীর সম্পর্ক এখনও নেতিবাচক হতে পারে। প্রথমে আমাদের ডেটা আরও বৃহত্তর ফর্ম্যাটে পাওয়া যাক:

# not elegant but does the trick
dat2<-cbind(subset(dat,item==1),subset(dat,item==2)[,1],subset(dat,item==3)[,1])
names(dat2)<-c("item1","family","sibling","item","item2","item3")

এখন আমরা পূর্বের মতো পরিবারের জন্য একটি এলোমেলো ইন্টারসেপ্ট সহ আইটেম 1 এবং আইটেম 3 এর মধ্যে পারস্পরিক সম্পর্ককে মডেল করতে পারি। তবে প্রথমত, সম্ভবত একটি স্মরণীয় রৈখিক প্রতিরোধের জন্য, মডেলটির আর-স্কোয়ারের বর্গমূল আইটেম 1 এবং আইটেম 2 এর জন্য আন্তঃ-শ্রেণীর সম্পর্কযুক্ত সহগ (পার্সোনস আর) এর সমান।

# a simple linear regression
mod2<-lm(item1~item3,data=dat2)
# extract pearson's r 
sqrt(summary(mod2)$r.squared)    
## [1] 0.6819125    
# check this 
cor(dat2$item1,dat2$item3)    
## [1] 0.6819125    
# yep, equal

# now, add random intercept to the model
mod3<-lmer(item1 ~ item3 + (1|family), data=dat2)
summary(mod3)    

## Linear mixed model fit by REML ['lmerMod']
## Formula: item1 ~ item3 + (1 | family)
##    Data: dat2
## 
## REML criterion at convergence: 1188.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.3148 -0.5348 -0.0136  0.5724  3.2589 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  family   (Intercept) 0.686    0.8283  
##  Residual             1.519    1.2323  
## Number of obs: 336, groups:  family, 100
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept) -0.07777    0.15277  -0.509
## item3        0.52337    0.02775  18.863
## 
## Correlation of Fixed Effects:
##       (Intr)
## item3 -0.699

আইটেম 1 এবং আইটেম 3 এর মধ্যে সম্পর্কটি ইতিবাচক। তবে, কেবল এখানে আমরা নেতিবাচক পারস্পরিক সম্পর্ক পেতে পারি তা পরীক্ষা করতে, আসুন আমাদের ডেটাগুলি ম্যানিপুলেট করুন:

# just going to multiply one column by -1
# to force this cor to be negative

dat2$neg.item3<-dat2$item3*-1
cor(dat2$item1, dat2$neg.item3)    
## [1] -0.6819125    

# now we have a negative relationship
# replace item3 with this manipulated value

mod4<-lmer(item1 ~ neg.item3 + (1|family), data=dat2)
summary(mod4)    

## Linear mixed model fit by REML ['lmerMod']
## Formula: item1 ~ neg.item3 + (1 | family)
##    Data: dat2
## 
## REML criterion at convergence: 1188.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.3148 -0.5348 -0.0136  0.5724  3.2589 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  family   (Intercept) 0.686    0.8283  
##  Residual             1.519    1.2323  
## Number of obs: 336, groups:  family, 100
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept) -0.07777    0.15277  -0.509
## neg.item3   -0.52337    0.02775 -18.863
## 
## Correlation of Fixed Effects:
##           (Intr)
## neg.item3 0.699

হ্যাঁ, আইটেমগুলির মধ্যে সম্পর্ক নেতিবাচক হতে পারে। তবে আমরা যদি এই সম্পর্কের পরিবারগুলির মধ্যে, যেমন আইসিসি (পরিবার) এর মধ্যে যে বৈচিত্রের অনুপাতের দিকে লক্ষ্য করি, তখনও এই সংখ্যাটি ইতিবাচক হবে। পূর্বের মত:

temp2<-as.data.frame(VarCorr(mod4))$vcov
(temp2[1]^2)/(temp2[1]^2+temp2[2]^2)    
## [1] 0.1694989

সুতরাং আইটেম 1 এবং আইটেম 3 এর মধ্যে সম্পর্কের জন্য, এই বৈকল্পিকতার প্রায় 17% পরিবারের মধ্যে ভিন্নতার কারণে is এবং আমরা এখনও আইটেমগুলির মধ্যে নেতিবাচক সম্পর্ক স্থাপনের অনুমতি দিয়েছি।


পরামর্শের জন্য ধন্যবাদ, তবে আমি দেখতে পাচ্ছি না এটি কীভাবে প্রকৃতপক্ষে সংযুক্তি সরবরাহ করবে। আমি এখানে কিছু তথ্য পোস্ট করেছি: wvbauer.com/fam_sib_item.dat নোট করুন যে আমি 9 টি পৃথক সম্পর্ক (প্লাস 3 আইটেমের রূপগুলি) অনুমান করতে চাই।
ওল্ফগ্যাং

তারপরে আমি এখানে সম্পর্কিত প্রশ্নাবলীর প্রথম-তালিকাটি একবার দেখার পরামর্শ দিই । আপনি শেষ পর্যন্ত যা খুঁজছেন তা কেবল নয়টি আইসিসির নয় তবে এই পোস্টের উত্তরটি খুব ভাল।
ইয়াতে

আবারও ধন্যবাদ, তবে এখনও - কীভাবে নয়টি আইসিসি সরবরাহ করে? সেখানে আলোচিত মডেলটি এটি সরবরাহ করে না। এছাড়াও, এটি একটি বৈকল্পিক উপাদান মডেল যা নেতিবাচক আইসিসিগুলিকে অনুমতি দেয় না, তবে যেমনটি আমি উল্লেখ করেছি, আমি আশা করি না সমস্ত আইসিসি ইতিবাচক হবে।
ওল্ফগ্যাং

আমি এর মতো কোনও মডেলটিতে নেতিবাচক আইসিসির সমস্যার সাথে পরিচিত নই - এখানে এ জাতীয় কোনও বাধা নেই। তবে এই পারস্পরিক সম্পর্ক গণনা করার জন্য, আপনি যখন উপরের কোডটি দিয়ে আপনার মডেলের সংক্ষিপ্তসারটি দেখুন তখন আপনার তিনটি বৈকল্পিক অনুমান রয়েছে: পরিবার, আইটেম এবং অবশিষ্ট। সুতরাং উদাহরণস্বরূপ, অন্যান্য পোস্টে বর্ণিত হিসাবে, আইসিসি (পরিবার), হবে ভার (পরিবার) ^ 2 / (ভের (পরিবার) ^ 2 + ভার (আইটেম) ^ 2) + ভার (অবশিষ্ট) ^ 2)। অন্য কথায় আপনার ফলাফলের প্রকরণটি দুটি এলোমেলো প্রভাব এবং অবশিষ্টাংশের জন্য বৈকল্পিক-স্কোয়ারের যোগফলের তুলনায় স্কোয়ার। আপনার জন্য পরিবার এবং আইটেমগুলির 9 টি সমন্বয় পুনরাবৃত্তি করুন।
ইয়াতে

1
9 টি বিভিন্ন আইসিসির মধ্যে কোনটির সাথে মিল রয়েছে var(family)^2/(var(family)^2+var(item)^2)+var(residual)^2)? এবং হ্যাঁ, আইসিসি নেতিবাচক হতে পারে। আমি আমার প্রশ্নের শুরুতে যেমন বর্ণনা করেছি, কেউ আইসিসির সাথে সরাসরি gls()মডেলটি অনুমান করতে পারে , যা নেতিবাচক অনুমানের অনুমতি দেয়। অন্যদিকে, বৈকল্পিক উপাদানগুলির মডেলগুলি নেতিবাচক অনুমানের জন্য অনুমতি দেয় না।
ওল্ফগ্যাং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.