Search code examples
rpermutationvegan

How to use the "how" function for an unbalanced repeated design


I have a set of control and treated plots which had been sampled during years. I run the prc function in the vegan package and want to perform a permutation test to check whether control vs treated plots significantly differ during years. As my data is unbalanced, I can not use strata function. my code look like:

library(vegan)
year=as.factor(c(rep(1995,8),rep(1999,8),rep(2001,8),rep(2013,4),rep(1995,4),
       rep(1999,4),rep(2001,4),rep(2013,4)))
treatment=as.factor(c(rep("control",28),rep("treated",16)))

I've written this, but I'm sure that it is wrong because the treatment is missing here:

h1 <- how(within = Within(type = "series", mirror = F),
          blocks = year, nperm = 999
)

Any suggestions is greatly appreciated.


Solution

  • Under the null hypothesis, samples from the control or treated groups are exchangeable and hence you don't want them in the permutation design; you really want to permute them to generate the permutation-based null distribution for the test statistic.

    The permutation design is there to indicate what isn't exchangeable.

    You haven't explained why you want samples within the blocks to be permuted in series; why are samples within years also time series? If they're not, you don't want this.

    You only need to worry about imbalance if you want to permute the strata. Whilst using blocks is similar in some respects to strata, blocks are never permuted so if you can use blocks you can use strata as you won't be permuting them.

    If you want to permute the years as groups of samples, then you'll need strata and you'll need balance at the year level, which you don't have.

    What you have defined with your call to how() is:

    • groups samples by year and as such samples will never be swapped between years, and
    • samples within the levels of year will be permuted in series, keeping their temporal order intact after applying cyclic shift permutations.

    If that's not what you want to do, you need to explain in words what you want to do. By "do" I mean what is it you want to test? What is your model in vegan?