Skip to content
Prev 3557 / 5632 Next

[R-meta] rma.mv: why some var components change but others don't across 2 models

Unless the values of 'outcome' are meaningful and not just (essentially arbitrary) values to distinguish different rows, using something like '~ 1 | outcome' makes no sense. For example, say the coding looks like this:

study outcome yi vi
1     1       .  .
1     2       .  .
2     1       .  .
2     2       .  .
2     3       .  .
3     1       .  .
...

'~ 1 | study / outcome' makes sense to allow for between- and within-study heterogeneity. But unless a "1" for outcome in study 1 represents the same type of outcome as "1" is study 2 and 3, 'list(~ 1 | study, ~ 1 | outcome') makes no sense. If the numbers or values are only used to distinguish different outcomes within the same study but carry no inherent meaning beyond that, then one could just as well have coded the studies as:

study outcome yi vi
1     1       .  .
1     2       .  .
2     3       .  .
2     4       .  .
2     5       .  .
3     6       .  .
...

and '~ 1 | study / outcome' would give identical results to the previous coding, but 'list(~ 1 | study, ~ 1 | outcome') would not. In fact, with the second coding, '~ 1 | study / outcome' and 'list(~ 1 | study, ~ 1 | outcome') are identical (because the second coding is implicitly creating the same nesting that '~ 1 | study / outcome' implies).

Regardless of the coding, '~ 1 | study / outcome' and '~ outcome | study' with struct="CS" is identical (strictly speaking, the latter allows for a negative correlation and if so, then the equivalence breaks down, but let's not get into this). Structures like "HCS" and "UN" only make sense again when the values of 'outcome' are inherently meaningful and not just arbitrary identifiers.

Best,
Wolfgang