I have some species $\times$ year matrices and analyse the temporal dynamics by regressing distance between years on $\sqrt{ {\rm time \ lag} }$. Since the data points are not independent and since I get $(n^2-n)/2$ distances for a time series of length $n$, it's problematic to use the standard way of determining the significance of the regression slope. I thus applied a Monte Carlo permutation procedure and compared the distribution of the random slopes with the observed slope. No problem so far; most of my regression slopes are significant at $p<0.0001$. My question: How do I compare the slopes for different species $\times$ year matrices? The parametric approach is still not a solution due to the problems outlined above, but I am not aware of a solution based on permutation procedures.

  • $\begingroup$ can you give examples how your "species x year" matrices look like? $\endgroup$
    – psj
    Nov 17 '11 at 14:59
  • $\begingroup$ ... and clarify what 'distance between years' means? $\endgroup$
    – onestop
    Nov 17 '11 at 15:44
  • 1
    $\begingroup$ Even the ordinary regression fit may be invalid because the $(n^2-n)/2$ points reflect at most $n$ independent observations, causing extreme interdependence. So, testing significance appears to be the least of the concerns here. It looks like you need a different approach to the analysis altogether. $\endgroup$
    – whuber
    Nov 17 '11 at 16:05
  • $\begingroup$ @psj: My matrices consist of species (several dozens) in rows and years (25) in columns. For the MCPP I shuffle the column positions randomly (10,000 times). $\endgroup$
    – user7417
    Nov 18 '11 at 14:27
  • $\begingroup$ @onestop: Dissimilarity between years were measured by Hellinger distance, that is, Euclidean distance of Hellinger transformed data. Hellinger transformation: N'ij = √(Nij/∑Nij) where Nij is the population size of species i in year j, and ∑Nij is the sum of individuals across all species in year j. $\endgroup$
    – user7417
    Nov 18 '11 at 14:30

In principle, you can use a permutation test on any function on data of two groups. To compare regression slopes, you simply pick to species, shuffle the data points between the groups randomly, but instead of comparing the mean value of each permuted group, compare the regression slope. You may have to center your data before computing the regressor (which may be linear or custom built, as long as it can be described by a single parameter after centering the data). I'm not sure how to deal with multiple comparisons in permutation test -- for a few categories, Bonferroni correction will do the trick, but I guess with several dozen species that will kill any effect... Ideas on this?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.