Cercocarpus

Author

Diana_Trujillo

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

#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)

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.