Detrended Correspondence Analysis (DCA)
Type | Name | Link |
---|---|---|
Theory | Numerical Ecology in R | See pages 139-140 |
Slides | NA | |
Data | The Doubs River data | 💾 Doubs.RData |
- None
Environmental gradients often support a turnover of species due to their unimodal distributions in response to environmental factors. As one moves along the gradient, contiguous sites become increasingly dissimilar. In long gradients, this can result in sites at opposite ends having no species in common. Consequently, at maximum distances between sites, we typically find completely distinct species compositions.
When plotted on a pair of Correspondence Analysis (CA) axes, this gradient is represented as an arch rather than a linear trend. This phenomenon leads to two major problems in CA:
- The arch effect, caused by unimodal species response curves
- The compression of the gradient ends
Due to the arch effect, the second CA axis is often an artefact and difficult to interpret ecologically. The compression issue means that the spacing of samples and species along the first axis may not correctly reflect the amount of change (\(\beta\)-diversity) along the primary gradient. However, the arch effect in CA is less severe than the horseshoe effect in Principal Component Analysis (PCA), and the samples are still ordered correctly relative to each other.
Detrended Correspondence Analysis (DCA) addresses these issues by removing the arch effect through a process called detrending. This involves segmenting the first axis into equal intervals and adjusting the scores within each segment to remove systematic distortions caused by the arch effect. It maintains the use of \(\chi\)-squared distances while improving the interpretability of the ordination results.
# Load necessary libraries
library(vegan)
library(ggplot2)
library(ggpubr)
# Load example data
data(dune)
# Perform CA
ca_result <- cca(dune)
# Perform DCA
dca_result <- decorana(dune)
# Extract scores for sites
ca_sites <- scores(ca_result, display = "sites")
dca_sites <- scores(dca_result, display = "sites")
# Create CA plot
ca_plot <- ggplot(as.data.frame(ca_sites), aes(x = CA1, y = CA2)) +
geom_point(color = 'dodgerblue4', size = 1.8) +
labs(title = "CA Ordination Plot (Sites)", x = "CA1", y = "CA2") +
theme_linedraw()
# Create DCA plot
dca_plot <- ggplot(as.data.frame(dca_sites), aes(x = DCA1, y = DCA2)) +
geom_point(color = 'indianred4', size = 1.8) +
labs(title = "DCA Ordination Plot (Sites)", x = "DCA1", y = "DCA2") +
theme_linedraw()
# Arrange plots side by side
ggarrange(ca_plot, dca_plot, ncol = 2, labels = "AUTO")
Reuse
Citation
@online{j._smit2024,
author = {J. Smit, Albertus},
title = {Detrended {Correspondence} {Analysis} {(DCA)}},
date = {2024-08-01},
url = {http://tangledbank.netlify.app/BCB743/DCA.html},
langid = {en}
}