[R-sig-ME] ICCs with Multiple Variables

Viechtbauer Wolfgang (STAT) wolfgang.viechtbauer at maastrichtuniversity.nl
Mon Aug 29 14:51:32 CEST 2011


Dear All,

Suppose I have measured some variable in siblings, which are nested within families. The data structure looks like this:

family sibling value
------ ------- -----
1      1       y_11
1      2       y_12
2      1       y_21
2      2       y_22
2      3       y_23
...    ...     ...

I want to know the correlation between measurements taken on siblings within the same family. The usual way of doing that is to calculate the ICC based on a random-intercept model:

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

If I only had pairs of siblings within families, this would be equivalent to:

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

except that the latter approach also allows for a negative ICC.

Now suppose I have measured three items in siblings nested within families. So, the data structure looks like this:

family sibling item value
------ ------- ---- -----
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
...    ...     ...  ...

Now, I want to find out about:

1) the correlation between measurements taken on siblings within the same family for the same item
2) the correlation between measurements taken on siblings within the same family for different items

If I only had pairs of siblings within families, I would just do:

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

which gives me a 6x6 var-cov matrix on the residuals of the form: 

[s^2_1         r_12 s_1 s_2  r_13 s_1 s_3  |  ICC_11 s^2_1    ICC_12 s_1 s_2  ICC_13 s_1 s_3]
[r_12 s_1 s_2  s^2_2         r_23 s_2 s_3  |  ICC_12 s_1 s_2  ICC_22 s^2_2    ICC_23 s_2 s_3]
[r_13 s_1 s_3  r_23 s_2 s_3  s^2_3         |  ICC_13 s_1 s_3  ICC_23 s_2 s_3  ICC_33 s^2_3  ]
[------------------------------------------------+------------------------------------------]
[                                          |  s^2_1           r_12 s_1 s_2    r_13 s_1 s_3  ]
[                                          |  r_12 s_1 s_2    s^2_2           r_23 s_2 s_3  ]
[                                          |  r_13 s_1 s_3    r_23 s_2 s_3    s^2_3         ]

based on which I could easily estimate those cross-sibling correlations. However, as shown above, for some families, I have only two siblings, but for other families more than two. So, that makes me think that I need to get back to a variance-components type of model. However, the correlation between items may be negative, so I do not want to use a model that constraints the correlations to be positive.

Any ideas/suggestions of how I could approach this?

Thanks in advance for any help!

Best,

Wolfgang




More information about the R-sig-mixed-models mailing list