Skip to contents

Prediction of response and lc scores from environment data using cca0 and wrda models.

Usage

# S3 method for class 'wrda'
predict(
  object,
  ...,
  type = c("response", "lc"),
  rank = "full",
  newdata = NULL,
  weights = NULL,
  scaling = "symmetric"
)

Arguments

object

return value of cca0 or wrda.

...

Other arguments passed to the function (currently ignored).

type

type of prediction, c( "response", "lc") for response (expected abundance) and constrained scores for sites.

rank

rank (number of axes to use). Default "full" for all axes (no rank-reduction).

newdata

Data in which to look for variables with which to predict.

weights

list of weights of species and of sites in newdata when type = "response", else ignored (default NULL yielding equal species and site weights, both summing to 1). Example: weights = list(species = c(100, 1, 1), sites = c(1, 1, 1, 1)), in that order, with traits of three new species in newdata[[1]] and environmental values (and levels of factors) of four new sites in newdata[[2]]. Species weights are scaled to a sum of one.

scaling

numeric (1,2 or 3) or character "sites", "species" or "symmetric". Default: "symmetric". Either site- (1) or species- (2) related scores are scaled by eigenvalues, and the other set of scores have unit weighted mean square or with 3 both are scaled symmetrically to weighted mean squares equal to the square root of eigenvalues. Negative values are treated as the corresponding positive ones by abs(scaling).

Value

a matrix with the predictions. The exact content of the matrix depends on the type of predictions that are being made.

Details

Variables that are in the model but not in newdata are set to their weighted means in the training data. Predictions are thus at the (weighted) mean of the quantitative variables not included. Predictions with not-included factors are at the reference level (the first level of the factor).

In a cca0 model with type = "response", many of the predicted values may be negative, indicating expected absences (0) or small expected response values.

Examples

data("dune_trait_env")

# rownames are carried forward in results
rownames(dune_trait_env$comm) <- dune_trait_env$comm$Sites
abun <- dune_trait_env$comm[, -1]  # must delete "Sites"

mod <- cca0(formula = abun ~ A1 + Moist + Mag + Use + Manure,
            data = dune_trait_env$envir)

mod # Proportions equal to those Canoco 5.15
#> 
#> Call: cca0(formula = abun ~ A1 + Moist + Mag + Use + Manure, data =
#> dune_trait_env$envir)
#> 
#>               Inertia Proportion Rank
#> Total          2.1866     1.0000     
#> Constrained    1.2511     0.5722    7
#> Unconstrained  0.9355     0.4278   19
#> 
#> Inertia is scaled Chi-square
#> 
#> Eigenvalues for constrained axes:
#>   CCA1   CCA2   CCA3   CCA4   CCA5   CCA6   CCA7 
#> 0.4759 0.3241 0.1764 0.1313 0.0690 0.0412 0.0333 
#> 
#> Eigenvalues for unconstrained axes:
#> CA1 CA2 CA3 CA4 CA5 CA6 CA7 CA8 
#>  NA  NA  NA  NA  NA  NA  NA  NA 
#> (Showing 8 of 19 unconstrained eigenvalues)
#> 
#> mean, sd, VIF and canonical coefficients with their optimistic [!] t-values:
#>           Avg    SDS    VIF   Regr1   tval1
#> A1     4.6363 1.8096 1.5022 -0.0962 -1.2237
#> Moist  2.7604 1.7163 1.7279 -0.5275 -6.2574
#> MagBF  0.1773 0.3819 4.7947  0.0107  0.0758
#> MagHF  0.3179 0.4657 2.9965  0.1034  0.9314
#> MagNM  0.2029 0.4021 7.1714 -0.1599 -0.9308
#> Use    1.9042 0.7523 1.6739 -0.1310 -1.5794
#> Manure 1.9521 1.3534 7.8029 -0.0354 -0.1975
#> 

scores(mod, which_cor = c("A1", "X_lot"), display = "cor")
#>            wRDA1       wRDA2
#> A1    -0.5433670  0.15530408
#> X_lot -0.1808011 -0.08064616
#> attr(,"meaning")
#> [1] "inter set correlation, correlation between environmental variables and the sites scores (CWMs)"

set.seed(123)
anova(mod)
#> $table
#> Permutation test for canonical correspondence analysis
#> Model: cca0(formula = abun ~ A1 + Moist + Mag + Use + Manure, data = dune_trait_env$envir) 
#> Residualized predictor permutation
#> Permutation: free
#> Number of permutations: 999
#> 
#>          df ChiSquare      R2      F Pr(>F)    
#> cca       7   1.25113 0.57218 2.2927  0.001 ***
#> Residual 12   0.93548                          
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
#> $eigenvalues
#>       cca1       cca2       cca3       cca4       cca5       cca6       cca7 
#> 0.47593373 0.32414453 0.17637629 0.13125103 0.06899011 0.04116257 0.03326681 
#> 
anova(mod, by = "axis")
#> $table
#> Permutation test for canonical correspondence analysis
#> Model: cca0(formula = abun ~ A1 + Moist + Mag + Use + Manure, data = dune_trait_env$envir) 
#> Residualized predictor permutation
#> Permutation: free
#> Number of permutations: 999
#> 
#>          df ChiSquare       R2      F Pr(>F)   
#> cca1      1   0.47593 0.217659 6.1051  0.002 **
#> cca2      1   0.32414 0.148241 4.1580  0.018 * 
#> cca3      1   0.17638 0.080662 2.2625  0.236   
#> cca4      1   0.13125 0.060025 1.6836  0.404   
#> cca5      1   0.06899 0.031551 0.8850  0.951   
#> cca6      1   0.04116 0.018825 0.5280  0.996   
#> cca7      1   0.03327 0.015214 0.4267  0.996   
#> Residual 12   0.93548                          
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
#> $eigenvalues
#>       cca1       cca2       cca3       cca4       cca5       cca6       cca7 
#> 0.47593373 0.32414453 0.17637629 0.13125103 0.06899011 0.04116257 0.03326681 
#> 

mod2 <- vegan::cca(abun ~ A1 + Moist + Mag + Use + Manure,
                   data = dune_trait_env$envir)
anova(mod2, by = "axis")
#> Permutation test for cca under reduced model
#> Forward tests for axes
#> Permutation: free
#> Number of permutations: 999
#> 
#> Model: cca(formula = abun ~ A1 + Moist + Mag + Use + Manure, data = dune_trait_env$envir)
#>          Df ChiSquare      F Pr(>F)    
#> CCA1      1   0.47593 6.1051  0.001 ***
#> CCA2      1   0.32414 4.5163  0.002 ** 
#> CCA3      1   0.17638 2.6289  0.080 .  
#> CCA4      1   0.13125 2.0812  0.217    
#> CCA5      1   0.06899 1.1811  0.765    
#> CCA6      1   0.04116 0.7570  0.903    
#> CCA7      1   0.03327 0.6478  0.903    
#> Residual 12   0.93548                  
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

dat <- dune_trait_env$envir
dat$Mag <- "SF"
predict(mod, type = "lc", newdata = dat)
#>              wRDA1     wRDA2       wRDA3       wRDA4       wRDA5       wRDA6
#> Site_1   0.6904890 0.2738131  0.85706483  0.21494213  0.04961136  0.72100459
#> Site_2   0.7086329 0.2734695  0.33481865 -1.07270103 -1.35928061  0.53160107
#> Site_3   0.2244798 0.5945085  0.60570803  0.44083874  0.37245365  0.46727185
#> Site_4   0.2308792 0.5789014  0.63318079  0.42798545  0.35582702  0.47363638
#> Site_5   0.7391771 0.6853586 -0.03558872 -0.62800472 -0.21511036 -0.01408255
#> Site_6   0.6574380 0.3983263  0.11503656 -0.96987465 -1.22626765  0.48068489
#> Site_7   0.5122323 0.2441261  0.29326645 -0.55866996 -1.39165267  1.01605565
#> Site_8  -1.0574335 0.8089811  0.55158630 -0.24633521 -0.86510811  0.29389272
#> Site_9  -0.1730258 0.4845439  0.99593856 -1.55170714 -1.18971277 -0.39582562
#> Site_10  0.5926090 0.2489378  0.78436035 -1.66931462 -1.40310518 -0.05383772
#> Site_11  0.5303763 0.2437824 -0.22897973 -1.84631313 -2.80054465  0.82665213
#> Site_12 -0.5486085 0.8921994  0.18514902 -0.67778374 -0.75653943 -0.08957766
#> Site_13 -0.9628957 1.0647992  0.45590655  0.06982812  0.11279594 -0.18814568
#> Site_14 -1.2893919 1.4405532 -1.34442983 -1.65724140 -2.30506793 -0.24797572
#> Site_15 -1.2204515 1.7587997 -1.55000063 -1.28966488 -1.26065740 -0.75547220
#> Site_16 -1.1534240 1.0430876  0.13949487 -0.05353574 -0.61570879  0.19842488
#> Site_17  0.5792832 0.3033908  0.42708259 -2.26814966 -2.04935800 -0.17081531
#> Site_18  0.9109057 0.3104445  0.10151139 -2.22412702 -2.02304124 -0.05073754
#> Site_19 -0.5115748 0.5163361  0.99170477 -2.20741811 -1.87890897 -0.62651646
#> Site_20 -0.4987760 0.4851219  1.04665030 -2.23312471 -1.91216221 -0.61378742
#>               wRDA7
#> Site_1  -0.21001080
#> Site_2  -0.96564817
#> Site_3  -0.19205750
#> Site_4  -0.18164028
#> Site_5  -1.37467944
#> Site_6  -1.04898590
#> Site_7  -0.43402001
#> Site_8   0.11698515
#> Site_9  -0.92255561
#> Site_10 -1.22930984
#> Site_11 -1.18965737
#> Site_12 -0.68260950
#> Site_13 -0.18787396
#> Site_14 -1.43836815
#> Site_15 -1.78489613
#> Site_16 -0.03927309
#> Site_17 -1.64358878
#> Site_18 -1.88030362
#> Site_19 -1.08970250
#> Site_20 -1.06886806