U1A10. Caso de Estudio de Apicultura parte 2

EQUIPO 2. Cielo Aholiva Higuera Gutierrez, Mariana Pompa Rivera, Saul Lopez Lopez y Cristina Arguelles Lema

26/2/2021

Análisis de Apicultura en México

Acerca de este documento

Este es un documento basado en el análisis de las abejas y todo lo que se le relacione, a través de gráficas y tablas que representan los datos dados en la contribución de la abeja al ecosistema, así mismo factores realizados por humanos que pueden llegar a la extinción, esto representado en datos de diferentes variables.

Las abejas son fundamentales para un equilibrio del medio ambiente ya que al obtener el alimento de las flores fomentan en las plantas la capacidad de fecundarse, actividad llamada polinización cruzada, con ésta, las plantas generan el oxígeno suficiente para la vida y además, aumentan el rendimiento en los cultivos, lo que favorece un incremento en alimentos de origen vegetal, materia prima textil, e insumos agropecuarios.

Para la descarga de este código

Para fines de reproducibilidad inmediata se incluye todo el código para su descarga

xfun::embed_file("U1A10.Rmd")

Download U1A10.Rmd ## Introduccion

La apicultura se describe como la actividad dedicada a la crianza de las abejas, brindándoles los cuidados necesarios con el objetivo de obtener y consumir los productos que son capaces de elaborar y recolectar. El principal producto que se obtiene de esta actividad es la miel, sin embargo también se procesan productos no menos importantes como el polen, jalea real, propóleos y veneno de abejas.

“Alrededor del 70% de la agricultura mundial es posible por las abejas, que favorecen la polinización y reproducción de las plantas, lo cual equivale al 35% de la producción de alimentos.”

Preguntas

1.¿Por qué las abejas importan tanto a la humanidad?

La agricultura es la primera y auténtica beneficiaria de los servicios prestados por las abejas. Su contribución en términos económicos es realmente significativa, hasta tal punto que la renta directa de la apicultura (miel, cera, polen y otros productos) pasa a un segundo término. Setenta de los 100 principales cultivos alimentarios que se cultivan en todo el mundo dependen de polinizadores, lo que equivale al 90 por ciento de la nutrición mundial. Sin la existencia de las abejas abría una escasez de alimentos.

Las abejas son mucho más que un pequeño insecto con el que los seres humanos compartimos el planeta, pues son las encargadas de polinizar vegetales en parcelas cercanas a sus colmenas, lo que contribuye a mejorar la biodiversidad, para que después, los polinizadores como pájaros, mariposas y murciélagos transporten el polen de flor en flor para fertilizar a las plantas. Este proceso permite la germinación de semillas y el crecimiento de frutos, es decir, sin abejas no habría alimentos. También existiriían consecuencias económicas ya que las abejas contribuyen alrededor de 3,250 pesos a la producción de cultivos por hectárea al año. Para poner eso en contexto, la Organización de las Naciones Unidas para la Agricultura y la Alimentación estima que 1.400 millones de hectáreas de tierra en todo el mundo se cultivan actualmente para cultivos. Eso equivale a agregar alrededor de $4.2 billones a la economía global.

2.¿Por qué las abejas están desapareciendo tan rápidamente?

La cantidad de abejas y otros polinizadores se está reduciendo en muchas partes del mundo debido, en buena parte, a las prácticas agrícolas intensivas, el monocultivo, el uso excesivo de productos químicos agrícolas y a unas temperaturas más altas asociadas al cambio climático, que afectan no solo a los rendimientos de los cultivos sino también la nutrición. Si esta tendencia continúa, cada vez con más frecuencias los cultivos nutritivos como frutas, nueces y muchas verduras serán sustituidos por cultivos básicos como el arroz, el maíz y las patatas, lo que podría derivar en una dieta desequilibrada.

En México la proliferación de cultivos de maíz ha presentado un grave problema para estos polinizadores, ya que quitan espacio para flores con polen, de las que se alimentan. Por otro lado, su hábitat natural está desapareciendo poco a poco; el campo se ve cada vez más reducido por la deforestación, según la SEMARNAT en los últimos 20 años el país ha perdido entre 155 mil y 776 mil hectáreas de bosques y selvas.

3.¿Cómo podemos responder estas preguntas? Con el análisis que a continuación estará representado a tráves de gráficos estadisticos y tablas representativas.

library(pacman) #Para importar la biblioteca "pacman"
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc","readr", "knitr","DT","dplyr", "ggplot2","plotly", "gganimate","gifski","scales")

Gráfica de linea acerca las Colmenas a traves de años México

library(readxl)
library(ggplot2)
library(DT)
colmenass <- read_excel("Colmenas.xlsx")
datatable(colmenass)

Gráfica de linea acerca las Colmenas a traves de los años en México

colmenas <- ggplot(data = colmenass) + 
  geom_line(aes(Fecha, Colmenas, colour="Colmenas")) + 
  xlab("Año") +
  ylab("Cantidad de Colmenas") +
  ggtitle("Colmenas a través de los años") 
library(plotly)
ggplotly(colmenas)

Interpretación: Debido a la crisis económica en México surge una falta de reservas internacionales, causando devaluación del peso México. Apartir de esta crisis economica, la cantidad de colmenas en México fue decreciendo durantes los años de 1994 a 1997 pero en el año 1993 a 1994 se mantuvo constante. En años mas actuales el numero de colmenas fueron decrecieron pero apartir del 2003 al 2015 se intento recuperar un poco mas llegando a la cantidad de 2 millones, concluyendo que nunca se logro obtener el numero de colmenas del año 1993.

Grafica de Pastel acerca de las Unidades de Producción por entidad y municipio de Sonora

library(readxl)
Unidades <- read_excel("Unidades.xlsx") 
ggplot(Unidades, aes(x=0, y= Produccion, fill=Municipio)) +
  geom_bar(stat ="identity",color="white")+
  geom_text(aes(label=percent(Produccion/281)), 
  position=position_stack(vjust=0.5),color="Black",size=2,)+
  coord_polar(theta="y")

Interpretación: Para el estado de Sonora se analizaron los municipios que mas produjeron colmenas durante el 2007, observando que Hermosillo es el primer lugar en Sonora en producirlas y Cajeme quedando en segundo lugar.

Gráfica de Barra acerca de Existencias de Colmenas por Entidad y Municipio de Sonora

colmena <- read_excel("COLMSON.xlsx") 
Mpio <- colmena$MUNICIPIO
num <- colmena$Ncolmenas
datos <- data.frame(num, Mpio)
colme <- ggplot(colmena, aes( y=num, x=Mpio)) +
  geom_bar(position="dodge", stat="identity", fill= "pink")+
  labs(x="Municipio", y="Cantidad de colmenas", title="Número de colmenas por municipio en Sonora") +
  theme(axis.text.x = element_text(angle=90, hjust=1),axis.text.y =element_text(size = 8))
 
library(plotly)
ggplotly(colme)

Interpretación: Al manejarse los mismos datos que el grafico anterior, los resultados fueron los mismos, dejando a Hermosillo como el primer municipio en producir colmenas en Sonora, respresentado de diferente forma.

Gráfica de la Relación del uso de Plaguicida

Pest <- ggplot(data = colmenass) +
  geom_line(aes(Fecha, Toneladas, colour="Toneladas de plaguicidas")) + 
  xlab("Año") +
  ylab("Toneladas") +
  ggtitle("Plaguicidas uso (1990-2018)") +
 theme_linedraw()
  geom_point
## function (mapping = NULL, data = NULL, stat = "identity", position = "identity", 
##     ..., na.rm = FALSE, show.legend = NA, inherit.aes = TRUE) 
## {
##     layer(data = data, mapping = mapping, stat = stat, geom = GeomPoint, 
##         position = position, show.legend = show.legend, inherit.aes = inherit.aes, 
##         params = list(na.rm = na.rm, ...))
## }
## <bytecode: 0x00000000209c8020>
## <environment: namespace:ggplot2>
ggplotly(Pest)

Interpretación: En base a los datos de este grafico se puede observar que durante 1990 se mantuvo constante su producción plaguicidas hasta el 2000, que fue el año en el que decayo su productividad. Sin embargo, en 2002 comenzó a mostrar cambios positivos, aumentando su producción, dejando una cantidad de 50,894 toneladas en el 2007.

  • Gráfico: Plaguicidas uso.
rel <- ggplot(data = colmenass) +
  geom_line(aes(Fecha, Toneladas, colour="Toneladas de plaguicidas")) + 
  geom_line(aes(Fecha, Colmenas, colour="Colmenas (escala)")) +
  xlab("Año") +
  ylab("Comportamiento") +
  ggtitle("Relación entre el uso de pesticidas y las colmenas de abeja (1990-2018)") +
 theme_linedraw()
  geom_point
## function (mapping = NULL, data = NULL, stat = "identity", position = "identity", 
##     ..., na.rm = FALSE, show.legend = NA, inherit.aes = TRUE) 
## {
##     layer(data = data, mapping = mapping, stat = stat, geom = GeomPoint, 
##         position = position, show.legend = show.legend, inherit.aes = inherit.aes, 
##         params = list(na.rm = na.rm, ...))
## }
## <bytecode: 0x00000000209c8020>
## <environment: namespace:ggplot2>
ggplotly(rel)

Interpretación: Debido al aumento de producción de plaguicidas en el 2003 en adelante, el número de colmenas fue decreciendo o permaneciendo constante en cantidades bajas de producción. Por lo que se puede deducir que el aumento de los plaguicidas es una de las causas del menor número de producción de colmenas en México.

Distribución de unidades de distribución (SONORA).

cmuni <- read_excel("cmuni.xlsx") 

ggplot(cmuni, aes(x=1, y= Municipio, fill=Distribución)) +
  geom_bar(stat="identity", width=1) +
  coord_polar("y", start=0)

# Parte II ## Clasificación no supervisada K-means

ipak <- function(pkg){
  new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
  if (length(new.pkg)) 
    install.packages(new.pkg, dependencies = TRUE)
  sapply(pkg, require, character.only = TRUE)
}
packages <- c("tidyverse","cluster", "factoextra","NbClust","tidyr")
ipak(packages)
## Loading required package: tidyverse
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v tibble  3.0.6     v stringr 1.4.0
## v tidyr   1.1.2     v forcats 0.5.1
## v purrr   0.3.4
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x scales::col_factor() masks readr::col_factor()
## x purrr::discard()     masks scales::discard()
## x plotly::filter()     masks dplyr::filter(), stats::filter()
## x dplyr::lag()         masks stats::lag()
## Loading required package: cluster
## Loading required package: factoextra
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
## Loading required package: NbClust
##  tidyverse    cluster factoextra    NbClust      tidyr 
##       TRUE       TRUE       TRUE       TRUE       TRUE
library(readxl)
df <- read_excel("Colmenas2.xlsx")
df
## # A tibble: 29 x 2
##    Colmenas Toneladas
##       <dbl>     <dbl>
##  1  2114489     26625
##  2  2088315     26625
##  3  2107618     26625
##  4  2293733     26625
##  5  2292428     26625
##  6  2053761     26625
##  7  1919938     26625
##  8  1715948     26625
##  9  1791111     26625
## 10  1944573     26625
## # ... with 19 more rows
#normalizar las puntuaciones
df <- scale(df)
head(df)
##       Colmenas  Toneladas
## [1,] 1.2015898 -0.6981002
## [2,] 1.0445024 -0.6981002
## [3,] 1.1603524 -0.6981002
## [4,] 2.2773509 -0.6981002
## [5,] 2.2695187 -0.6981002
## [6,] 0.8371211 -0.6981002

Cálculo de matriz de distancias acerca de la relación que hay entre las colmenas y las toneladas de plaguicidas.

#calcular la matriz de distacias
m.distancia <- get_dist(df, method = "euclidean") #el método aceptado también puede ser: "maximum", "manhattan", "canberra", "binary", "minkowski", "pearson", "spearman" o "kendall"
fviz_dist(m.distancia, gradient = list(low = "blue", mid = "orange", high = "red"))

## Estimación del número de clústers de colmenas y toneladas de pesticidas.

#estimar el número de clústers
#Elbow, silhouette o gap_stat  method
fviz_nbclust(df, kmeans, method = "wss")

fviz_nbclust(df, kmeans, method = "silhouette")

fviz_nbclust(df, kmeans, method = "gap_stat")

#con esta función se pueden calcular:
#the index to be calculated. This should be one of : "kl", "ch", "hartigan", "ccc", "scott",
#"marriot", "trcovw", "tracew", "friedman", "rubin", "cindex", "db", "silhouette", "duda",
#"pseudot2", "beale", "ratkowsky", "ball", "ptbiserial", "gap", "frey", "mcclain", "gamma",
#"gplus", "tau", "dunn", "hubert", "sdindex", "dindex", "sdbw", "all" (all indices except GAP,
#Gamma, Gplus and Tau), "alllong" (all indices with Gap, Gamma, Gplus and Tau included).
resnumclust<-NbClust(df, distance = "euclidean", min.nc=2, max.nc=15, method = "kmeans", index = "alllong")
## Warning in pf(beale, pp, df2): NaNs produced

## *** : The Hubert index is a graphical method of determining the number of clusters.
##                 In the plot of Hubert index, we seek a significant knee that corresponds to a 
##                 significant increase of the value of the measure i.e the significant peak in Hubert
##                 index second differences plot. 
## 

## *** : The D index is a graphical method of determining the number of clusters. 
##                 In the plot of D index, we seek a significant knee (the significant peak in Dindex
##                 second differences plot) that corresponds to a significant increase of the value of
##                 the measure. 
##  
## ******************************************************************* 
## * Among all indices:                                                
## * 4 proposed 2 as the best number of clusters 
## * 10 proposed 3 as the best number of clusters 
## * 1 proposed 4 as the best number of clusters 
## * 1 proposed 6 as the best number of clusters 
## * 1 proposed 10 as the best number of clusters 
## * 3 proposed 11 as the best number of clusters 
## * 1 proposed 13 as the best number of clusters 
## * 3 proposed 14 as the best number of clusters 
## * 3 proposed 15 as the best number of clusters 
## 
##                    ***** Conclusion *****                            
##  
## * According to the majority rule, the best number of clusters is  3 
##  
##  
## *******************************************************************
fviz_nbclust(resnumclust)
## Warning in if (class(best_nc) == "numeric") print(best_nc) else if
## (class(best_nc) == : la condición tiene longitud > 1 y sólo el primer elemento
## será usado
## Warning in if (class(best_nc) == "matrix") .viz_NbClust(x, print.summary, : la
## condición tiene longitud > 1 y sólo el primer elemento será usado
## Warning in if (class(best_nc) == "numeric") print(best_nc) else if
## (class(best_nc) == : la condición tiene longitud > 1 y sólo el primer elemento
## será usado
## Warning in if (class(best_nc) == "matrix") {: la condición tiene longitud > 1 y
## sólo el primer elemento será usado
## Among all indices: 
## ===================
## * 2 proposed  0 as the best number of clusters
## * 1 proposed  1 as the best number of clusters
## * 4 proposed  2 as the best number of clusters
## * 10 proposed  3 as the best number of clusters
## * 1 proposed  4 as the best number of clusters
## * 1 proposed  6 as the best number of clusters
## * 1 proposed  10 as the best number of clusters
## * 3 proposed  11 as the best number of clusters
## * 1 proposed  13 as the best number of clusters
## * 3 proposed  14 as the best number of clusters
## * 3 proposed  15 as the best number of clusters
## 
## Conclusion
## =========================
## * According to the majority rule, the best number of clusters is  3 .

#calculamos los tres clústers
k2 <- kmeans(df, centers = 3, nstart = 25) #center es 2 porque tengo 2 clústers
k2
## K-means clustering with 3 clusters of sizes 13, 9, 7
## 
## Cluster means:
##     Colmenas  Toneladas
## 1 -0.3969498  0.9197530
## 2 -0.5752756 -1.0111962
## 3  1.4768326 -0.4080034
## 
## Clustering vector:
##  [1] 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3
## 
## Within cluster sum of squares by cluster:
## [1] 5.158095 3.601788 5.580778
##  (between_SS / total_SS =  74.4 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"
str(k2)
## List of 9
##  $ cluster     : int [1:29] 3 3 3 3 3 3 2 2 2 2 ...
##  $ centers     : num [1:3, 1:2] -0.397 -0.575 1.477 0.92 -1.011 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:3] "1" "2" "3"
##   .. ..$ : chr [1:2] "Colmenas" "Toneladas"
##  $ totss       : num 56
##  $ withinss    : num [1:3] 5.16 3.6 5.58
##  $ tot.withinss: num 14.3
##  $ betweenss   : num 41.7
##  $ size        : int [1:3] 13 9 7
##  $ iter        : int 2
##  $ ifault      : int 0
##  - attr(*, "class")= chr "kmeans"

Gráfico de clústers de colmenas y toneladas de pesticidas.

#plotear los cluster
fviz_cluster(k2, data = df)

fviz_cluster(k2, data = df, ellipse.type = "euclid",repel = TRUE,star.plot = TRUE) #ellipse.type= "t", "norm", "euclid"

fviz_cluster(k2, data = df, ellipse.type = "norm")

fviz_cluster(k2, data = df, ellipse.type = "norm",palette = "Set2", ggtheme = theme_minimal())

Dendrograma acerca de la relación existente de las colmenas y los pesticidas.

res2 <- hcut(df, k = 3, stand = TRUE)
fviz_dend(res2, rect = TRUE, cex = 0.5,
          k_colors = c("red","#2E9FDF", "purple", "green"))
## Warning in get_col(col, k): Length of color vector was longer than the number of
## clusters - first k elements are used

library(readxl)
df <- read_excel("Colmenas2.xlsx")
df %>%
  mutate(Cluster = k2$cluster) %>%
  group_by(Cluster) %>%
  summarise_all("mean")
## # A tibble: 3 x 3
##   Cluster Colmenas Toneladas
## *   <int>    <dbl>     <dbl>
## 1       1 1848139.    47753.
## 2       2 1818427.    22536.
## 3       3 2160350.    30413.
library(readxl)
df <- read_excel("Colmenas2.xlsx")
df$clus<-as.factor(k2$cluster)
df <- read_excel("Colmenas2.xlsx")
df <- scale(df)
df<- as.data.frame(df)
df$clus<-as.factor(k2$cluster)
df
##       Colmenas  Toneladas clus
## 1   1.20158977 -0.6981002    3
## 2   1.04450239 -0.6981002    3
## 3   1.16035238 -0.6981002    3
## 4   2.27735086 -0.6981002    3
## 5   2.26951870 -0.6981002    3
## 6   0.83712112 -0.6981002    3
## 7   0.03396131 -0.6981002    2
## 8  -1.19031680 -0.6981002    2
## 9  -0.73921422 -0.6981002    2
## 10  0.18181214 -0.6981002    2
## 11 -0.23135396 -0.6981002    2
## 12 -0.31153010 -0.9471969    2
## 13 -0.78276824 -1.8535321    2
## 14 -1.12258209 -1.4898801    2
## 15 -1.01548851 -1.3196551    2
## 16 -1.09330601  0.2626794    1
## 17 -1.00375527  0.2037937    1
## 18 -1.03972321  1.1602851    1
## 19 -0.70100166  1.1036966    1
## 20 -0.83736532  1.1169440    1
## 21 -0.43301565  1.2683317    1
## 22 -0.39978448  1.3383973    1
## 23 -0.09626866  1.0316401    1
## 24  0.11298513  0.9042968    1
## 25  0.40140679  0.5580271    1
## 26  0.62208173  0.9611150    1
## 27 -0.32966711  0.8943421    1
## 28 -0.36293430  1.1532403    1
## 29  1.54739327  1.3325777    3
df$clus<-factor(df$clus)
data_long <- gather(df, Caracteristica, Valor, Colmenas:Toneladas, factor_key=TRUE)
data_long
##    clus Caracteristica       Valor
## 1     3       Colmenas  1.20158977
## 2     3       Colmenas  1.04450239
## 3     3       Colmenas  1.16035238
## 4     3       Colmenas  2.27735086
## 5     3       Colmenas  2.26951870
## 6     3       Colmenas  0.83712112
## 7     2       Colmenas  0.03396131
## 8     2       Colmenas -1.19031680
## 9     2       Colmenas -0.73921422
## 10    2       Colmenas  0.18181214
## 11    2       Colmenas -0.23135396
## 12    2       Colmenas -0.31153010
## 13    2       Colmenas -0.78276824
## 14    2       Colmenas -1.12258209
## 15    2       Colmenas -1.01548851
## 16    1       Colmenas -1.09330601
## 17    1       Colmenas -1.00375527
## 18    1       Colmenas -1.03972321
## 19    1       Colmenas -0.70100166
## 20    1       Colmenas -0.83736532
## 21    1       Colmenas -0.43301565
## 22    1       Colmenas -0.39978448
## 23    1       Colmenas -0.09626866
## 24    1       Colmenas  0.11298513
## 25    1       Colmenas  0.40140679
## 26    1       Colmenas  0.62208173
## 27    1       Colmenas -0.32966711
## 28    1       Colmenas -0.36293430
## 29    3       Colmenas  1.54739327
## 30    3      Toneladas -0.69810024
## 31    3      Toneladas -0.69810024
## 32    3      Toneladas -0.69810024
## 33    3      Toneladas -0.69810024
## 34    3      Toneladas -0.69810024
## 35    3      Toneladas -0.69810024
## 36    2      Toneladas -0.69810024
## 37    2      Toneladas -0.69810024
## 38    2      Toneladas -0.69810024
## 39    2      Toneladas -0.69810024
## 40    2      Toneladas -0.69810024
## 41    2      Toneladas -0.94719693
## 42    2      Toneladas -1.85353215
## 43    2      Toneladas -1.48988007
## 44    2      Toneladas -1.31965507
## 45    1      Toneladas  0.26267942
## 46    1      Toneladas  0.20379366
## 47    1      Toneladas  1.16028515
## 48    1      Toneladas  1.10369663
## 49    1      Toneladas  1.11694401
## 50    1      Toneladas  1.26833170
## 51    1      Toneladas  1.33839732
## 52    1      Toneladas  1.03164007
## 53    1      Toneladas  0.90429675
## 54    1      Toneladas  0.55802708
## 55    1      Toneladas  0.96111500
## 56    1      Toneladas  0.89434207
## 57    1      Toneladas  1.15324030
## 58    3      Toneladas  1.33257767

Relación de 3 clústers relacionando las colmenas y las toneladas.

x <- ggplot(data_long, aes(as.factor(x = Caracteristica), y = Valor,group=clus, colour = clus)) + 
  stat_summary(fun = mean, geom="pointrange", size = 1)+
  stat_summary(geom="line")
  #geom_point(aes(shape=clus))
ggplotly(x)
## No summary function supplied, defaulting to `mean_se()`

Interpretación: Como se puede observar en el gráfico durante el primer clustér hay menos colmenas cuando se tiene mas valor de pesticidas, a comparacion del cluster 2 y 3 que tienen mas colmenas cuando hay menos pesticidas, por ello se ve como los pesticidas pueden afectar la producción de las colmenas.

Conclusión.

Gracias a este análisis, se puede visualizar que gracias a la produccion de los plaguicidas, las abejas y sus colmenas se ven de cierta manera afectadas debido a que se sabe que los plaguicidas son los que se encargan de eliminar las plagas que se encuentran en la plantas, por ello matan las plagas, solo que a pesar de que no sea la intención, las abejas mueren afectando de gran manera su indice de vida.

Bibliografía.