หากคุณต้องการได้รับ "เอฟเฟ็กต์ครอบครัว" และ "เอฟเฟ็กต์รายการ" เราสามารถคิดได้ว่ามีการสกัดกั้นแบบสุ่มสำหรับทั้งสองอย่างจากนั้นทำโมเดลด้วยแพ็คเกจ 'lme4'
แต่ก่อนอื่นเราต้องให้ id ที่ไม่ซ้ำกันในแต่ละพี่น้องมากกว่ารหัสที่ไม่ซ้ำกันในครอบครัว
จากนั้นสำหรับ "ความสัมพันธ์ระหว่างการวัดที่เกิดขึ้นกับพี่น้องภายในครอบครัวเดียวกันสำหรับรายการที่แตกต่างกัน " เราสามารถระบุสิ่งที่ชอบ:
mod<-lmer(value ~ (1|family)+(1|item), data=family)
สิ่งนี้จะทำให้เรามีเอฟเฟกต์คงที่สำหรับพี่น้องทุกคนและจากนั้นจะมีเอฟเฟกต์แบบสุ่มสองอัน (พร้อมความแปรปรวน) สำหรับครอบครัวและรายการ
จากนั้นสำหรับ "ความสัมพันธ์ระหว่างการวัดที่เกิดขึ้นกับพี่น้องภายในครอบครัวเดียวกันสำหรับรายการเดียวกัน " เราสามารถทำสิ่งเดียวกันได้ แต่เพียงแค่เซ็ตย่อยข้อมูลของเราดังนั้นเราจึงมีสิ่งต่อไปนี้:
mod2<-lmer(value ~ (1|family), data=subset(family,item=="1"))
ฉันคิดว่านี่อาจเป็นวิธีที่ง่ายกว่าสำหรับคำถามของคุณ แต่ถ้าคุณต้องการ ICC สำหรับรายการหรือครอบครัวแพคเกจ 'psych' มีฟังก์ชัน ICC () เพียงแค่ระมัดระวังว่าไอเท็มและคุณค่านั้นละลายในข้อมูลตัวอย่างของคุณอย่างไร
ปรับปรุง
ด้านล่างนี้เป็นของใหม่สำหรับฉัน แต่ฉันสนุกกับการออกกำลังกาย ฉันไม่คุ้นเคยกับความคิดเกี่ยวกับความสัมพันธ์เชิงลบในระดับภายใน แม้ว่าฉันจะเห็นในวิกิพีเดียว่า "ต้น ICC defintions" อนุญาตให้มีความสัมพันธ์เชิงลบกับข้อมูลที่จับคู่ แต่เนื่องจากเป็นที่ใช้กันมากที่สุดในขณะนี้ ICC จึงถูกเข้าใจว่าเป็นสัดส่วนของความแปรปรวนทั้งหมดที่เป็นความแปรปรวนระหว่างกลุ่ม และค่านี้จะเป็นค่าบวกเสมอ แม้ว่า Wikipedia อาจไม่ใช่ข้อมูลอ้างอิงที่เชื่อถือได้มากที่สุด แต่สรุปนี้สอดคล้องกับวิธีที่ฉันเห็น ICC ใช้อยู่เสมอ:
ข้อได้เปรียบของกรอบการทำงานของ ANOVA นี้คือกลุ่มต่าง ๆ สามารถมีค่าข้อมูลจำนวนแตกต่างกันซึ่งยากต่อการจัดการโดยใช้สถิติ ICC ก่อนหน้า โปรดทราบว่า ICC นี้ไม่ใช่ลบเสมอทำให้สามารถตีความได้ว่าเป็นสัดส่วนของความแปรปรวนทั้งหมดที่เป็น“ ระหว่างกลุ่ม” ICC นี้สามารถวางนัยทั่วไปเพื่ออนุญาตให้มีผลกระทบของความแปรปรวนร่วมซึ่งในกรณีนี้ ICC ถูกตีความว่าเป็นการจับภาพความคล้ายคลึงกันภายในระดับเดียวกันของค่าข้อมูลที่ปรับค่า covariate
ที่กล่าวไว้ด้วยข้อมูลอย่างที่คุณได้รับที่นี่ความสัมพันธ์ระหว่างคลาสระหว่างรายการ 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")
ตอนนี้เราสามารถจำลองความสัมพันธ์ระหว่างไอเท็ม 1 และไอเท็ม 3 ด้วยการสกัดกั้นแบบสุ่มสำหรับครอบครัวเหมือนก่อน แต่ก่อนอื่นน่าจะจำได้ว่าสำหรับการถดถอยเชิงเส้นอย่างง่ายสแควร์รูทของ r-squared ของโมเดลนั้นเหมือนกับสัมประสิทธิ์สหสัมพันธ์ระหว่างคลาส (pearson's r) สำหรับข้อ 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
ความสัมพันธ์อยู่ระหว่าง 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% ของความแปรปรวนนี้เกิดจากความแปรปรวนระหว่างตระกูลต่างๆ และเรายังอนุญาตให้มีความสัมพันธ์เชิงลบระหว่างรายการ