Если вы хотите получить «семейный эффект» и «эффект предмета», мы можем подумать о случайных перехватах для них обоих, а затем смоделировать это с помощью пакета «lme4».
Но сначала мы должны дать каждому брату уникальный идентификатор, а не уникальный идентификатор в семье.
Затем для «корреляции между измерениями, проведенными на братьях и сестрах в пределах одного и того же семейства для разных предметов», мы можем указать что-то вроде:
mod<-lmer(value ~ (1|family)+(1|item), data=family)
Это даст нам фиксированный перехват эффектов для всех братьев и сестер, а затем два случайных перехвата эффектов (с дисперсией) для семьи и предмета.
Затем, для «корреляции между измерениями, проведенными для братьев и сестер в пределах одного и того же семейства для одного и того же предмета», мы можем сделать то же самое, но просто подналожить наши данные, поэтому у нас есть что-то вроде
mod2<-lmer(value ~ (1|family), data=subset(family,item=="1"))
Я думаю, что это может быть более простым подходом к вашему вопросу. Но если вы просто хотите получить ICC для предмета или семейства, в пакете 'psych' есть функция ICC () - просто будьте осторожны с тем, как элемент и ценность расплавляются в данных вашего примера.
Обновить
Некоторое из нижеприведенного является новым для меня, но мне понравилось работать над ним. Я действительно не знаком с идеей отрицательной внутриклассовой корреляции. Хотя я вижу в Википедии, что «ранние определения ICC» допускали отрицательную корреляцию с парными данными. Но так как он чаще всего используется сейчас, ICC понимается как доля от общей дисперсии, которая является дисперсией между группами. И это значение всегда положительно. Хотя Википедия, возможно, не самая авторитетная ссылка, это резюме соответствует тому, как я всегда видел использование ICC:
Преимущество этой структуры ANOVA состоит в том, что разные группы могут иметь разное количество значений данных, что трудно обрабатывать с использованием более ранней статистики ICC. Также обратите внимание, что этот ICC всегда неотрицателен, что позволяет интерпретировать его как долю общей дисперсии, которая «между группами». Этот ICC может быть обобщен для учета ковариатных эффектов, и в этом случае ICC интерпретируется как захват сходства внутри класса значений данных, скорректированных по ковариату.
Тем не менее, с данными, которые вы привели здесь, межклассовая корреляция между пунктами 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
Мы рассчитываем ICC, получая дисперсию от двух случайных перехватов эффектов и от остатков. Затем мы вычисляем квадрат семейной дисперсии по сумме квадратов всех дисперсий.
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")
Теперь мы можем смоделировать корреляцию между, например, item1 и item3 со случайным перехватом для family, как и раньше. Но сначала, возможно, стоит напомнить, что для простой линейной регрессии квадратный корень из r-квадрата модели совпадает с коэффициентом корреляции между классами (r Пирсона) для item1 и item2.
# 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
Связь между item1 и item3 является положительной. Но, просто чтобы проверить, что мы можем получить здесь отрицательную корреляцию, давайте манипулируем нашими данными:
# 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
Так что да, отношения между предметами могут быть отрицательными. Но если мы посмотрим на долю дисперсии между семьями в этих отношениях, то есть ICC (семья), это число все равно будет положительным. Как прежде:
temp2<-as.data.frame(VarCorr(mod4))$vcov
(temp2[1]^2)/(temp2[1]^2+temp2[2]^2)
## [1] 0.1694989
Таким образом, для отношений между item1 и item3, около 17% этой разницы происходит из-за различий между семействами. И мы по-прежнему допускаем наличие отрицательной корреляции между предметами.