Análisis de apicultura
Introducción
Las abejas son un polinizador muy importante en el ecosistema, permiten el funcionamiento de la agricultura humana, ganadería y manufactura de ropa. Aun con esta importancia, la humanidad no le ha dado su lugar al problema de la extinción de las abejas, esto se refleja en la poca cantidad de colmenas presentes en el país que se han reducido en los últimos años. La producción natural de las abejas se ha visto reducida en todo el mundo por múltiples factores. Una de las principales razones por las que está desapareciendo las abejas en Norte América y Europa es por el cambio de la temperatura causa del cambio climático, esto se puede observar en la reducción de especies de abejas que estaban presentes desde en 1901, este declive de abejas esta mayormente presente en México. Otros factores importantes en la reducción de colmenas son los pesticidas de los cuales aumenta su uso cada año, la poca nutrición de las abejas causada por el monocultivo masivo que requiere la alimentación global, las avispas asiáticas y los parásitos Acarapis Woodi y Varroa Destructor que infectan, enferman y finalizan colmenas enteras.
Información recuperada de: https://www.greenandgrowing.org/why-are-the-bees-disappearing/ y https://news.culturacolectiva.com/mexico/por-que-las-abejas-son-tan-importantes-y-como-rescatarlas/.
Objetivos
- Conocer la importancia de las abejas.
- Analizar la información a través del modelado de datos.
Antecedentes
Las abejas han tenido presencia en la vida del ser humano desde la apicultura primitiva que consistía en cazar enjambres silvestres las cuales colocaban en colmenas hechas de paja, barro o tronco de árbol hueco, después de matar la mayoría de las abejas para recortar los panales y colar la miel separando la cera. La apicultura se gestó entre los años 8000 y 4000 antes de Cristo, pasando de la recolección a la construcción de paneles. En México la apicultura tiene gran importancia ya que ha llegado a ser una de las principales actividades pecuarias en generación de divisas, esta actividad además de la producción de miel, polen, jalea real y propóleos es de gran importancia para el equilibrio ambiental. En el país se utilizan abejas europeas y abejas de la península de Yucatán para la comercialización de sus productos, el territorio nacional se divide en cinco regiones para su producción: la Región Norte, Región de la Costa del Pacífico, Región del Golfo, Región del Altiplano y la Región Sureste.
Información recuperada de: https://abejas.org/la-apicultura/historia-apicultura/ y https://www.gob.mx/inaes/articulos/historia-e-importancia-de-la-apicultura?idiom=es.
Importancia de la abeja en México
Las abejas meliponas son la especie nativa de México, éstas son de vital importancia debido a su función como polinizadoras de plantas de interés como el café, el chile, variedades de granos, semillas y frutos. Asimismo, la fabricación de miel es muy importante, existen más de 43 mil apicultores a nivel nacional, quienes en los últimos 10 años su trabajo ha colocado a México como el quinto lugar como exportador de miel y el noveno lugar como productor de miel. Se cuenta con un inventario de colmenas se cuenta con 2’172,107, lo que aportó a que se produjera 61 mil toneladas de este dulce producto con un valor estimado en $2,278,810 (miles de pesos). En cuanto a su exportación se considera un promedio anual de 33 mil toneladas teniendo como principales clientes a Alemania y Reino Unido de Gran Bretaña.
Datos obtenidos de la secretaría de agricultura en México: https://www.gob.mx/agricultura/articulos/la-apicultura-en-mexico?idiom=es.
setwd("~/EALMV9/U1A9")# Este es el directorio de trabajo. library(pacman) # Importación la biblioteca pacman.
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc","readr", "knitr","DT","dplyr", "ggplot2","plotly", "gganimate","gifski","scales")## Disponible para descargar el código
xfun::embed_file("U1A9.Rmd")numCol <- read.csv("ColmenasMX_14-19.csv")
numCol## ï..anio colmena
## 1 2014 198116
## 2 2015 201793
## 3 2016 185935
## 4 2017 185381
## 5 2018 217211
## 6 2019 215787
anios <- seq(from=2014,to=2019, by=1)
gcol <- ggplot(data=numCol)+
geom_line(aes(anios,colmena,color="Colmenas"))+
ggtitle("Número de colmeas en México")+
xlab("Año") +
ylab("Cantidad de comlmenas") +
labs(colour="")+
scale_y_continuous(labels = comma)+
transition_reveal(anios)
gcollibrary(readxl)
reporte <- read_excel("reporte2020.xlsx")produccion<-ggplot(data=reporte,aes(x=Total,y=Estado,color="Cantidad de producción de miel")) +
geom_bar(stat = "Identity",fill="darkgreen")+
xlab("Toneladas")+
labs(colour="")+
ggtitle("Número de producción de Miel en Mexico en 2020. Fuente SIAP")
ggplotly(produccion)library(readxl)
pecuaria2019 <- read_excel("produccion_pecuaria2019.xlsx")
estados <- pecuaria2019$Estado
avances <- pecuaria2019$Avanceggplot(pecuaria2019,aes(num,x = estados,y= avances)) +
geom_bar(stat="Identity",fill="brown",colour="black") +
xlab("Estado")+
ylab("Avance")+
ggtitle("Avance Pecuario en 2019")+
theme(axis.text.x = element_text(angle=90,hjust=1),axis.text.y =element_text(size = 6))abejas <- read_excel("ColmenaMX.xlsx")
View(abejas)relacion <- ggplot(abejas,aes(x = anio,y= temperatura, color = colmena)) +
geom_point(stat="identity",fill ="darkgreen",width = 0.7,orientation = "vertical") +
xlab("Año")+
ylab("Temperatura")+
ggtitle("Relación temperatura cantidad de colmenas de 2014 a 2019")## Warning: Ignoring unknown parameters: width, orientation
ggplotly(relacion)# Datos recuperados de: https://smn.conagua.gob.mx/es/climatologia/temperaturas-y-lluvias/resumenes-mensuales-de-temperaturas-y-lluvias.Conclusión
Con la investigación realizada, podemos ver que el área apicola es de suma importancia, desde la agricultura hasta la moda, ya que teniendo en cuenta que las abejas son la responsable de polinizar, son responsables del mas del 60% de lo que consumimos. En lo largo de los años, se ha notado un descontrol en el area apícola, por lo que puedo suponer que se ha debido a los cambios de temperatura, que en los ultimos años han sido muy cambiantes.
Segunda Parte
Importar paquetes
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.5 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
produccionEstados <- read_excel("reporte2020Numeros (1).xlsx")
produccionEstados## # A tibble: 32 x 14
## Estado Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 0 0 0 511 511 511 511 511 511
## 2 2 0 0 0 0 4 5 5 11 34
## 3 3 0 1 1 87 92 97 102 107 112
## 4 4 12 269 733 2.18 4.41 6.14 7.52 7.52 7.52
## 5 5 0 0 0 10 30 35 100 105 116
## 6 6 82 136 151 162 210 226 239 255 255
## 7 7 844 1.63 2.1 2.44 2.99 3.44 3.46 3.49 3.52
## 8 8 0 0 0 0 191 191 191 191 241
## 9 9 0 0 0 0 13 17 18 18 18
## 10 10 0 0 0 8 106 114 126 137 149
## # ... with 22 more rows, and 4 more variables: Octubre <dbl>, Noviembre <dbl>,
## # Diciembre <dbl>, Total <dbl>
tablaEstados <- read_excel("tablaEstados.xlsx")df <- scale(produccionEstados)
head(produccionEstados)## # A tibble: 6 x 14
## Estado Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 0 0 0 511 511 511 511 511 511
## 2 2 0 0 0 0 4 5 5 11 34
## 3 3 0 1 1 87 92 97 102 107 112
## 4 4 12 269 733 2.18 4.41 6.14 7.52 7.52 7.52
## 5 5 0 0 0 10 30 35 100 105 116
## 6 6 82 136 151 162 210 226 239 255 255
## # ... with 4 more variables: Octubre <dbl>, Noviembre <dbl>, Diciembre <dbl>,
## # Total <dbl>
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 = "black", mid = "yellow", high = "orange"))#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")k2 <- kmeans(df, centers = 2, nstart = 25)
k2## K-means clustering with 2 clusters of sizes 7, 25
##
## Cluster means:
## Estado Enero Febrero Marzo Abril Mayo
## 1 0.05330018 -0.11962383 0.05073058 0.4479393 1.5400838 1.6550640
## 2 -0.01492405 0.03349467 -0.01420456 -0.1254230 -0.4312235 -0.4634179
## Junio Julio Agosto Septiembre Octubre Noviembre Diciembre
## 1 1.6733319 1.6891938 1.6901193 1.683307 0.35444508 -0.1485386 -0.5488364
## 2 -0.4685329 -0.4729743 -0.4732334 -0.471326 -0.09924462 0.0415908 0.1536742
## Total
## 1 1.5272346
## 2 -0.4276257
##
## Clustering vector:
## [1] 1 2 2 2 2 2 2 2 2 2 2 1 1 2 2 1 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 1
##
## Within cluster sum of squares by cluster:
## [1] 79.11901 180.55279
## (between_SS / total_SS = 40.2 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
str(k2)## List of 9
## $ cluster : int [1:32] 1 2 2 2 2 2 2 2 2 2 ...
## $ centers : num [1:2, 1:14] 0.0533 -0.0149 -0.1196 0.0335 0.0507 ...
## ..- attr(*, "dimnames")=List of 2
## .. ..$ : chr [1:2] "1" "2"
## .. ..$ : chr [1:14] "Estado" "Enero" "Febrero" "Marzo" ...
## $ totss : num 434
## $ withinss : num [1:2] 79.1 180.6
## $ tot.withinss: num 260
## $ betweenss : num 174
## $ size : int [1:2] 7 25
## $ iter : int 1
## $ ifault : int 0
## - attr(*, "class")= chr "kmeans"
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")pruebaBolas <- fviz_cluster(k2, data = df, ellipse.type = "norm",palette = "Set2", ggtheme = theme_minimal())datatable(tablaEstados)ggplotly(pruebaBolas)reporteTemperaturas <- read_excel("temperaturasNumeros2020.xlsx")
reporteTemperaturas## # A tibble: 32 x 14
## Entidad Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 21.6 23.7 29 31.1 30.6 30.2 28.1 26.9 26 27.4 25.9
## 2 2 20.2 21 19.9 24.6 29.8 31.4 33.9 35.4 34.3 30.6 23.5
## 3 3 24.6 25.3 26.3 29 31.4 33.4 34.6 35.3 35.3 33.1 29.3
## 4 4 30.2 32.4 34.9 38.5 36.7 34.1 35 34.4 34 32.2 31
## 5 5 21.6 23.5 29.2 31.5 34.1 34.8 35.7 35.5 30.4 31.2 27.2
## 6 6 32.6 31.9 33.2 33.5 33.2 33.9 34.1 33.2 33.1 34.3 34.4
## 7 7 31.1 32.3 32.8 34.9 33.5 30.9 31.8 31.3 30.8 30.2 30
## 8 8 20 20.9 25.4 28.9 33.4 35.3 33.6 35.1 30.4 30.7 26.7
## 9 9 23 25.9 27.9 28.4 27.3 26.5 26.1 24.9 23.9 24.5 23.7
## 10 10 21.1 23.3 27.8 30.5 32.1 32.7 30.9 31.2 27.5 28.5 26.5
## # ... with 22 more rows, and 2 more variables: Dic <dbl>, Anual <dbl>
df_Temps <- scale(reporteTemperaturas)
head(df_Temps)## Entidad Ene Feb Mar Abr May
## [1,] -1.652306 -1.0289386 -0.9620715 -0.3345295 -0.3757699 -0.6346787
## [2,] -1.545705 -1.4000856 -1.7317287 -3.1020013 -2.3545076 -0.9095988
## [3,] -1.439105 -0.2336237 -0.5059783 -1.1556475 -1.0150544 -0.3597587
## [4,] -1.332504 1.2509640 1.5179350 1.4597653 1.8769469 1.4615868
## [5,] -1.225904 -1.0289386 -1.0190832 -0.2737060 -0.2540014 0.5680965
## [6,] -1.119304 1.8872159 1.3754059 0.9427651 0.3548409 0.2588115
## Jun Jul Ago Sep Oct Nov
## [1,] -0.5246291 -0.9755552 -1.0170094 -0.97892650 -0.7922686 -0.6986555
## [2,] -0.1668004 0.5498285 0.9702503 1.03347968 0.1577116 -1.4247279
## [3,] 0.4295809 0.7339266 0.9468708 1.27593825 0.8998836 0.3299469
## [4,] 0.6383143 0.8391254 0.7364551 0.96074210 0.6327016 0.8442482
## [5,] 0.8470478 1.0232235 0.9936299 0.08789123 0.3358328 -0.3053664
## [6,] 0.5786762 0.6024280 0.4559008 0.74252939 1.2561261 1.8728506
## Dic Anual
## [1,] -0.7282027 -0.91798080
## [2,] -1.4789271 -0.88354307
## [3,] -0.0675652 0.18402663
## [4,] 1.1335939 1.32047180
## [5,] -0.9984635 0.01183797
## [6,] 2.0945212 1.25159633
m.distancia <- get_dist(df_Temps, 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 = "white", high = "red"))#Elbow, silhouette o gap_stat method
fviz_nbclust(df_Temps, kmeans, method = "wss")fviz_nbclust(df_Temps, kmeans, method = "silhouette")fviz_nbclust(df_Temps, kmeans, method = "gap_stat")#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_Temps, distance = "euclidean", min.nc=2, max.nc=10, 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:
## * 9 proposed 2 as the best number of clusters
## * 10 proposed 3 as the best number of clusters
## * 1 proposed 6 as the best number of clusters
## * 1 proposed 8 as the best number of clusters
## * 1 proposed 9 as the best number of clusters
## * 5 proposed 10 as the best number of clusters
##
## ***** Conclusion *****
##
## * According to the majority rule, the best number of clusters is 3
##
##
## *******************************************************************
fviz_nbclust(resnumclust)## Among all indices:
## ===================
## * 2 proposed 0 as the best number of clusters
## * 1 proposed 1 as the best number of clusters
## * 9 proposed 2 as the best number of clusters
## * 10 proposed 3 as the best number of clusters
## * 1 proposed 6 as the best number of clusters
## * 1 proposed 8 as the best number of clusters
## * 1 proposed 9 as the best number of clusters
## * 5 proposed 10 as the best number of clusters
##
## Conclusion
## =========================
## * According to the majority rule, the best number of clusters is 3 .
k2 <- kmeans(df_Temps, centers = 2, nstart = 25)
k2## K-means clustering with 2 clusters of sizes 19, 13
##
## Cluster means:
## Entidad Ene Feb Mar Abr May Jun
## 1 0.06452127 0.6007592 0.5427359 0.5073965 0.5358914 0.6078876 0.5363017
## 2 -0.09430032 -0.8780327 -0.7932293 -0.7415795 -0.7832260 -0.8884511 -0.7838256
## Jul Ago Sep Oct Nov Dic Anual
## 1 0.5456759 0.5088123 0.5549430 0.5998898 0.6563610 0.5930723 0.684280
## 2 -0.7975264 -0.7436488 -0.8110706 -0.8767621 -0.9592969 -0.8667980 -1.000102
##
## Clustering vector:
## [1] 2 2 1 1 1 1 1 2 2 2 2 1 2 1 2 1 1 1 1 1 2 2 1 1 1 1 1 1 2 2 1 2
##
## Within cluster sum of squares by cluster:
## [1] 128.9845 102.1923
## (between_SS / total_SS = 46.7 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
str(k2)## List of 9
## $ cluster : int [1:32] 2 2 1 1 1 1 1 2 2 2 ...
## $ centers : num [1:2, 1:14] 0.0645 -0.0943 0.6008 -0.878 0.5427 ...
## ..- attr(*, "dimnames")=List of 2
## .. ..$ : chr [1:2] "1" "2"
## .. ..$ : chr [1:14] "Entidad" "Ene" "Feb" "Mar" ...
## $ totss : num 434
## $ withinss : num [1:2] 129 102
## $ tot.withinss: num 231
## $ betweenss : num 203
## $ size : int [1:2] 19 13
## $ iter : int 1
## $ ifault : int 0
## - attr(*, "class")= chr "kmeans"
#plotear los cluster
fviz_cluster(k2, data = df_Temps)fviz_cluster(k2, data = df_Temps, ellipse.type = "euclid",repel = TRUE,star.plot = TRUE) #ellipse.type= "t", "norm", "euclid"fviz_cluster(k2, data = df_Temps, ellipse.type = "norm")pruebaBolas2 <- fviz_cluster(k2, data = df_Temps, ellipse.type = "norm",palette = "Set2", ggtheme = theme_minimal())ggplotly(pruebaBolas2)library(readxl)
reporteTempCol <- read_excel("tempColmenasEstados2020.xlsx")relTempCol<-ggplot(data=reporteTempCol,aes(x=Anual,y=Entidad,color="Temperatura en los Estados más productivos")) +
geom_bar(stat = "Identity",fill="darkgreen")+
xlab("Temperatura Max")+
labs(colour="")+
ggtitle("Temperatura. Fuente CONAGUA")
ggplotly(relTempCol)library(readxl)
reporteTemperaturas <- read_excel("temperaturas2020.xlsx")
numCol <- read.csv("ColmenasMX_14-19.csv")relTemperaturas<-ggplot(data=reporteTemperaturas,aes(x=Anual,y=Entidad,color="Temperaturas en el país")) +
geom_bar(stat = "Identity",fill="darkgreen")+
xlab("Temperatura Max")+
labs(colour="")+
ggtitle("Temperatura. CONAGUA")
ggplotly(relTemperaturas)¿Qué relación tiene la temperatura con la producción de miel en México?
La mayor parte de la apicultura de México está en las regiones templadas, las cuales suelen tener una temperatura promedio de 14°C y una mínima promedio que superan los 6°C. Los estados que cumplen estos requisitos son los estados de Aguascalientes, Guanajuato, San Luis Potosí, Zacatecas, etc.Cuando la temperatura es muy alta, las abajas se mueren, no soportan las altas temperatura, y podemos suponer que en los diferentes estados en las cuales la producción es grande, es debido a que tienen las condiciones apropiadas en todo el año, para que las colonias de abejas puedan producir una cantidad de miel bastante grande.
Conclusión
Con la investigación realizada, podemos ver que el área apicola es de suma importancia, desde la agricultura hasta la moda, ya que teniendo en cuenta que las abejas son la responsable de polinizar, son responsables del mas del 60% de lo que consumimos. En lo largo de los años, se ha notado un descontrol en el area apícola, por lo que puedo suponer que se ha debido a los cambios de temperatura, y que en las diferentes regiones de nuestro pais donde algunos climas son muy extremos, pues no sobreviven mucho tiempo.
Referencias
- INAES. (2018). Historia e importancia de la Apicultura. Gobierno de México. Recuperado de: https://www.gob.mx/inaes/articulos/historia-e-importancia-de-la-apicultura?idiom=es
- Fundación Amigos de las Abejas. (2014). Apicultura antigua. Fundación Amigos de las Abejas. Recuperado de: https://abejas.org/la-apicultura/historia-apicultura/
- Eubanks, W. (2017). Why are the bees disappearing?. Green Growwing. Recuperado de: https://www.greenandgrowing.org/why-are-the-bees-disappearing/
- Olivares, V. (2018). Rescata a las abejas y salva tu vida. CC News. Recuperado de: https://news.culturacolectiva.com/mexico/por-que-las-abejas-son-tan-importantes-y-como-rescatarlas/
- Secretaría de Agricultura y Desarrollo Rural (2020) La apicultura en México. Gob. Recuperado de: https://www.gob.mx/agricultura/articulos/la-apicultura-en-mexico?idiom=es