Figured out the GOF in cmdscale()!
After a whole bunch of reading around, I finally figured out how the GOF (“goodness of fit”) statistic reported by the R function cmdscale() works. It reports two numbers. The first is the sum of the first k eigenvalues divided by the sum of the absolute values of all of the n-1 eigenvalues, where k is the number of eigenvectors you request from the function and n is the rank of the distance matrix you supply. The second is the same thing but divided by the sum of the positive eigenvalues only (so, the bigger, and better-looking, number).
Although I still don’t understand how the PCO algorithm works exactly, in spite of trying rather hard to work through the original Gower paper from 1966, it still feels like a victory to at least have figured out what the R function I’m using is doing. I also figured out why Mike Foote, in his morphospace papers, kept referring to the ratio of the eigenvalues to the trace of the distance matrix as his measure of variance explained, since the trace (i.e. the sum of the diagonals) of the distance matrix is, by definition, zero.
Anyway. Having done a lot of reading and google-trawling on the subject of PCO, I started feeling rather grotty as the sun went down, and decided I might not be doing myself a favor in the long run pushing myself too hard when I’m sick. So, I decided to call it and try again tomorrow, when I will hopefully be feeling better. It’s been another good day—something new understood that I didn’t understand before, another paragraph written: progress made, momentum gained. Forwards!

