#Cargar paquetes
library(tidyverse)
library(ggthemes)
library(RColorBrewer)
library(plotly)
library(esquisse)
library(corrplot)
library(openxlsx)
library(dplyr)
library(ggplot2)
library(factoextra)
library(FactoMineR)
library(ISLR2)
library(kableExtra)
library(multcomp)
library(cluster)Cercocarpus
Cercocarpus Kunth (Rosaceae)
La familia Rosaceae incluye alrededor de 90 géneros y 3000 especies (Zhang et al. 2017). La clasificación más reciente la divide en las subfamilias Rosoideae Arn., Amygdaloideae Arn. y Dryadoideae Juel (Chin et al. 2014). En México crecen las tres subfamilias y se han registrado 30 géneros y 197 especies. Estas cifras ubican a Rosaceae entre las 25 familias que conforman más del 60 % de la riqueza de plantas vasculares para el país (Villaseñor 2016).
El género Cercocarpus se encuentra en la subfamilia Dryadoideae y presentan las características de desarrollar asociaciones simbióticas con bacterias que les permiten fijar nitrógeno y tienen un número base de cromosomas x = 9. Cercocarpus incluye arbustos o árboles de hojas simples y alternas. Las flores presentan un hipantio tubular que se abre en un limbo con cinco sépalos y sin pétalos. El gineceo consta de un carpelo, un estilo terminal y un óvulo, mientras que el fruto es un aquenio, con el estilo persistente, denominado estilo plumoso. Las flores se agrupan en fascículos axilares. Las especies tienen distribución en el oeste de Estados Unidos de América y México. Cercocarpus se divide en los complejos de especies ledifolius, betuloides, montanus y fothergilloides. La base de datos para este trabajo incluye únicamente a las especies del complejo fothergilloides.
Cargar paqueterías
Importar datos
Code
cercocarpus <- read.xlsx("datos/datos.xlsx", startRow = 1, colNames = TRUE, rowNames = TRUE)
#glimpse(cercocarpus) Se utilizó para ver que el archivo se haya cargado correctamente.Resumen estadístico
Code
summary(cercocarpus) sp LLAM ALAM LPEC
Length:93 Min. : 1.483 Min. :0.8484 Min. : 2.984
Class :character 1st Qu.: 2.347 1st Qu.:1.5807 1st Qu.: 4.653
Mode :character Median : 3.766 Median :2.2066 Median : 6.637
Mean : 4.376 Mean :2.4363 Mean : 8.087
3rd Qu.: 6.052 3rd Qu.:3.1253 3rd Qu.:10.887
Max. :10.781 Max. :5.1927 Max. :19.097
LESP NSEC NFL LPFL
Min. :0.1872 Min. : 4.583 Min. :2.333 Min. :0.0543
1st Qu.:0.3343 1st Qu.: 6.400 1st Qu.:3.824 1st Qu.:0.1379
Median :0.4432 Median : 7.600 Median :4.900 Median :0.2150
Mean :0.4773 Mean : 9.238 Mean :4.988 Mean :0.2702
3rd Qu.:0.5553 3rd Qu.:11.933 3rd Qu.:5.900 3rd Qu.:0.3759
Max. :0.9922 Max. :21.000 Max. :9.700 Max. :0.7139
LHIP LPFR LFR LEST
Min. :0.3429 Min. :0.0790 Min. :0.4040 Min. :2.144
1st Qu.:0.5841 1st Qu.:0.2193 1st Qu.:0.6058 1st Qu.:4.126
Median :0.6461 Median :0.3095 Median :0.6688 Median :4.595
Mean :0.6678 Mean :0.3612 Mean :0.6930 Mean :4.779
3rd Qu.:0.7401 3rd Qu.:0.4802 3rd Qu.:0.7534 3rd Qu.:5.254
Max. :1.1352 Max. :0.9044 Max. :0.9944 Max. :8.207
aspect vrm runoff mexslope
Min. : 4.004 Min. :0.0179 Min. : 45.0 Min. : 522
1st Qu.: 83.324 1st Qu.:0.3111 1st Qu.:135.0 1st Qu.: 8271
Median :173.660 Median :0.4916 Median :270.0 Median :12800
Mean :181.937 Mean :0.5207 Mean :230.3 Mean :15579
3rd Qu.:287.065 3rd Qu.:0.7474 3rd Qu.:360.0 3rd Qu.:22706
Max. :358.745 Max. :0.9847 Max. :360.0 Max. :48822
bio17 mexras mexmo bio06
Min. : 13.00 Min. :0.1857 Min. :0.778 Min. : 1.00
1st Qu.: 23.00 1st Qu.:0.2857 1st Qu.:2.073 1st Qu.: 29.00
Median : 32.00 Median :0.3966 Median :2.726 Median : 39.00
Mean : 37.52 Mean :0.4020 Mean :2.816 Mean : 45.28
3rd Qu.: 45.00 3rd Qu.:0.4655 3rd Qu.:3.546 3rd Qu.: 55.00
Max. :142.00 Max. :0.8830 Max. :4.880 Max. :116.00
bio05
Min. :179.0
1st Qu.:260.0
Median :277.0
Mean :275.3
3rd Qu.:298.0
Max. :333.0
Code
#Se realizó el resumen estadístico de las diferentes variabels contenidas en el archivo de Cercocarpus.Gráficas
Diagramas de caja y bigotes (boxplot)
Code
#Se realizaron los diagramas de caja para poder observar la variación de las espcies con respecto a las variables. Se utilizó un ciclo for para poder generar todos los boxplot.
for(i in 2:21) {
boxplot(cercocarpus[, i] ~ cercocarpus[, 1],
col = c("#ff4040", "#66cd00", "#008b8b", "#9a32cd", "#6e8b3d", "#8b0a50", "#6633ff"),
boxwex = 0.6)
variable <- names(cercocarpus)[i]
title(main = variable)
}Code
#Los diagramas de cajas permiten identificar outliers y tener un panoráma general de la variación entre las especies. El primer y tercer cuartil se representan por la caja. La mediana se indica por la línea adentro de la caja. Los bigotes indican los valores mínimos y máximos de cada variable.Análisis de correlación
Code
# creamos la matriz de correlación, en este caso solo seleccioné las variables numéricas. Otra forma de hacerlo es con: cerco_cor <- cor(cercocarpus |> select(where(is.numeric)))
cerco_cor <-cor(cercocarpus[2:21], method = "pearson")
# Se creó la gráfica
corrplot(cerco_cor, type = "upper", tl.col = "black")Code
#Aquí observamos que el largo de la lámina (LLAM) se correalciona positivamwnte con el ancho de la lámina (ALAM), el largo del pecíolo (LPEC), el número de venas secundarias (NSEC) y el largo del pedicelo en la flor y fruto (LPFL y LPFR). Con respecto a las variables ambientales, no hay una fuerte correlación entre estas y los caracteres morfológicos. El largo del hipantio (LHIP) y el largo de las estípulas (LESP) parecen tener una correlación positiva con la temperatura mínima del mes más frío (bio06). Esto indicaría que el largo del hipantio en las flores y el largo de las estípulas podrían verse influenciados por la disminución de la temperatura.
#Lo mismo ocurre con la pendiente (mexslope) que parece tener una correlación con los caracteres morfológicos. Observaciones en campo detectan que muchas especies de Cercocarpus crece en suelos rocosos-calizos con pendientes muy pronunciadas.Análisis de Componentes principales
Code
#se estandarizan los datos de Cercocarpus a z-scores mediante la funcion scale
cerco_z <- scale(cercocarpus [2:21], center=TRUE, scale=TRUE)
#se calcula la matriz de covarianza
mcov <- cov(cerco_z,y=cerco_z)
#se calcula la matriz de correlacion
mcor <- cor(x=cerco_z,y=cerco_z)
#se calculan los componentes principales
pca <- prcomp(cerco_z, cor=TRUE, scores=T, centr=TRUE)Warning: In prcomp.default(cerco_z, cor = TRUE, scores = T, centr = TRUE) :
extra arguments 'cor', 'scores', 'centr' will be disregarded
Code
eig_total <- get_eigenvalue(pca)
eig_tabla <- data.frame(PC=paste0("PC",1:dim(eig_total)[1]),
Eigenvalor=round(eig_total$eigenvalue,3),
Varianza=round(eig_total$variance.percent,2),
Var_acu=round(eig_total$cumulative.variance.percent,2))
kable(eig_tabla, align = "c", col.names = c("Componente", "Eigenvalor", "% varianza", "% varianza acumulada")) %>% kable_styling(c("striped", "hover"), full_width = F)%>% scroll_box(width="100%", height="300px", fixed_thead = TRUE)| Componente | Eigenvalor | % varianza | % varianza acumulada |
|---|---|---|---|
| PC1 | 6.592 | 32.96 | 32.96 |
| PC2 | 2.248 | 11.24 | 44.20 |
| PC3 | 1.722 | 8.61 | 52.81 |
| PC4 | 1.587 | 7.93 | 60.74 |
| PC5 | 1.242 | 6.21 | 66.95 |
| PC6 | 1.129 | 5.64 | 72.60 |
| PC7 | 1.029 | 5.14 | 77.74 |
| PC8 | 0.780 | 3.90 | 81.64 |
| PC9 | 0.642 | 3.21 | 84.85 |
| PC10 | 0.581 | 2.91 | 87.75 |
| PC11 | 0.552 | 2.76 | 90.51 |
| PC12 | 0.451 | 2.26 | 92.77 |
| PC13 | 0.423 | 2.12 | 94.88 |
| PC14 | 0.352 | 1.76 | 96.64 |
| PC15 | 0.226 | 1.13 | 97.77 |
| PC16 | 0.163 | 0.82 | 98.59 |
| PC17 | 0.110 | 0.55 | 99.14 |
| PC18 | 0.091 | 0.46 | 99.60 |
| PC19 | 0.055 | 0.27 | 99.87 |
| PC20 | 0.025 | 0.13 | 100.00 |
Scree plot
Code
fviz_eig(pca, addlabels = TRUE)Code
#Se observa que el primer componente aporta el 33% de la variación observada y el resto de los componentes no varía mucho en su aportación.Coeficientes (loadings)
Code
pca_coef <- data.frame(pca$rotation)
kable(pca_coef, align = "c") %>% kable_styling(c("striped", "hover"), full_width = F)%>% scroll_box(width="100%", height="300px", fixed_thead = TRUE)| PC1 | PC2 | PC3 | PC4 | PC5 | PC6 | PC7 | PC8 | PC9 | PC10 | PC11 | PC12 | PC13 | PC14 | PC15 | PC16 | PC17 | PC18 | PC19 | PC20 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LLAM | 0.3688563 | 0.0474579 | 0.0384073 | 0.0116095 | 0.1531580 | -0.0590552 | -0.0602870 | -0.1424009 | -0.1188011 | -0.0231266 | 0.0290707 | 0.0456274 | 0.0954843 | -0.0248345 | -0.1912585 | 0.0365070 | 0.0041714 | -0.0512254 | -0.1382709 | -0.8498488 |
| ALAM | 0.3539528 | 0.0700213 | 0.0714380 | 0.0371734 | 0.0941140 | -0.0045957 | -0.0419183 | -0.1778071 | -0.1167873 | 0.0500685 | 0.0052224 | -0.0408516 | 0.1866308 | -0.1578913 | -0.4219267 | -0.1865101 | 0.0184390 | -0.5311504 | -0.2771578 | 0.4139925 |
| LPEC | 0.3630268 | -0.0235585 | 0.0255037 | 0.0845230 | 0.1391692 | -0.0438762 | -0.0462707 | -0.1665830 | -0.0613535 | 0.0250831 | -0.1036274 | 0.0933371 | 0.1136180 | 0.0018424 | -0.0863542 | -0.1586757 | 0.2013884 | 0.1751383 | 0.8097394 | 0.1112561 |
| LESP | 0.2873958 | 0.0833755 | 0.0033549 | -0.1675482 | -0.1253521 | 0.2148930 | 0.2483205 | 0.1657818 | 0.0860050 | -0.1049114 | -0.1399180 | -0.2619815 | -0.0654141 | -0.6550366 | 0.2607565 | -0.3049061 | 0.0318635 | 0.1539618 | -0.0621281 | -0.0426854 |
| NSEC | 0.3495836 | -0.0255070 | 0.0629165 | 0.0223585 | 0.2072775 | -0.0727637 | -0.1397530 | -0.1352964 | -0.1071312 | -0.1292864 | 0.0105783 | 0.1391295 | 0.0212309 | 0.0094361 | 0.0264565 | 0.1513455 | -0.4519547 | 0.6015010 | -0.2805383 | 0.2646004 |
| NFL | 0.2690583 | 0.0214811 | 0.1266563 | 0.1399223 | -0.1536482 | 0.0860680 | 0.1359387 | 0.0315835 | 0.0294404 | 0.2457074 | -0.6669275 | -0.0133181 | -0.4616278 | 0.2902093 | -0.0352701 | 0.1365343 | 0.0692033 | -0.0259040 | -0.1091267 | 0.0157886 |
| LPFL | 0.3086173 | -0.1289344 | -0.2168828 | 0.0878681 | 0.1918519 | -0.1310650 | -0.1415108 | 0.0779563 | -0.0741107 | -0.0727857 | 0.2614399 | 0.0596206 | -0.2073625 | 0.0888258 | 0.4097095 | 0.0769127 | 0.6172255 | -0.0322852 | -0.2273972 | 0.1104684 |
| LHIP | 0.1664399 | 0.2516274 | -0.1971499 | -0.3647075 | -0.0233443 | -0.1534984 | 0.0412173 | 0.4274687 | -0.1605492 | -0.4055078 | 0.0862716 | -0.3110726 | -0.2023717 | 0.2676772 | -0.3020919 | 0.0772108 | -0.0661052 | -0.0114732 | 0.1339309 | 0.0433553 |
| LPFR | 0.2869675 | -0.2129675 | -0.2329157 | 0.2294895 | -0.1750915 | 0.0268484 | -0.0840918 | 0.1208873 | 0.1145243 | -0.0553792 | 0.1684627 | 0.1349403 | -0.1909431 | -0.0240747 | 0.2852070 | 0.0556482 | -0.5460258 | -0.4253684 | 0.2178653 | -0.0389711 |
| LFR | 0.1586879 | 0.0844862 | -0.3595434 | -0.3990566 | -0.2735907 | -0.1809560 | 0.0328708 | -0.0052198 | 0.1987528 | 0.1906186 | -0.1465022 | 0.3018536 | 0.3588116 | 0.2994871 | 0.1505266 | -0.3492365 | -0.0200744 | 0.0435839 | -0.1289388 | -0.0071355 |
| LEST | 0.2115760 | -0.0045740 | -0.1621546 | 0.0873125 | -0.5037583 | 0.2518331 | 0.1853762 | -0.1787851 | 0.2065879 | 0.2068619 | 0.4205842 | -0.1307957 | 0.0223864 | 0.0190173 | -0.2884026 | 0.3230266 | 0.1418055 | 0.2202303 | -0.0052759 | 0.0358364 |
| aspect | -0.0264374 | 0.1982235 | -0.0202599 | 0.5070986 | -0.1156681 | -0.2376968 | 0.4278428 | 0.2141291 | 0.0929044 | -0.3994294 | -0.0632516 | 0.4148602 | 0.1406973 | -0.0744336 | -0.1292796 | -0.0025360 | 0.1031560 | 0.0468429 | -0.0664905 | 0.0085098 |
| vrm | -0.0027212 | -0.3283990 | -0.0560965 | -0.1900933 | 0.2047441 | 0.1428445 | 0.5833696 | 0.1903777 | -0.4764800 | 0.2980424 | 0.1473909 | 0.2579853 | -0.0399430 | 0.0103791 | -0.0578129 | 0.0045011 | -0.0657594 | -0.0011952 | 0.0174121 | 0.0117567 |
| runoff | -0.0294295 | 0.3798523 | -0.0765352 | 0.2630789 | -0.3425167 | -0.1085675 | -0.1604100 | 0.0619248 | -0.6772167 | 0.2393562 | -0.0180463 | -0.1413678 | 0.1706417 | -0.0500108 | 0.2226541 | 0.0238519 | -0.0412578 | 0.0327148 | 0.0185533 | 0.0016986 |
| mexslope | 0.1388547 | 0.0768131 | 0.3953414 | 0.1112279 | 0.0994315 | -0.1807616 | -0.1400052 | 0.6154935 | 0.2694569 | 0.4664229 | 0.2206681 | -0.0228044 | 0.0880248 | 0.0112433 | -0.0666163 | -0.0802856 | -0.0260270 | 0.0794167 | -0.0005235 | -0.0065391 |
| bio17 | 0.1219853 | -0.3407083 | 0.4000713 | 0.1219064 | -0.1532972 | -0.0518315 | 0.2633755 | -0.0756923 | -0.0557248 | -0.2353837 | 0.0589158 | -0.4256913 | 0.3069331 | 0.4059503 | 0.2360440 | -0.1767610 | -0.0270389 | -0.0241419 | -0.0470777 | -0.0121158 |
| mexras | 0.0317904 | 0.0403158 | -0.2256820 | 0.1952982 | 0.2204836 | 0.7225636 | -0.1536285 | 0.3089856 | 0.0137462 | -0.0977291 | -0.1547505 | -0.0210746 | 0.3759965 | 0.1963178 | 0.0018157 | 0.0387607 | 0.0328362 | 0.0159339 | -0.0399519 | -0.0050546 |
| mexmo | 0.0256163 | -0.0944667 | 0.4296233 | -0.1922407 | -0.4099239 | 0.2993527 | -0.3081571 | 0.0968348 | -0.2040384 | -0.2512735 | 0.1181960 | 0.4538402 | -0.1653161 | 0.0267801 | -0.0735262 | -0.1865381 | 0.1157058 | 0.0140156 | -0.0150924 | -0.0112844 |
| bio06 | 0.1283308 | 0.4036906 | 0.3355808 | -0.3168635 | 0.0785944 | 0.0845796 | 0.1878424 | -0.0804398 | 0.0822060 | -0.0393141 | 0.0143278 | 0.1596487 | 0.2123482 | -0.0009187 | 0.3388732 | 0.5372740 | 0.0080022 | -0.2341439 | 0.1043382 | 0.0640371 |
| bio05 | -0.0237489 | 0.5146337 | 0.0561085 | 0.1330154 | 0.2014139 | 0.2348254 | 0.1914089 | -0.2373773 | 0.0599904 | 0.0587526 | 0.3241007 | 0.0181589 | -0.3307452 | 0.2802892 | 0.1080509 | -0.4468268 | -0.1114383 | 0.0214598 | -0.0124807 | -0.0176349 |
Code
#Aquí vemos que para el componente 1, el largo de la lámina (LLAM) es la variable que explica más la variación de las especies. Mientras que para el segundo componente la temperatura máxima del mes más caliente (bio05) es la que tienen mayor contribución. Para el tercer componente, la variable de materia orgánica (mexmo) es la que más aporta para explicar la varación.Contribución de cada variable
Code
fviz_pca_var(pca, col.var = "contrib", gradient.cols=c("#FAEBD7", "#7FFFD4", "#EED5B7", "#98F5FF", "#EE5C42", "#5CACEE", "#EEEE00", "#ff2e16", "#8b3a62", "#5d478b", "#00EEEE", "#cdcd00", "#b3b3b3", "#EE7621", "#7FFF00", "#ee3b3b", "#8B3626", "#1627dc", "#363636"))Code
#Se señala con letras negras LLAM como la variable que más aporta en el componente 1. En esta gráfica se observa que la mayoría de las variables se localizan en los valores positivos de la primera componente y que estas corresponden con las variables morfológicas. Que las flechas apunten hacía la misma dirección podría indicar LLAM está correlacionada con ALAM, NSEC, NFL.
#La variable de estimación del vector de rugosidad (vrm) parece tener poca correlación con el resto de las variables.Contribución de las variables por cada componente principal
Code
#Se muestra la contribución de las variables en el primer componente
fviz_contrib(pca, "var", axes = 1, select.var = list(contrib=100))Code
#Aquí se observa que LLAM y LPEC contribuyen de manera similar al primer componente.Code
#Se muestra la contribución de las variables en el segundo componente
fviz_contrib(pca, "var", axes = 2, select.var = list(contrib=100))Code
#Para el segundo componente la varaible que más aporta a la variación es la temperatura máxima del mes más caliente (bio05). Cluster
Distancia Euclidiana
Code
#Se estandarizan los datos con la función scale
cerco_scale <- scale(cercocarpus [2:21])Code
dist_eucl <- dist(cerco_scale)
dist_eucl_matrix <- as.matrix(dist_eucl)
dist_eucl_plot <- fviz_dist(dist_eucl, lab_size = 6)
ggplotly(dist_eucl_plot)Agrupamiento jerárquico
Code
#Se llavó a cabo el agrupamiento jerárquico utilizando la matriz de distancias Euclidianas.
euc_comp_hc <- hclust(dist_eucl, method = "complete")
fviz_dend(euc_comp_hc, k=7, cex=0.5, k_colors = c("#FAEBD7", "#7FFFD4", "#EED5B7", "#98F5FF", "#EE5C42", "#5CACEE", "#EEEE00"), rect=TRUE, rect_border= "jco", rect_fill = TRUE, labels_track_height=45)#Con el dendograma no se recuperan las especies del complejo Cercocarpus fothergilloides.
#Se ha observado que los caracteres cuantitativos no son suficientes para delimitar las especies del complejo Cercocarpus fothergilloides. Las especies de este complejo presentan una gran variación. En ocasiones los caracteres cuantitativos característicos de una especie pueden aparecen en otra.
#Se ha observado que la combinación de caracteres cuantitativos y cualitativos ayuda a diferenciar las especies. Por ejemplo, el tipo de indumento en el envés de las hojas y en el hipantio contribuyen a la delimitación de los grupos. Será necesario realizar un análisis de cluster que incluya caracteres cualitativos.
#Con respecto a la variables ambientales, parece ser que las especies crecen en ambientes similares.