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$– psjCommented Nov 17, 2011 at 14:59
-
$\begingroup$ ... and clarify what 'distance between years' means? $\endgroup$– onestopCommented Nov 17, 2011 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 ♦Commented Nov 17, 2011 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$– user7417Commented Nov 18, 2011 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$– user7417Commented Nov 18, 2011 at 14:30
1 Answer
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?