Principal Response Curves (PRC) are a special case of Redundancy Analysis (rda) for multivariate responses in repeated observation design. They were originally suggested for ecological communities. They should be easier to interpret than traditional constrained ordination. They can also be used to study how the effects of a factor A depend on the levels of a factor B, that is A + A:B, in a multivariate response experiment.

prc(response, treatment, time, ...)
# S3 method for prc
summary(object, axis = 1, scaling = "symmetric", const,
        digits = 4, correlation = FALSE, ...)
# S3 method for prc
plot(x, species = TRUE, select, scaling = "symmetric",
     axis = 1, correlation = FALSE, const, type = "l", xlab, ylab, ylim,
     lty = 1:5, col = 1:6, pch, legpos, cex = 0.8, ...)

Arguments

response

Multivariate response data. Typically these are community (species) data. If the data are counts, they probably should be log transformed prior to the analysis.

treatment

A factor for treatments.

time

An unordered factor defining the observations times in the repeated design.

object, x

An prc result object.

axis

Axis shown (only one axis can be selected).

scaling

Scaling of species scores, identical to the scaling in scores.rda.

The type of scores can also be specified as one of "none", "sites", "species", or "symmetric", which correspond to the values 0, 1, 2, and 3 respectively. Argument correlation can be used in combination with these character descriptions to get the corresponding negative value.

const

General scaling constant for species scores (see scores.rda for details). Lower values will reduce the range of species scores, but will not influence the regression coefficients.

digits

Number of significant digits displayed.

correlation

logical; if scaling is a character description of the scaling type, correlation can be used to select correlation-like scores for PCA. See argument scaling for details.

species

Display species scores.

select

Vector to select displayed species. This can be a vector of indices or a logical vector which is TRUE for the selected species

type

Type of plot: "l" for lines, "p" for points or "b" for both.

xlab, ylab

Text to replace default axis labels.

ylim

Limits for the vertical axis.

lty, col, pch

Line type, colour and plotting characters (defaults supplied).

legpos

The position of the legend. A guess is made if this is not supplied, and NA will suppress legend.

cex

Character expansion for symbols and species labels.

...

Other parameters passed to functions.

Details

PRC is a special case of rda with a single factor for treatment and a single factor for time points in repeated observations. In vegan, the corresponding rda model is defined as rda(response ~ treatment * time + Condition(time)). Since the time appears twice in the model formula, its main effects will be aliased, and only the main effect of treatment and interaction terms are available, and will be used in PRC. Instead of usual multivariate ordination diagrams, PRC uses canonical (regression) coefficients and species scores for a single axis. All that the current functions do is to provide a special summary and plot methods that display the rda results in the PRC fashion. The current version only works with default contrasts (contr.treatment) in which the coefficients are contrasts against the first level, and the levels must be arranged so that the first level is the control (or a baseline). If necessary, you must change the baseline level with function relevel.

Function summary prints the species scores and the coefficients. Function plot plots coefficients against time using matplot, and has similar defaults. The graph (and PRC) is meaningful only if the first treatment level is the control, as the results are contrasts to the first level when unordered factors are used. The plot also displays species scores on the right vertical axis using function linestack. Typically the number of species is so high that not all can be displayed with the default settings, but users can reduce character size or padding (air) in linestack, or select only a subset of the species. A legend will be displayed unless suppressed with legpos = NA, and the functions tries to guess where to put the legend if legpos is not supplied.

Value

The function is a special case of rda and returns its result object (see cca.object). However, a special summary and plot methods display returns differently than in rda.

References

van den Brink, P.J. & ter Braak, C.J.F. (1999). Principal response curves: Analysis of time-dependent multivariate responses of biological community to stress. Environmental Toxicology and Chemistry, 18, 138--148.

Warning

The first level of treatment must be the control: use function relevel to guarantee the correct reference level. The current version will ignore user setting of contrasts and always use treatment contrasts (contr.treatment). The time must be an unordered factor.

See also

Examples

## Chlorpyrifos experiment and experimental design: Pesticide ## treatment in ditches (replicated) and followed over from 4 weeks ## before to 24 weeks after exposure data(pyrifos) week <- gl(11, 12, labels=c(-4, -1, 0.1, 1, 2, 4, 8, 12, 15, 19, 24)) dose <- factor(rep(c(0.1, 0, 0, 0.9, 0, 44, 6, 0.1, 44, 0.9, 0, 6), 11)) ditch <- gl(12, 1, length=132) # PRC mod <- prc(pyrifos, dose, week) mod # RDA
#> Call: prc(response = pyrifos, treatment = dose, time = week) #> #> Inertia Proportion Rank #> Total 288.9920 1.0000 #> Conditional 63.3493 0.2192 10 #> Constrained 96.6837 0.3346 44 #> Unconstrained 128.9589 0.4462 77 #> Inertia is variance #> #> Eigenvalues for constrained axes: #> RDA1 RDA2 RDA3 RDA4 RDA5 RDA6 RDA7 RDA8 RDA9 RDA10 RDA11 #> 25.282 8.297 6.044 4.766 4.148 3.857 3.587 3.334 3.087 2.551 2.466 #> RDA12 RDA13 RDA14 RDA15 RDA16 RDA17 RDA18 RDA19 RDA20 RDA21 RDA22 #> 2.209 2.129 1.941 1.799 1.622 1.579 1.440 1.398 1.284 1.211 1.133 #> RDA23 RDA24 RDA25 RDA26 RDA27 RDA28 RDA29 RDA30 RDA31 RDA32 RDA33 #> 1.001 0.923 0.862 0.788 0.750 0.712 0.685 0.611 0.584 0.537 0.516 #> RDA34 RDA35 RDA36 RDA37 RDA38 RDA39 RDA40 RDA41 RDA42 RDA43 RDA44 #> 0.442 0.417 0.404 0.368 0.340 0.339 0.306 0.279 0.271 0.205 0.179 #> #> Eigenvalues for unconstrained axes: #> PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 #> 17.156 9.189 7.585 6.064 5.730 4.843 4.518 4.105 #> (Showing 8 of 77 unconstrained eigenvalues) #>
summary(mod) # PRC
#> #> Call: #> prc(response = pyrifos, treatment = dose, time = week) #> Species scores: #> Simve Daplo Cerpu Alogu Aloco Alore Aloaf Copsp #> -1.461934 -0.796510 -0.295171 -0.152301 -0.096273 -0.171335 -0.231967 -0.635966 #> Ostsp Slyla Acrha Aloex Chysp Alona Plead Oxyte #> -1.257492 0.302872 -0.057396 -0.124049 -0.051689 -0.034638 -0.075268 -0.013815 #> Grate Copdi NauLa CilHa Strvi amosp Ascmo Synsp #> -0.052667 -0.777088 -2.636100 -0.486881 -1.669474 0.738371 -0.037926 0.014409 #> Squro Squmu Polar Kerqu Anufi Mytve Mytvi Mytmu #> -0.143790 0.246185 -0.251255 -0.269397 -0.235362 -0.040448 -0.049452 -0.057589 #> Lepsp Leppa Colob Colbi Colun Lecsp Lecqu Lecco #> -0.542922 -0.046123 0.393234 0.075905 0.450495 -0.257170 0.048327 0.158007 #> Leclu Lecfl Tripo Cepsp Monlo Monae Scalo Trilo #> -0.027077 0.221912 -0.117056 0.440303 0.287108 0.048918 0.041981 0.021257 #> Tripo.1 Tricy Trisp Tepat Rotne Notla Filsp Lopox #> -0.134025 -0.182409 -0.042651 -0.004198 -0.078168 0.062163 0.091561 0.016854 #> hydrspec bothrosp olchaeta erpoocto glsicomp alglhete hebdstag sphidae #> 0.026485 -0.216815 0.633674 0.490029 0.078527 0.039728 -0.490678 -0.796015 #> ansuvote armicris bathcont binitent gyraalbu hippcomp lymnstag lymnaes7 #> -0.076512 -0.913681 -0.039855 1.060788 -0.017975 -0.219974 0.143403 -0.073502 #> physfont plbacorn popyanti radiovat radipere valvcris valvpisc hycarina #> 0.014349 -0.046098 -0.691904 0.010777 0.340163 -0.005753 0.145523 -0.567803 #> gammpule aselaqua proameri collembo caenhora caenluct caenrobu cloedipt #> -0.830166 -0.858606 -0.063401 -0.016264 -3.136867 -1.292300 -0.068624 -2.574625 #> cloesimi aeshniae libellae conagrae corident coripanz coripunc cymabons #> -0.675580 -0.115677 0.044524 -0.886795 -0.007484 -0.065501 0.096124 -0.025213 #> hesplinn hespsahl notoglau notomacu notoobli notoviri pacoconc pleaminu #> 0.037779 -0.018078 -0.301948 -0.027226 -0.044790 -0.117398 -0.009087 -0.038705 #> sigadist sigafall sigastri sigarasp colyfusc donacis6 gyrimari haliconf #> -0.041594 0.009987 -0.032743 0.150817 -0.019847 0.042751 -0.005753 -0.243054 #> haliflav haligruf haliobli herubrev hya_herm hyglpusi hyhyovat hypoplan #> -0.024222 -0.244814 -0.071501 0.069877 0.175327 0.006404 -0.013159 -0.008145 #> hyporusp hytuinae hytuvers laphminu noteclav rhantusp sialluta ablalong #> -0.126197 -1.259664 -0.963901 -0.344204 -0.004303 -0.036774 -0.603320 -0.008145 #> ablaphmo cltanerv malopisp mopetenu prdiussp pstavari chironsp crchirsp #> -1.627590 -0.041132 -0.025919 -0.004740 -0.301790 -0.045054 -1.027839 -0.009087 #> crclglat ditendsp mitegchl pachgarc pachgvit popegnub popedisp acriluce #> -0.015746 -0.045402 -0.125429 0.006628 0.016265 -0.121971 0.037879 0.004324 #> chclpige conescut cricotsp liesspec psclbarb psclgsli psclobvi psclplat #> 0.004756 -0.446524 -0.066095 -0.058403 0.015576 -0.327165 0.197081 0.028310 #> psclpsil pscladsp cladotsp laa_spec patanysp tatarssp zaa_spec anopmacu #> -0.003991 -0.003086 -0.293623 -0.018548 -0.079841 -0.364072 -0.027165 0.089046 #> cepogoae chaoobsc cucidae4 tabanusp agdasphr athrater cyrncren holodubi #> -1.389767 -1.328261 -0.018078 0.006309 -0.147828 -0.036774 -0.038705 -0.051532 #> holopici leceriae lilurhom monaangu mystazur mystloni oecefurv oecelacu #> -0.332631 -0.162413 -0.004929 -0.350402 -0.018078 -1.630725 -0.291847 -0.140893 #> triabico paponysp #> -0.048357 -0.053182 #> #> Coefficients for dose + week:dose interaction #> which are contrasts to dose 0 #> rows are dose, columns are week #> -4 -1 0.1 1 2 4 8 12 15 #> 0.1 0.01335 0.02543 0.01887 0.007525 0.03886 0.02524 0.01494 0.02841 0.02077 #> 0.9 0.01500 0.03580 0.03582 0.088245 0.09207 0.07966 0.02503 0.06563 0.04455 #> 6 0.03074 0.02280 0.08397 0.213933 0.20045 0.21296 0.10381 0.08691 0.05695 #> 44 0.02586 0.03623 0.13520 0.233266 0.24009 0.27059 0.23891 0.18650 0.14465 #> 19 24 #> 0.1 0.04002 0.01449 #> 0.9 0.03249 0.02857 #> 6 0.06091 0.03372 #> 44 0.10672 0.05739
logabu <- colSums(pyrifos) plot(mod, select = logabu > 100)
## Ditches are randomized, we have a time series, and are only ## interested in the first axis ctrl <- how(plots = Plots(strata = ditch,type = "free"), within = Within(type = "series"), nperm = 99) anova(mod, permutations = ctrl, first=TRUE)
#> Permutation test for rda under reduced model #> Plots: ditch, plot permutation: free #> Permutation: series #> Number of permutations: 99 #> #> Model: prc(response = pyrifos, treatment = dose, time = week) #> Df Variance F Pr(>F) #> RDA1 1 25.282 15.096 0.01 ** #> Residual 77 128.959 #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1