Utilizando a mesma base de dados fornecida no link: http://adn.biol.umontreal.ca/~numericalecology/numecolR/NEwR-2ed_code_data.zip
a)Teste tanto medidas de distância quanto métodos de agrupamento diferentes.
b)Use métodos de K-means para encontrar quantos clusters há de fato segundo o método “silhouette”.
Carregando a base de dados :
library(vegan)
## Carregando pacotes exigidos: permute
## Carregando pacotes exigidos: lattice
## This is vegan 2.5-7
library(ggplot2)
load ("C:/Users/debor/OneDrive/Documentos/EcoNum/github/NEwR-2ed_code_data/NEwR2-Data/Doubs.RData")
spe # matriz de abundância de espécies de peixes
## Cogo Satr Phph Babl Thth Teso Chna Pato Lele Sqce Baba Albi Gogo Eslu Pefl
## 1 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0
## 2 0 5 4 3 0 0 0 0 0 0 0 0 0 0 0
## 3 0 5 5 5 0 0 0 0 0 0 0 0 0 1 0
## 4 0 4 5 5 0 0 0 0 0 1 0 0 1 2 2
## 5 0 2 3 2 0 0 0 0 5 2 0 0 2 4 4
## 6 0 3 4 5 0 0 0 0 1 2 0 0 1 1 1
## 7 0 5 4 5 0 0 0 0 1 1 0 0 0 0 0
## 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 9 0 0 1 3 0 0 0 0 0 5 0 0 0 0 0
## 10 0 1 4 4 0 0 0 0 2 2 0 0 1 0 0
## 11 1 3 4 1 1 0 0 0 0 1 0 0 0 0 0
## 12 2 5 4 4 2 0 0 0 0 1 0 0 0 0 0
## 13 2 5 5 2 3 2 0 0 0 0 0 0 0 0 0
## 14 3 5 5 4 4 3 0 0 0 1 1 0 1 1 0
## 15 3 4 4 5 2 4 0 0 3 3 2 0 2 0 0
## 16 2 3 3 5 0 5 0 4 5 2 2 1 2 1 1
## 17 1 2 4 4 1 2 1 4 3 2 3 4 1 1 2
## 18 1 1 3 3 1 1 1 3 2 3 3 3 2 1 3
## 19 0 0 3 5 0 1 2 3 2 1 2 2 4 1 1
## 20 0 0 1 2 0 0 2 2 2 3 4 3 4 2 2
## 21 0 0 1 1 0 0 2 2 2 2 4 2 5 3 3
## 22 0 0 0 1 0 0 3 2 3 4 5 1 5 3 4
## 23 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
## 24 0 0 0 0 0 0 1 0 0 2 0 0 1 0 0
## 25 0 0 0 0 0 0 0 0 1 1 0 0 2 1 0
## 26 0 0 0 1 0 0 1 0 1 2 2 1 3 2 1
## 27 0 0 0 1 0 0 1 1 2 3 4 1 4 4 1
## 28 0 0 0 1 0 0 1 1 2 4 3 1 4 3 2
## 29 0 1 1 1 1 1 2 2 3 4 5 3 5 5 4
## 30 0 0 0 0 0 0 1 2 3 3 3 5 5 4 5
## Rham Legi Scer Cyca Titi Abbr Icme Gyce Ruru Blbj Alal Anan
## 1 0 0 0 0 0 0 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0 0 0 0 0 0
## 3 0 0 0 0 0 0 0 0 0 0 0 0
## 4 0 0 0 0 1 0 0 0 0 0 0 0
## 5 0 0 2 0 3 0 0 0 5 0 0 0
## 6 0 0 0 0 2 0 0 0 1 0 0 0
## 7 0 0 0 0 0 0 0 0 0 0 0 0
## 8 0 0 0 0 0 0 0 0 0 0 0 0
## 9 0 0 0 0 1 0 0 0 4 0 0 0
## 10 0 0 0 0 0 0 0 0 0 0 0 0
## 11 0 0 0 0 0 0 0 0 0 0 0 0
## 12 0 0 0 0 0 0 0 0 0 0 0 0
## 13 0 0 0 0 0 0 0 0 0 0 0 0
## 14 0 0 0 0 0 0 0 0 0 0 0 0
## 15 0 0 0 0 1 0 0 0 0 0 0 0
## 16 0 1 0 1 1 0 0 0 1 0 0 0
## 17 1 1 0 1 1 0 0 0 2 0 2 1
## 18 2 1 0 1 1 0 0 1 2 0 2 1
## 19 2 1 1 1 2 1 0 1 5 1 3 1
## 20 3 2 2 1 4 1 0 2 5 2 5 2
## 21 3 2 2 2 4 3 1 3 5 3 5 2
## 22 3 3 2 3 4 4 2 4 5 4 5 2
## 23 0 0 0 0 0 0 0 0 1 0 2 0
## 24 0 1 0 0 0 0 0 2 2 1 5 0
## 25 0 0 1 0 0 0 0 1 1 0 3 0
## 26 2 2 1 1 3 2 1 4 4 2 5 2
## 27 3 3 1 2 5 3 2 5 5 4 5 3
## 28 4 4 2 4 4 3 3 5 5 5 5 4
## 29 5 5 2 3 3 4 4 5 5 4 5 4
## 30 5 3 5 5 5 5 5 5 5 5 5 5
spa # matriz espacial
## X Y
## 1 85.678 20.000
## 2 84.955 20.100
## 3 92.301 23.796
## 4 91.280 26.431
## 5 92.005 29.163
## 6 95.954 36.315
## 7 98.201 38.799
## 8 99.455 46.406
## 9 109.782 55.865
## 10 130.641 66.576
## 11 142.748 81.258
## 12 147.270 85.839
## 13 156.817 89.516
## 14 159.435 92.791
## 15 150.820 91.084
## 16 132.662 87.956
## 17 128.298 93.918
## 18 130.560 102.446
## 19 128.459 105.428
## 20 114.862 103.129
## 21 97.163 90.245
## 22 88.200 86.373
## 23 79.596 83.508
## 24 74.753 78.734
## 25 67.146 74.683
## 26 53.770 71.598
## 27 43.637 68.673
## 28 30.514 61.166
## 29 20.495 43.848
## 30 0.000 41.562
env # matriz ambiental
## dfs ele slo dis pH har pho nit amm oxy bod
## 1 0.3 934 48.0 0.84 7.9 45 0.01 0.20 0.00 12.2 2.7
## 2 2.2 932 3.0 1.00 8.0 40 0.02 0.20 0.10 10.3 1.9
## 3 10.2 914 3.7 1.80 8.3 52 0.05 0.22 0.05 10.5 3.5
## 4 18.5 854 3.2 2.53 8.0 72 0.10 0.21 0.00 11.0 1.3
## 5 21.5 849 2.3 2.64 8.1 84 0.38 0.52 0.20 8.0 6.2
## 6 32.4 846 3.2 2.86 7.9 60 0.20 0.15 0.00 10.2 5.3
## 7 36.8 841 6.6 4.00 8.1 88 0.07 0.15 0.00 11.1 2.2
## 8 49.1 792 2.5 1.30 8.1 94 0.20 0.41 0.12 7.0 8.1
## 9 70.5 752 1.2 4.80 8.0 90 0.30 0.82 0.12 7.2 5.2
## 10 99.0 617 9.9 10.00 7.7 82 0.06 0.75 0.01 10.0 4.3
## 11 123.4 483 4.1 19.90 8.1 96 0.30 1.60 0.00 11.5 2.7
## 12 132.4 477 1.6 20.00 7.9 86 0.04 0.50 0.00 12.2 3.0
## 13 143.6 450 2.1 21.10 8.1 98 0.06 0.52 0.00 12.4 2.4
## 14 152.2 434 1.2 21.20 8.3 98 0.27 1.23 0.00 12.3 3.8
## 15 164.5 415 0.5 23.00 8.6 86 0.40 1.00 0.00 11.7 2.1
## 16 185.9 375 2.0 16.10 8.0 88 0.20 2.00 0.05 10.3 2.7
## 17 198.5 349 0.5 24.30 8.0 92 0.20 2.50 0.20 10.2 4.6
## 18 211.0 333 0.8 25.00 8.0 90 0.50 2.20 0.20 10.3 2.8
## 19 224.6 310 0.5 25.90 8.1 84 0.60 2.20 0.15 10.6 3.3
## 20 247.7 286 0.8 26.80 8.0 86 0.30 3.00 0.30 10.3 2.8
## 21 282.1 262 1.0 27.20 7.9 85 0.20 2.20 0.10 9.0 4.1
## 22 294.0 254 1.4 27.90 8.1 88 0.20 1.62 0.07 9.1 4.8
## 23 304.3 246 1.2 28.80 8.1 97 2.60 3.50 1.15 6.3 16.4
## 24 314.7 241 0.3 29.76 8.0 99 1.40 2.50 0.60 5.2 12.3
## 25 327.8 231 0.5 38.70 7.9 100 4.22 6.20 1.80 4.1 16.7
## 26 356.9 214 0.5 39.10 7.9 94 1.43 3.00 0.30 6.2 8.9
## 27 373.2 206 1.2 39.60 8.1 90 0.58 3.00 0.26 7.2 6.3
## 28 394.7 195 0.3 43.20 8.3 100 0.74 4.00 0.30 8.1 4.5
## 29 422.0 183 0.6 67.70 7.8 110 0.45 1.62 0.10 9.0 4.2
## 30 453.0 172 0.2 69.00 8.2 109 0.65 1.60 0.10 8.2 4.4
#Remover local sem amostragem
spe<-spe[-8,]
env<-env[-8,]
spa<-spa[-8,]
Encontrando grupos dentro da matriz “spe” :
#Analisando a base de spe
especies<-c(rep("A", 9), rep("B",10), rep("C",10)) # Organizando as informações
spe$especies<-especies
spa$especies<-especies
env$especies<-especies
#Testando a similaridade
jacc_dist<-vegdist(spe[,-28], method = "jaccard") # retira-se somente a coluna "especies" porque a função só lê variáveis numéricas
jacc_dist # Observando a matriz, os valores estão entre 0 e 1 como esperado
## 1 2 3 4 5 6 7
## 2 0.7500000
## 3 0.8125000 0.2500000
## 4 0.8571429 0.5000000 0.3181818
## 5 0.9428571 0.8205128 0.8095238 0.6585366
## 6 0.8571429 0.5652174 0.4583333 0.3200000 0.5897436
## 7 0.8125000 0.2500000 0.2222222 0.3913043 0.7804878 0.3913043
## 9 1.0000000 0.8181818 0.8461538 0.7931034 0.7368421 0.7037037 0.8000000
## 10 0.9375000 0.5555556 0.5714286 0.5416667 0.7027027 0.4090909 0.4210526
## 11 0.7272727 0.4666667 0.5789474 0.6086957 0.8157895 0.6086957 0.5000000
## 12 0.8333333 0.3333333 0.3809524 0.5000000 0.8181818 0.5555556 0.3000000
## 13 0.8421053 0.4500000 0.4782609 0.6206897 0.8478261 0.7096774 0.5416667
## 14 0.8928571 0.5714286 0.4827586 0.5151515 0.8076923 0.6000000 0.5333333
## 15 0.9090909 0.6764706 0.6388889 0.5789474 0.7115385 0.5405405 0.5588235
## 16 0.9250000 0.7906977 0.7272727 0.6444444 0.6296296 0.5476190 0.6976744
## 17 0.9555556 0.8085106 0.7755102 0.6734694 0.6779661 0.6170213 0.7500000
## 18 0.9772727 0.8510638 0.8400000 0.7400000 0.6666667 0.6875000 0.8163265
## 19 1.0000000 0.8846154 0.8301887 0.7592593 0.6666667 0.6862745 0.8076923
## 20 1.0000000 0.9538462 0.9411765 0.8507463 0.6567164 0.8153846 0.9253731
## 21 1.0000000 0.9722222 0.9600000 0.8783784 0.6666667 0.8472222 0.9459459
## 22 1.0000000 0.9879518 0.9767442 0.9058824 0.6913580 0.8795181 0.9647059
## 23 1.0000000 1.0000000 1.0000000 0.9583333 0.9444444 0.9130435 0.9473684
## 24 1.0000000 1.0000000 1.0000000 0.9411765 0.8863636 0.8750000 0.9666667
## 25 1.0000000 1.0000000 0.9615385 0.8965517 0.8157895 0.8148148 0.9200000
## 26 1.0000000 0.9814815 0.9649123 0.8771930 0.7166667 0.8148148 0.9464286
## 27 1.0000000 0.9864865 0.9740260 0.9090909 0.7236842 0.8648649 0.9605263
## 28 1.0000000 0.9876543 0.9761905 0.9036145 0.7317073 0.8765432 0.9638554
## 29 0.9887640 0.9687500 0.9595960 0.8979592 0.6989247 0.8750000 0.9489796
## 30 1.0000000 1.0000000 0.9903846 0.9320388 0.7448980 0.9108911 0.9805825
## 9 10 11 12 13 14 15
## 2
## 3
## 4
## 5
## 6
## 7
## 9
## 10 0.7272727
## 11 0.8636364 0.6111111
## 12 0.8148148 0.5454545 0.3888889
## 13 0.9000000 0.7307692 0.5000000 0.3181818
## 14 0.8648649 0.6451613 0.6071429 0.3571429 0.3214286
## 15 0.7948718 0.5757576 0.6666667 0.5000000 0.5555556 0.3947368
## 16 0.8260870 0.6829268 0.7857143 0.7111111 0.7446809 0.6122449 0.4130435
## 17 0.8163265 0.6818182 0.7777778 0.7346939 0.7647059 0.6666667 0.5740741
## 18 0.7826087 0.7272727 0.8222222 0.8000000 0.8269231 0.7500000 0.6363636
## 19 0.8000000 0.7755102 0.9038462 0.8571429 0.8983051 0.8064516 0.7258065
## 20 0.8135593 0.8709677 0.9531250 0.9428571 0.9583333 0.9090909 0.8289474
## 21 0.8656716 0.8985507 0.9571429 0.9610390 0.9746835 0.9285714 0.8690476
## 22 0.8684211 0.9250000 0.9753086 0.9772727 0.9888889 0.9473684 0.8709677
## 23 0.8750000 0.9411765 0.9285714 0.9523810 1.0000000 0.9677419 0.9722222
## 24 0.8400000 0.8846154 0.9600000 0.9687500 1.0000000 0.9512195 0.9333333
## 25 0.9130435 0.8636364 0.9523810 0.9642857 1.0000000 0.9166667 0.9000000
## 26 0.8367347 0.9038462 0.9615385 0.9661017 0.9836066 0.9242424 0.8656716
## 27 0.8676471 0.9154930 0.9722222 0.9746835 0.9876543 0.9418605 0.8705882
## 28 0.8648649 0.9230769 0.9746835 0.9767442 0.9886364 0.9462366 0.8804348
## 29 0.8777778 0.9139785 0.9462366 0.9500000 0.9504950 0.9150943 0.8461538
## 30 0.9157895 0.9489796 0.9898990 0.9905660 1.0000000 0.9646018 0.9009009
## 16 17 18 19 20 21 22
## 2
## 3
## 4
## 5
## 6
## 7
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17 0.4150943
## 18 0.5090909 0.2448980
## 19 0.5666667 0.4745763 0.4000000
## 20 0.7368421 0.5915493 0.4923077 0.3809524
## 21 0.7710843 0.6582278 0.5753425 0.4571429 0.1846154
## 22 0.7956989 0.7111111 0.6428571 0.5609756 0.3157895 0.1891892
## 23 0.9523810 0.9090909 0.9047619 0.9130435 0.9285714 0.9354839 0.9444444
## 24 0.9000000 0.8200000 0.7872340 0.7800000 0.7321429 0.7580645 0.7916667
## 25 0.8666667 0.8541667 0.7954545 0.7608696 0.8035714 0.8225806 0.8472222
## 26 0.7794118 0.7014925 0.6290323 0.4915254 0.3500000 0.3333333 0.4027778
## 27 0.8023256 0.7261905 0.6538462 0.5466667 0.3239437 0.2394366 0.2236842
## 28 0.8172043 0.7333333 0.6666667 0.5853659 0.3636364 0.2857143 0.2250000
## 29 0.7904762 0.6767677 0.6129032 0.5851064 0.3932584 0.3068182 0.2134831
## 30 0.8378378 0.7333333 0.6900000 0.6500000 0.4574468 0.3763441 0.3052632
## 23 24 25 26 27 28 29
## 2
## 3
## 4
## 5
## 6
## 7
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23
## 24 0.7333333
## 25 0.6363636 0.6315789
## 26 0.9069767 0.6511628 0.7441860
## 27 0.9365079 0.7619048 0.8253968 0.3174603
## 28 0.9428571 0.7857143 0.8428571 0.3857143 0.1780822
## 29 0.9540230 0.8275862 0.8735632 0.5057471 0.3146067 0.2555556
## 30 0.9550562 0.8314607 0.8764045 0.5333333 0.3296703 0.2717391 0.2574257
mean(jacc_dist) #Calcula-se o valor médio para todas as amostras
## [1] 0.7540221
Calculando a distância :
library(usedist)
## Warning: package 'usedist' was built under R version 4.1.2
mean(dist_subset(jacc_dist, c(1:8))) # Grupo A
## [1] 0.6448391
mean(dist_subset(jacc_dist, c(9:18))) # Grupo B
## [1] 0.6223917
mean(dist_subset(jacc_dist, c(19:28))) # Grupo C
## [1] 0.5761246
Fazendo o dendograma:
clust_especies<-hclust(jacc_dist, method = "complete")
clust_graf<-plot(clust_especies, hang=-1)
clust_graf
## NULL
require(dendextend) # Para colorir
## Carregando pacotes exigidos: dendextend
## Warning: package 'dendextend' was built under R version 4.1.2
## Registered S3 method overwritten by 'dendextend':
## method from
## rev.hclust vegan
##
## ---------------------
## Welcome to dendextend version 1.15.2
## Type citation('dendextend') for how to cite the package.
##
## Type browseVignettes(package = 'dendextend') for the package vignette.
## The github page is: https://github.com/talgalili/dendextend/
##
## Suggestions and bug-reports can be submitted at: https://github.com/talgalili/dendextend/issues
## You may ask questions at stackoverflow, use the r and dendextend tags:
## https://stackoverflow.com/questions/tagged/dendextend
##
## To suppress this message use: suppressPackageStartupMessages(library(dendextend))
## ---------------------
##
## Attaching package: 'dendextend'
## The following object is masked from 'package:permute':
##
## shuffle
## The following object is masked from 'package:stats':
##
## cutree
clust_especies2<-as.dendrogram(clust_especies) # transformando o cluster em um objeto
colors<-c("#E69F00","#56B4E9", "#009E73") # definindo as cores que serão usadas, A terá a cor amarela, B a cor azul e C a cor verde
colorCode<-c(A=colors[1], B=colors[2], C=colors[3])
labels_colors(clust_especies2)<-
colorCode[especies][order.dendrogram(clust_especies2)]
plot(clust_especies2)
É possível observar que o método conseguiu agrupar bem os dados. Pelo gráfico pode-se observar que as espécies da região do alto rio está agrupada juntamente com as espécies da região do rio médio e que as amostras do rio baixo separou-se totalmente das outras duas. Esse dendograma aponta para a possibilidade de que são grupos ou comunidades diferentes uma das outras.
Testando outros métodos para fazer o dendograma:
clust_especies<-hclust(jacc_dist, method = "single")
clust_graf_especies<-plot(clust_especies, hang=-1)
clust_graf
## NULL
require(dendextend) # Para colorir
clust_especies2<-as.dendrogram(clust_especies) # transformando o cluster em um objeto
colors<-c("#E69F00","#56B4E9", "#009E73") # definindo as cores que serão usadas, A terá a cor amarela, B a cor azul e C a cor verde
colorCode<-c(A=colors[1], B=colors[2], C=colors[3])
labels_colors(clust_especies2)<-
colorCode[especies][order.dendrogram(clust_especies2)]
plot(clust_especies2)
O método Single aplicado neste dendograma traz informações ambíguas e formações de grupos ineficiente, as amostras estão dispersas e não possuem padrões adequados. Essa metodologia não é a ideal para a análise dos dados.
Testando método Ward:
clust_especies<-hclust(jacc_dist, method = "ward.D")
clust_graf<-plot(clust_especies, hang=-1)
clust_graf
## NULL
require(dendextend) # Para colorir
clust_especies2<-as.dendrogram(clust_especies) # transformando o cluster em um objeto
colors<-c("#E69F00","#56B4E9", "#009E73") # definindo as cores que serão usadas, A terá a cor amarela, B a cor azul e C a cor verde
colorCode<-c(A=colors[1], B=colors[2], C=colors[3])
labels_colors(clust_especies2)<-
colorCode[especies][order.dendrogram(clust_especies2)]
plot(clust_especies2)
Esse método é bem melhor que o single, pois consegue agrupar os dados em três grupos mais distintos. No entanto os dados ainda estão um pouco dispersos, amostras dos três grupos ainda se misturam de forma que a análise dessa forma pode ser mais complicada. Até o momento o método complete, foi que melhor agrupou os dados.
##K-means
Usando o argumento K-means, uso outra forma de agrupar os dados, dessas vez considerando as variáveis em env, encontramos as similaridades entre eles. Estamos testando aqui a variável Demanda de oxigênio (bod) e oxigênio dissolvido (Oxy) juntamente com variáveis geográficas para todas as amostras.
k3<-kmeans(env[,-c(5:9,12)], centers = 3, nstart=25) #excluindo outras variáveis que não vão ser analisadas
k3
## K-means clustering with 3 clusters of sizes 11, 10, 8
##
## Cluster means:
## dfs ele slo dis oxy bod
## 1 342.7636 226.3636 0.7272727 39.79636 7.518182 7.763636
## 2 163.5100 424.3000 2.3200000 20.65000 11.150000 3.170000
## 3 24.0500 865.2500 8.9000000 2.55875 10.062500 3.537500
##
## Clustering vector:
## 1 2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
## 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1
## 28 29 30
## 1 1 1
##
## Within cluster sum of squares by cluster:
## [1] 55071.64 88964.70 31213.32
## (between_SS / total_SS = 93.2 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Graficando essa análise:
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.1.2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_cluster(k3, data = env[,-c(5:9, 12)])
Testando se o número de clusters é adequado:
fviz_nbclust(env[,-c(5:9,12)], kmeans, method = "silhouette")
Como o gráfico mostra que o ideal seria ter dois clusters, graficamos novamente:
k2<-kmeans(env[,-c(5:9,12)], centers =2, nstart=25)
fviz_cluster(k2, data = env[,-c(5:9,12)])
Os dados agora se encontram em dois clusters com proporções diferentes. O maior cluster possui obviamente uma maior quantidade de dados, embora alguns de seus pontos estejam bem distantes do centróide (implicando dissimilaridade) outros estão bem próximos à ele. Já o segundo cluster apesar de ser menor possui seus pontos de amostra mais próximos. É possível assumir que o maior cluster (A) seja mais similar e uniforme entre is seus dados que o menor cluster (B). Isso à parte se observa também que o número das amostragens do cluster (B) se refere ao Alto Rio, testado em relação à outras variáveis na questão anterior. O que se mostra interessante no entanto é que naquela análise Alto Rio e Médio Rio eram parte de um grupo e Baixo Rio em outro. Aqui analisando outros parâmetros o Alto Rio ficou como um grupo isolado das outras regiões.
###Plotando o resultado do cluster no mapa do rio:
#Primeiro cria-se um vetor para poder selecionar as partes do rio
grupo<-k2$cluster
grupo<-as.vector(grupo)
Agora plota-se os pontos no mapa:
ggplot(spa, aes(X,Y))+
geom_path(color="blue")+
geom_point(size=2,color=grupo)
Pode-se observar no mapa que a maioria das amostras correspondeu ao cluster A, tendo esse cluster a maior ocupação no leito do rio. As características físico-químicas selecionadas para esta análise foram a demanda de oxigênio e o oxigênio dissolvido,onde nas amostras conseguimos visualizar existe uma valores diferentes para essas variáveis ao longo do rio. Existe a possibilidade de que as características geográficas adicionadas nesta análise podem ter influenciado na formação desse padrão observado no mapa, já que a altitude, velocidade e o fluxo da água influenciam diretamente nesses valores.
Observando o padrão das variáveis ambientais (bod e oxy) através de gráficos boxplots:
boxplot(env$oxy,col = "lightblue", xlab = "Variáveis Físico-químicas", ylab = "Frequência",main="Análise de Oxigênio dissolvido")
boxplot(env$bod,col = "lightblue", xlab = "Variáveis Físico-químicas", ylab = "Frequência",main="Análise de Demanda de Oxigênio (BOD)")
Se obtem um padrão já observado antes de correlação inversa entre as duas variáveis, oxy obteve uma alta faixa de variação, ao passo que bod teve uma menor faixa mas apresentou outliers que podem ter influenciado em análises anteriores, como no agrupamento dos dados pelos clusters.A relação entre bod e oxy é considerada um fator importante para análise de poluição e degradação de matéria orgânica. Por isso é ideal que esses valores não sejam extremos um ao outro mesmo sendo fatores opostos. Os outliers em BOD, mostram que existem pontos onde a demanda é maior que o oxigênio (olhando os dois boxplots), o que pode ser uma indicativa de poluição no local, mas no geral a demanda de oxigênio no rio foi menor que a disponibilidade dele, o que é um bom índice, mostrando que o rio está em boas condições na maior parte do seu percurso.