Testing assumptions for expected siblings' covariances

Testing assumptions for expected siblings’ covariances

Hi. Inspired by the conversation of today and by the lecture of yesterday, I tried to figure out whether it was reasonable to assume, within the simulated dataset, the assumption that covariances between DZ and Siblings are the same.

I thought that a nice way to test for it is to extend the saturated model to include siblings. (note: this might be a bit dull, as I can imagine becoming a bit cumbersome with an increased number of twins; nevertheless, I guess it might work as a proof of concept)

In words, the extended saturated look a bit like this:
Constrain expected Means to be equal across Twin Order
Constrain expected Means to be equal across Sibship Type (i.e., sibling in the correspondent Zygosity group)
Constrain expected Means and Variances to be equal across Twin Order and Sibship Type
Constrain expected Means and Variances to be equal across Twin Order, Sibship Type and Zygosity
Constrain expected covariances across Sibship Type within Zygosity
Constrain expected covariances across Sibship Type within and between Zygosity
Constrain expected covariances between Sibship Type and Dyzgosity to be equal

I might have made some mistakes along the way, but if not, then it looks that the assumption is not too reasonable (?); in this particular case, it looks like points 6 and 7 significantly decrease the model fit (e.g., the covariance between Sib and MZ is higher than between Sib and DZ.)

I would love to hear some opinions. I am thinking about including siblings soon in one of my PhD projects, and I wondered if the approach outlined above is a feasible way to proceed before fitting an ac(d)e model.

I created and stored a reproducible example in

This is exactly the idea.

There are a few things that I would suggest to tweak. There are no “hard & fast” rules about what we equate first when we test these assumptions.

Mostly we are looking to be able to tell if there is a significant loss of fit when equating. At the moment, sometimes your script equates different types of parameters in a single step, which means that if there was a loss in fit we wouldn’t necessarily know why. For example, at one step some means and variances are equated for the first time in one model. I’d aim to finish equating the means before starting to equate the variances.

I’ve attached a script with some suggestions. In it, I follow the general pattern to test if Twin1 can = Twin2, if SibwMZ can = SibwDZ, then if Twins can = Sibs.

I also add the step to mxCompare at each level. To see as we go if there are any parameters that can’t be equated.

Because you did this, we can now see that the siblings had a significantly higher correlation with the MZ pairs, then they did in the DZ families.

Hope you enjoyed the scripting :slight_smile:
saturated_sib_suggestions.R (8.1 KB)


Many thanks for your reply.
I also like the idea of sequentially comparing models step by step.

I can’t say I enjoyed the scripting much though :sweat_smile: but happy with the results.

Thanks again :slightly_smiling_face: