RRPP and geomorph updates

12 views
Skip to first unread message

Mike Collyer

unread,
Jun 22, 2026, 11:51:25 AM (13 days ago) Jun 22
to geomorph R package
Dear geomorph users,

This announcement is in response to the thread started by Lucía last week, regarding the inconsistencies she discovered between lm.rrpp and lm.rrpp.ws ANOVA results, when using within-subject RRPP.  I found the issues, which I can best explain by noting that there are three possible types of analysis: (1) all observations are independent; (2) observations are not independent because of repeated observations on subjects, but subjects are not terms in the linear model; (3) observations are not independent because of repeated observations on subjects, and subjects are terms in the linear model.  A bug in our coding made types 1 and 3 mutually exclusive, so if type 2 was sought, it reverted to type 1.  I have updated RRPP to better discern among these types and I believe the results are now consistent.  Updates are current on Github and I plan to send an update to CRAN within a few weeks, pending some other needed updates.

Additionally, both RRPP and geomorph have been updated (and should be reinstalled from Github) with respect to Box-Cox power transformations for estimating effect sizes, Z.  The reason for updates in recent developments with likelihood ratio tests revealed that RRPP-generated sampling distributions could be strongly negative or strongly positive.  A Box-Cox transformation must be performed on positive values, greater than 0.  A typical step in transformation is to find y’ = y - min(y) + c, where c is a positive value, to shift all values to be positive.  We discovered this was a good idea not only if values were negative, but also grossly positive, which log-likelihoods could be, so our functions had a few kluges to deal with atypical vectors of statistics.  These updates did not work well, however, for statistics constrained to be between 0 and 1, like PLS correlation coefficients.  After some investigation, we discovered that the best solution (In terms of consistency) is to first find z’ = z - min(z) + 1, where z is a vector of the standard deviates of y, as it standardizes the initial variance of statistics prior to the power-transformation,  For most applications, this will have no obvious effect, especially if many RRPP permutations were used.  In some cases, it might change Z-scores, slightly.  In obscure cases, previously illogical Z-scores should now be more reliable.

We decided to elevate a box.cox function to RRPP so that it is available to users.  It differs from the MASS::boxcox function by using the standardization described above.  The RRPP and geomorph packages have been updated to accommodate this change.

I apologize for any hassles that the coding bug caused.  Other updates should be coming soon.

Best,
Mike


Reply all
Reply to author
Forward
0 new messages