I've noticed different functions in different R libraries have different ways of assessing significance for Blomberg's K. For instance, picante's phylosignal looks at a distribution of PIC variance values from shuffled trait values to assess significance; when phytool's phylosig calculates a null distribution of Blomberg K values for shuffled traits.

What is the interpretative difference between the two and when should one approach be used over another? And what does it mean if the observed Blomberg's K is greater than 1 (traits less similar than expected under Brownian Motion model of evolution), but significantly greater (or less) than the null distribution of Blomberg's K-values?


The methods should be equivalent, given the same data. Using phylosignal's demo:


randtree <- rcoal(20)
randtraits <- rTraitCont(randtree)


phylosig(randtree, randtraits[randtree$tip.label], method="K",test=TRUE)

phylosignal returns:

         K PIC.variance.obs PIC.variance.rnd.mean PIC.variance.P PIC.variance.Z
1 1.430635          0.01147             0.4631411          0.001      -2.662701

and phylosig:

[1] 1.430635

[1] 0.001

Both give K = 1.430635 and an identical P-value.

Mathematically, it shouldn't matter if you shuffle the trait values or generate a null distribution of K. To get a null distribution for K, you have to shuffle something, and the tip values are probably being shuffled. You could check the code to be sure. An analogy is that, when doing a randomization for an ANOVA-like test, you can either shuffle the observed values or the group membership. Either way will give the same answer.

As for interpretation, Brownian motion is the simplest model for trait evolution, implying no direction, optima, rate changes, etc. K = 1 when the observed variation equals the expected variation. If K is greater than 1 then neighboring tips tend to resemble each other more than you would expect, suggesting a deviation from Brownian motion.


Your Answer

