Dear Grant, and everyone,
I have a couple updates to announce. First, some clarifications. I misspoke to you before. I said that, “the integration test finds the mean of the pairwise Z scores”. This was imprecise (well, just wrong). The function finds the Z of the mean of the r_pls statistics. I’m sorry if I caused confusion. Additionally, I said, “The compare.pls function find the Z of the combined distributions.” Although this was not incorrect, there was actually a bug, in which the first pairwise r_pls value was used instead of the mean of the pairwise r_pls values. This was not intentional, but would have contributed to Z-score differences between the methods. I found this, actually, while updating both of these functions, and phylo.integration. Now any integration-pls function that has 3+ modules uses a weighted average rather than simple mean of r_pls statistics. For those interested in the weights, they are found as MC/2 * (p1 + p2) / sum(p), where MC is the number of pairwise module comparisons (number of weights to use) and p refers to the number of landmarks. This produces vectors of weights centered on 1, which are greater than 1 if module pairs have more landmarks and less than 1 if module pairs have fewer landmarks. The weights won’t be disparate unless the numbers of landmarks within modules are also disparate, and they will all be 1 if modules have the same number of landmarks.
Why do this? Imagine four modules of 5, 5, 30, and 60 landmarks. The pairwise Z for all comparisons are around 2-3, except between the first two, in which case Z = 10. A comparison involving only 10% of the landmarks should not have equal weight for estimating the overall Z. With the new weighting, the r_pls weight would be 6/2 * 10/100 = 0.30 (since there are 6 total comparisons), instead of 1.0.
This adjustment will probably have little effect in most cases but should mitigate cases with variable effect sizes resulting from variable module sizes. Also, compare.pls now produces consistent results with integration.test or phylo.integration! These updates can be installed with the version on Github.
Best,
Mike