# predict.cca: Prediction Tools for [Constrained] Ordination (CCA, RDA, DCA,... In vegan: Community Ecology Package

## Description

Function `predict` can be used to find site and species scores or estimates of the response data with new data sets, Function `calibrate` estimates values of constraints with new data set. Functions `fitted` and `residuals` return estimates of response data.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23``` ```## S3 method for class 'cca' fitted(object, model = c("CCA", "CA", "pCCA"), type = c("response", "working"), ...) ## S3 method for class 'capscale' fitted(object, model = c("CCA", "CA", "pCCA", "Imaginary"), type = c("response", "working"), ...) ## S3 method for class 'cca' residuals(object, ...) ## S3 method for class 'cca' predict(object, newdata, type = c("response", "wa", "sp", "lc", "working"), rank = "full", model = c("CCA", "CA"), scaling = "none", hill = FALSE, ...) ## S3 method for class 'rda' predict(object, newdata, type = c("response", "wa", "sp", "lc", "working"), rank = "full", model = c("CCA", "CA"), scaling = "none", correlation = FALSE, const, ...) ## S3 method for class 'cca' calibrate(object, newdata, rank = "full", ...) ## S3 method for class 'cca' coef(object, norm = FALSE, ...) ## S3 method for class 'decorana' predict(object, newdata, type = c("response", "sites", "species"), rank = 4, ...) ```

## Arguments

 `object` A result object from `cca`, `rda`, `dbrda`, `capscale` or `decorana`. `model` Show constrained (`"CCA"`), unconstrained (`"CA"`) or conditioned “partial” (`"pCCA"`) results. For `fitted` method of `capscale` this can also be `"Imaginary"` for imaginary components with negative eigenvalues `newdata` New data frame to be used in prediction or in calibration. Usually this a new community data frame, but with `type = "lc"` and for constrained component with ```type = "response"``` and `type = "working"` it must be a data frame of constraints. The `newdata` must have the same number of rows as the original community data for a `cca` result with `type = "response"` or `type = "working"`. If the original model had row or column names, then new data must contain rows or columns with the same names (row names for species scores, column names for `"wa"` scores and constraint names of `"lc"` scores). In other cases the rows or columns must match directly. `type` The type of prediction, fitted values or residuals: `"response"` scales results so that the same ordination gives the same results, and `"working"` gives the values used internally, that is after Chi-square standardization in `cca` and scaling and centring in `rda`. In `capscale` and `dbrda` the `"response"` gives the dissimilarities, and `"working"` the internal data structure analysed in the ordination. Alternative `"wa"` gives the site scores as weighted averages of the community data, `"lc"` the site scores as linear combinations of environmental data, and `"sp"` the species scores. In `predict.decorana` the alternatives are scores for `"sites"` or `"species"`. `rank` The rank or the number of axes used in the approximation. The default is to use all axes (full rank) of the `"model"` or all available four axes in `predict.decorana`. `scaling` logical, character, or numeric; Scaling or predicted scores with the same meaning as in `cca`, `rda`, `dbrda`, and `capscale`. See `scores.cca` for further details on acceptable values. `correlation, hill` logical; correlation-like scores or Hill's scaling as appropriate for RDA and CCA respectively. See `scores.cca` for additional details. `const` Constant multiplier for RDA scores. This will be used only when `scaling` is not `FALSE`, and the default value will give similar scaling as in `scores.rda`. `norm` Coefficients for variables that are centred and scaled to unit norm. `...` Other parameters to the functions.

## Details

Function `fitted` gives the approximation of the original data matrix or dissimilarities from the ordination result either in the scale of the response or as scaled internally by the function. Function `residuals` gives the approximation of the original data from the unconstrained ordination. With argument ```type = "response"``` the `fitted.cca` and `residuals.cca` function both give the same marginal totals as the original data matrix, and fitted and residuals do not add up to the original data. Functions `fitted` and `residuals` for `dbrda` and `capscale` give the dissimilarities with ```type = "response"```, but these are not additive. However, the `"working"` scores are additive for `capscale` (but not for `dbrda`). The `fitted` and `residuals` for `capscale` and `dbrda` will include the additive constant if that was requested in the function call. All variants of `fitted` and `residuals` are defined so that for model `mod <- cca(y ~ x)`, `cca(fitted(mod))` is equal to constrained ordination, and `cca(residuals(mod))` is equal to unconstrained part of the ordination.

Function `predict` can find the estimate of the original data matrix or dissimilarities (`type = "response"`) with any rank. With `rank = "full"` it is identical to `fitted`. In addition, the function can find the species scores or site scores from the community data matrix for `cca` or `rda`. The function can be used with new data, and it can be used to add new species or site scores to existing ordinations. The function returns (weighted) orthonormal scores by default, and you must specify explicit `scaling` to add those scores to ordination diagrams. With `type = "wa"` the function finds the site scores from species scores. In that case, the new data can contain new sites, but species must match in the original and new data. With `type="sp"` the function finds species scores from site constraints (linear combination scores). In that case the new data can contain new species, but sites must match in the original and new data. With `type = "lc"` the function finds the linear combination scores for sites from environmental data. In that case the new data frame must contain all constraining and conditioning environmental variables of the model formula. With `type = "response"` or `type = "working"` the new data must contain environmental variables if constrained component is desired, and community data matrix if residual or unconstrained component is desired. With these types, the function uses `newdata` to find new `"lc"` (constrained) or `"wa"` scores (unconstrained) and then finds the response or working data from these new row scores and species scores. The original site (row) and species (column) weights are used for `type = "response"` and `type = "working"` in correspondence analysis (`cca`) and therefore the number of rows must match in the original data and `newdata`.

If a completely new data frame is created, extreme care is needed defining variables similarly as in the original model, in particular with (ordered) factors. If ordination was performed with the formula interface, the `newdata` can be a data frame or matrix, but extreme care is needed that the columns match in the original and `newdata`.

Function `calibrate.cca` finds estimates of constraints from community ordination or `"wa"` scores from `cca`, `rda` and `capscale`. This is often known as calibration, bioindication or environmental reconstruction. Basically, the method is similar to projecting site scores onto biplot arrows, but it uses regression coefficients. The function can be called with `newdata` so that cross-validation is possible. The `newdata` may contain new sites, but species must match in the original and new data. The function does not work with ‘partial’ models with `Condition` term, and it cannot be used with `newdata` for `capscale` or `dbrda` results. The results may only be interpretable for continuous variables.

Function `coef` will give the regression coefficients from centred environmental variables (constraints and conditions) to linear combination scores. The coefficients are for unstandardized environmental variables. The coefficients will be `NA` for aliased effects.

Function `predict.decorana` is similar to `predict.cca`. However, `type = "species"` is not available in detrended correspondence analysis (DCA), because detrending destroys the mutual reciprocal averaging (except for the first axis when rescaling is not used). Detrended CA does not attempt to approximate the original data matrix, so `type = "response"` has no meaning in detrended analysis (except with `rank = 1`).

## Value

The functions return matrices, vectors or dissimilarities as is appropriate.

Jari Oksanen.

## References

Greenacre, M. J. (1984). Theory and applications of correspondence analysis. Academic Press, London.

`cca`, `rda`, `dbrda`, `capscale`, `decorana`, `goodness.cca`.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21``` ```data(dune) data(dune.env) mod <- cca(dune ~ A1 + Management + Condition(Moisture), data=dune.env) # Definition of the concepts 'fitted' and 'residuals' mod cca(fitted(mod)) cca(residuals(mod)) # Remove rare species (freq==1) from 'cca' and find their scores # 'passively'. freq <- specnumber(dune, MARGIN=2) freq mod <- cca(dune[, freq>1] ~ A1 + Management + Condition(Moisture), dune.env) predict(mod, type="sp", newdata=dune[, freq==1], scaling="species") # New sites predict(mod, type="lc", new=data.frame(A1 = 3, Management="NM", Moisture="2"), scal=2) # Calibration and residual plot mod <- cca(dune ~ A1 + Moisture, dune.env) pred <- calibrate(mod) pred with(dune.env, plot(A1, pred[,"A1"] - A1, ylab="Prediction Error")) abline(h=0) ```

### Example output

```Loading required package: permute
This is vegan 2.5-2
Call: cca(formula = dune ~ A1 + Management + Condition(Moisture), data
= dune.env)

Inertia Proportion Rank
Total          2.1153     1.0000
Conditional    0.6283     0.2970    3
Constrained    0.5109     0.2415    4
Unconstrained  0.9761     0.4615   12
Inertia is scaled Chi-square

Eigenvalues for constrained axes:
CCA1    CCA2    CCA3    CCA4
0.24932 0.12090 0.08160 0.05904

Eigenvalues for unconstrained axes:
CA1     CA2     CA3     CA4     CA5     CA6     CA7     CA8     CA9    CA10
0.30637 0.13191 0.11516 0.10947 0.07724 0.07575 0.04871 0.03758 0.03106 0.02102
CA11    CA12
0.01254 0.00928

Call: cca(X = fitted(mod))

Inertia Rank
Total          0.5109
Unconstrained  0.5109    4
Inertia is scaled Chi-square

Eigenvalues for unconstrained axes:
CA1     CA2     CA3     CA4
0.24932 0.12090 0.08160 0.05904

Call: cca(X = residuals(mod))

Inertia Rank
Total          0.9761
Unconstrained  0.9761   12
Inertia is scaled Chi-square

Eigenvalues for unconstrained axes:
CA1     CA2     CA3     CA4     CA5     CA6     CA7     CA8     CA9    CA10
0.30637 0.13191 0.11516 0.10947 0.07724 0.07575 0.04871 0.03758 0.03106 0.02102
CA11    CA12
0.01254 0.00928

Achimill Agrostol Airaprae Alopgeni Anthodor Bellpere Bromhord Chenalbu
7       10        2        8        6        6        5        1
Cirsarve Comapalu Eleopalu Elymrepe Empenigr Hyporadi Juncarti Juncbufo
1        2        5        6        1        3        5        4
Lolipere Planlanc  Poaprat  Poatriv Ranuflam Rumeacet Sagiproc Salirepe
12        7       14       13        6        5        7        3
Scorautu Trifprat Trifrepe Vicilath Bracruta Callcusp
18        3       16        3       15        3
CCA1       CCA2       CCA3       CCA4
Chenalbu  1.5737337 -0.7842538  0.5503660 0.35108333
Cirsarve  0.5945146 -0.3714228 -0.2862647 0.88373727
Empenigr -1.8771953 -0.9904299 -0.2446222 0.04858656
CCA1      CCA2       CCA3       CCA4
1 -2.38829 -1.230652 -0.2363485 -0.3338258
A1  Moisture.L  Moisture.Q   Moisture.C
1   2.2630533 -0.62633470 -0.20456759  0.220761764
2   4.0510042 -0.47341146 -0.36986691  0.474939409
3   4.2752294 -0.07214500 -0.60797514  0.303213289
4   4.5398659  0.03192745 -1.12417368  0.932223234
5   5.0409406 -0.84235946  0.43000738 -0.291599200
6   5.1962100 -0.91316862  1.11354235 -0.804453944
7   4.2452549 -0.76452556  0.60464291 -0.484842066
8   5.0208369  0.43886340  0.08169514  0.132995916
9   4.2663219  0.10720486 -0.34067849 -0.675151598
10  4.0411356 -0.65472729  0.02832164  0.558402684
11  2.8280051 -0.45762457  0.63079135 -0.089977975
12  5.1204137  0.36328912 -0.69118581 -0.665622948
13  4.9034218  0.47069541 -0.54378271 -0.118643453
14 11.6455841  0.60920550  0.78341426  0.532852308
15 10.7829689  0.69208513  0.82190786  0.237311062
16  7.9892176  0.96421599  0.46793089  0.373647014
17  0.9218684 -0.15822891  0.14593271  1.189161582
18  3.1680733 -0.41737900  1.03352732 -0.236938282
19 -1.2003506  0.57033354  0.72777285  0.509955590
20  4.7876770  1.00324330  1.49898460  0.009202396
```

vegan documentation built on Jan. 8, 2021, 2:12 a.m.