[R-sig-eco] Doing repeated measures on a randomized block design

Richard Boyce boycer @end|ng |rom nku@edu
Sun Jun 16 19:59:32 CEST 2019


Dear Pedro,

Thanks so much! Your comments got me headed in right direction.

First, I converted Dates to a day-of-year format and sorted by Date.

Second, I gave it a group structure, using:

fvfm <- groupedData(FvFm ~ Date | Tree/Exposure, perm.fvfm)

head(fvfm)
Grouped Data: FvFm ~ Date | Tree/Exposure
  Tree Exposure Date   FvFm
1    1        N   44 0.7950
2    1        S   44 0.7750
3    1        N   51 0.7790
4    1        S   51 0.6980
5    1        N   58 0.7725
6    1        S   58 0.6475

I needed to nest Exposure in Tree, otherwise I got the following error when running the GLS:

Error in Initialize.corAR1(X[[i]], ...) :
  covariate must have unique values within groups for "corAR1" objects

Then I ran GLS as:

gls.fvfm<-gls(FvFm ~ Exposure, correlation = corAR1(form = ~Date|Tree/Exposure), data = perm.fvfm);summary(gls.fvfm)

which gave me:

Generalized least squares fit by REML
  Model: FvFm ~ Exposure
  Data: perm.fvfm
        AIC      BIC   logLik
  -306.1793 -294.356 157.0896

Correlation Structure: ARMA(1,0)
 Formula: ~Date | Tree/Exposure
 Parameter estimate(s):
Phi1
   0

Coefficients:
                 Value   Std.Error  t-value p-value
(Intercept)  0.7780694 0.009153179 85.00538  0.0000
ExposureS   -0.0214861 0.012944549 -1.65986  0.0991

 Correlation:
          (Intr)
ExposureS -0.707

Standardized residuals:
       Min         Q1        Med         Q3        Max
-4.0182078 -0.3630604  0.2468685  0.6717131  2.0139322

Residual standard error: 0.0776673
Degrees of freedom: 144 total; 142 residual

I’m interpreting this to mean that Exposure is marginally significant, with S < N (which is what I’ve observed).

Once again, much thanks!

Rick

On Jun 16, 2019, at 9:45 AM, Pedro Pequeno <pacolipe using gmail.com<mailto:pacolipe using gmail.com>> wrote:

Dear Richard,

your question could be handled using a linear model incorporating a temporal autcorrelation structure within trees. However, I don't think using "tree" as random factor (e.g. in lme()) would be very helpful here because random factors assume a compound symmetry autocorrelation structure (same correlation for any temporal distance), which is probably overly simplistic for long time series. Instead, you could use Generalized Least Squares, gls() in R, which is a standard choice in such cases. For instance:

gls(FvFm ~ Exposure, correlation = corAR1(form = ~time|Tree), data = perm.fvfm)

This will fit a model assuming a first-order autoregressive correlation structure, i.e. residual autocorrelation should decrease as the temporal distance between them increases. Notice that "time" should be the temporal order of observations within trees, so you will have to convert your "Date" to this format first. For other correlation structures, relevant R functions and examples similar to yours, see Zuur et al. (2009), "Mixed effects models and extensions in ecology with R".

Best wishes,

Pedro

Em sex, 14 de jun de 2019 às 14:42, Richard Boyce <boycer using nku.edu<mailto:boycer using nku.edu>> escreveu:
I’m measuring chlorophyll fluorescence (FvFm), my measured variable, on N and S exposures (treatment variable) of 4 red cedar trees. Here’s what the beginning of the data file looks like:

head(perm.fvfm).

  Tree Exposure   Date  FvFm
1    1        S 13.Feb 0.775
2    1        N 13.Feb 0.795
3    2        S 13.Feb 0.737
4    2        N 13.Feb 0.759
5    3        S 13.Feb 0.615
6    3        N 13.Feb 0.712

If I were just doing this one time, this would be a randomized block design, where trees were the blocks (random variable) and exposure was the treatment variable (fixed variable). Actually, since there are only two treatment levels, it would be a paired t-test.

However, I’ve repeated this on many dates (18 so far this year). So this also requires a repeated-measures design, with trees as subjects.

Repeated-measures, however, usually have time (date) as a within-subject variable and then some other treatment that is a between-subjects variable. I don’t have have a between-subjects variable, however, as all subjects (trees) get both levels of exposure and all levels of time (date).

I’ve searched the web, but there is not a lot out there for this kind of design. It looks like lm, lme, lmer, and permuco in R might all work, but advice for how to set up the Error() or random variable designations are confusing and sometimes contradictory. Any advice would be much appreciated!

Thanks,
Rick Boyce

_______________________________________________
R-sig-ecology mailing list
R-sig-ecology using r-project.org<mailto:R-sig-ecology using r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-sig-ecology

================================
Richard L. Boyce, Ph.D.
Professor
Associate Editor, Journal of the Torrey Botanical Society
Department of Biological Sciences, SC 150
Northern Kentucky University
Nunn Drive
Highland Heights, KY  41099  USA

859-572-1407 (tel.)
859-572-5639 (fax)
boycer using nku.edu<mailto:boycer using nku.edu>
http://www.nku.edu/~boycer/
=================================

"One of the advantages of being disorderly is that one is constantly making exciting discoveries." - A.A. Milne












	[[alternative HTML version deleted]]



More information about the R-sig-ecology mailing list