#Thiết lập thư mục làm việc
setwd("D:/R/for_thien/")
#Load data
fish <- read.csv("fish.csv", row.names = 1)
fish2 <- read.csv("fish2.csv", row.names = 1)
Kiểm tra
head(fish,9)
## S1 S2 S3 S4
## Ann_nor 0 2 7 0
## Sch_sp. 4 29 8 0
## Sch_sp1 0 0 0 42
## Sch_sp2 4 7 13 0
## Cha_gac 18 2 0 0
## Ung_sp. 0 0 0 5
## Neo_str 1 4 21 0
## Ony_kro 2 4 4 0
## Por_lao 12 39 43 0
head(fish2,4)
## Ann_nor Sch_sp. Sch_sp1 Sch_sp2 Cha_gac Ung_sp. Neo_str Ony_kro Por_lao
## S1 0 4 0 4 18 0 1 2 12
## S2 2 29 0 7 2 0 4 4 39
## S3 7 8 0 13 0 0 21 4 43
## S4 0 0 42 0 0 5 0 0 0
## TDS FTU Temp pH Conductivity DO
## S1 4 21.68 18.6 7.4 0.00 8.0
## S2 38 15.07 22.0 9.0 0.04 8.0
## S3 10 136.00 20.9 7.7 0.01 8.3
## S4 4 8.33 18.0 8.5 0.00 7.9
#lấy các cột loài
species <- fish2[,c(1:9)]
# Lấy các cột thông số môi trường
env_var <- fish2[,c(10:15)]
#Sử dụng hàm cca trong thư viện 'vegan'
library(vegan)
## Loading required package: permute
## Loading required package: lattice
## This is vegan 2.4-2
fish_CCA <-vegan::cca(species, env_var)
#vẽ đồ thị
plot(fish_CCA)
Ta có thể trang trí cho đồ thị dễ nhìn hơn như sau (Với các loài nằm chồng lên nhau thì cần chỉnh thủ công với illustrator):
plot(fish_CCA, type ="n")
points(fish_CCA, display = "sites", pch = 5, cex = 1, col="red")
points(fish_CCA, display = "species", pch = 19, cex = 1, col="blue")
text(fish_CCA, display = "sites", pos=2, col="red")
text(fish_CCA, display = "species", pos=4)
text(fish_CCA, display = "bp", col="orange", cex=1)
Tuy nhiên ở đây ta thấy chỉ có 3 biến môi trường được vẽ đó là Temp, TDS, và FTU. Lý do là có sự tương quan cao giữa 3 biến này với 3 biến còn lại, nên thuật toán tự động xóa 3 biến kia.
Xác định lại nhận định:
library(corrplot)
corrplot(cor(env_var), method="number", type = "upper")
Ta thấy có sự tương quan cao giữa các cặp biến TDS vs TEMPS; TDS vs Conductivity; FTU vs DO; vv…
Do đó nên sử dụng phương pháp phân tích khác đối với dữ liệu này. Xem phần tiếp theo:
library("ade4")
##
## Attaching package: 'ade4'
## The following object is masked from 'package:vegan':
##
## cca
library("factoextra")
## Loading required package: ggplot2
res.ca <- dudi.coa(fish, scannf = FALSE, nf = 5)
fviz_ca_biplot(res.ca, title="", arrows = c(F, T), xlim=c(-2.5,1)) +
theme_minimal()
Ở đây ta có thể thấy được sự khác biệt về thành phần loài ở 4 sites
res.pca <- dudi.pca(env_var, scannf = FALSE, nf = 5)
fviz_pca_biplot(res.pca, geom =c("point","text"), col.var="blue", title="") +
theme_minimal()
Với kết quả này ta có thể thấy được sự khác nhau về đặc điểm môi trường ở 4 sites nghiên cứu
Đối với dữ liệu thực tế này ta chọn hướng phân tích theo cách 2 sẽ dễ truyền đạt hơn