¿Qué tan importante son las abejas en el mundo? ¿Cómo nos perjudicaría su extinción?
Introducción
Las abejas podrían ser el animal más importante para el tipo de vida de este planeta, por esta razón, a continuación, de lo que hablaremos en este documento es sobre las abejas y su importancia en la vida del planeta completo. Sin embargo, no solo hablaremos de eso, también, hablaremos acerca de como éstas han estado desapareciendo en los ultimos años y cuales son los factores detras de su desaparición. Para dicho análisis se utilizarán distintas herramientas de estadística para poder obtener conclusiones más acertadas.
Las abejas son los insectos polinizadores por excelencia y tienen una función esencial para el equilibrio de la naturaleza, ya que contribuyen activamente a la supervivencia de muchas especies de plantas que se reproducen gracias al transporte de polen que llevan a cabo estos pequeños animales al alimentarse del néctar de las flores. Muchas de estas plantas las usamos los seres humanos para producir algunos de nuestros alimentos. Viven una media de cinco años y no miden más de 1,5 centímetros.(National Geographic, 2021).
Marco teórico
- ¿Por qué es un problema la extinción de las abejas para los humanos?
Las abejas no solo significan miel para los humanos, esta especie podría ser el animal más importante dentro del planeta. Las abejas juegan un papel muy importante dentro de nuestro sistema agrícola y por lo tanto, en nuestra alimentación. Dentro de los 100 principales cultivos alimentarios que se cultivan alrededor del mundo, 70 son los que dependen de estos polinizadores, lo que representa aproximadamente el 90% de la alimentación en el mundo. De esta especie dependen alimentos tan cotidianos como las manzanas, las almendras, las naranjas o los aguacates. Si bien, existen cultivos como el arroz, maíz o los cereales que estarían a salvo de la disminución de las abejas, a nadie le gustaría vivir en un mundo donde se deba de pagar grandes cantidades de dinero por frutas y verduras.
Sin embargo, la importancia de las abejas no gira solamente alrededor de nuestra alimentación, sino que, esta especie tiene mucho valor para nuestra economía, ya que, un estudio revela que las abejas colaboran con alrededor de 3250 dólares a la producción de cultivos por hectárea por año. Por lo que, considerando las hectáreas cultivadas actualmente (1,400 millones en todo el mundo), estos pequeños animales colaboran con 4.2 billones de dólares a la economía global.
Esta especie no sólo es importante para los humanos, sino que también para el funcionamiento de los ecosistemas. Ya que, al ser las abejas las responsables de que las plantas se reproduzcan a través de la polinización, estas mismas plantas son las que contribuyen al sistema alimentario de los animales, por lo que, si la fuente de alimento de estos animales se perdiera, toda la cadena alimentaria sufriría las consecuencias.
- ¿Por qué las abejas se están extinguiendo?
Las abejas han visto una gran disminución en la población en los últimos años, y la actividad humana es la principal causa. Existen una gran variedad de amenazas para las abejas, como por ejemplo, la pérdida o el daño de hábitat y el cambio climático, pero la principal amenaza son los pesticidas. Los neonicotinoides son algunos de los pesticidas que provocan más daño a las abejas, ya que atacan el sistema nervioso del insecto, lo que provoca la muerte instantánea en algunas ocasiones, o bien, si estas sobreviven, pueden desorientarse y olvidar como regresar a la colmena, lo que provoca el Desorden de colapso colonial.
Aparte del uso de pesticidas, existen otras causas. Por ejemplo, el estrés de las abejas durante las prácticas de manejo, el forraje inadecuado debido a los cambios en el hábitat y la disminución natural de la población durante los meses con más frío.
- ¿En qué afectan factores como la deforestación, las lluvias y la temperatura a las abejas?
En el siguiente análisis se ven involucrados factores como la deforestación, lluvias y la temperatura, por lo que es importante conocer cómo es que estos afectan a las abejas. Primeramente, la deforestación es uno de los principales degradantes de las abejas, ya que, al no tener árboles que polinizar, ya no habrá semillas, y provocará el colapso de la vida tal y como la conocemos. La lluvia es uno de los factores que menos afectan a las abejas, muy pocas mueren a causa de la lluvia. Sin embargo, esta disminuye, debido a que las abejas no pueden regular su temperatura, por lo que permanecen en ambientes cálidos. Durante este tiempo, se detiene la cría de larvas. Es por ello, que su población disminuye. Finalmente, las altas temperaturas afectan la disponibilidad de alimentos y el desarrollo de las abejas.
Objetivos.
Analisis con regresión lineal múltiple para identificar las razones de la extinción de las abejas y sus consecuencias en el mundo.
Utilizar un método de clasificación (kmeans) capaz de categorizar la relación entre la producción de miel y el número de colmenas.
Identificar los factores principales que afectan las colmenas y predecir el número de colmenas utilizando datos de esos factores.
Métodos.
- Regresión lineal múltiple: Un modelo de regresión lineal múltiple es un modelo estadístico versátil para evaluar las relaciones entre un destino continuo y los predictores.
- K-means: K-medias es un método de agrupamiento, que tiene como objetivo la partición de un conjunto de n observaciones en k grupos en el que cada observación pertenece al grupo cuyo valor medio es más cercano.
- KNN: K-Nearest-Neighbor es un algoritmo basado en instancia de tipo supervisado de Machine Learning. Puede usarse para clasificar nuevas muestras (valores discretos) o para predecir (regresión, valores continuos).
Resultados y discusiones.
Paquetes
library(pacman)
## Warning: package 'pacman' was built under R version 4.1.2
p_load("datasets","DT","fdth","prettydoc","xfun","ggplot2","cluster","TSstudio","tseries","tidyr", "dplyr")
p_load("class","caret","tidyr","mlbench","e1071","ggplot2","knitr","dplyr","readr", "prettydoc","xfun")
p_load("prettydoc", "DT", "xfun", "dplyr", "psych", "GGally", "ggplot2","readr", "gridExtra","leaflet","TSstudio", "dplyr", "corrplot","lmtest","car","plotly", "gganimate","gifski","scales","tseries", "latticeExtra","forecast")
Creación de data frame para mejor organización de los datos
library(readr)
Datos <- read_csv("Datos.csv")
## Rows: 29 Columns: 9
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## dbl (8): Año, Colmenas, Plaguicidas, Población, ProduccionAgricola, Lluvias,...
##
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
Colmenas <- t(Datos$Colmenas)
Colmenas <- as.vector(Colmenas)
Colmenas <- Colmenas[1:29]
Colmenas <- as.numeric(Colmenas)
Colmenas <- as.vector(Colmenas)
temperatura <- t(Datos$TempMedia)
temperatura <- as.vector(temperatura)
temperatura <- temperatura[1:29]
temperatura <- as.numeric(temperatura)
temperatura <- as.vector(temperatura)
lluvias <- t(Datos$Lluvias)
lluvias <- as.vector(lluvias)
lluvias <- lluvias[1:29]
lluvias <- as.numeric(lluvias)
lluvias <- as.vector(lluvias)
plaguicidas <- t(Datos$Plaguicidas)
plaguicidas <- as.vector(plaguicidas)
plaguicidas <- plaguicidas[1:29]
plaguicidas <- as.numeric(plaguicidas)
plaguicidas <- as.vector(plaguicidas)
poblacion <- t(Datos$Población)
poblacion <- as.vector(poblacion)
poblacion <- poblacion[1:29]
poblacion <- as.numeric(poblacion)
poblacion <- as.vector(poblacion)
produccion <- t(Datos$ProduccionAgricola)
produccion <- as.vector(produccion)
produccion <- produccion[1:29]
produccion <- as.numeric(produccion)
produccion <- as.vector(produccion)
CO2 <- t(Datos$CO2)
CO2 <- as.vector(CO2)
CO2 <- CO2[1:29]
CO2 <- as.numeric(CO2)
CO2 <- as.vector(CO2)
Colmenas1 <- t(Datos$Colmenas)
Colmenas1 <- as.vector(Colmenas1)
Colmenas1 <- Colmenas1[16:1]
Colmenas1 <- as.numeric(Colmenas1)
Colmenas1 <- as.vector(Colmenas1)
Miel <- t(Datos$Miel)
Miel <- as.vector(Miel)
Miel <- Miel[16:1]
Miel <- as.numeric(Miel)
Miel <- as.vector(Miel)
Fecha = seq(from=as.Date("2003-01-1"),to =as.Date("2018-12-31"),by ='year')
datos1 <- data.frame(Colmenas, temperatura, lluvias, plaguicidas, poblacion, produccion,CO2)
datos2 <- data.frame(Colmenas1,Miel,Fecha)
datatable(datos1)
datatable(datos2)
Analisis de correlación.
cor(datos1)
## Colmenas temperatura lluvias plaguicidas poblacion
## Colmenas 1.00000000 -0.109480623 0.223334524 -0.083505411 -0.31317057
## temperatura -0.10948062 1.000000000 -0.002990269 0.747934185 0.86353832
## lluvias 0.22333452 -0.002990269 1.000000000 0.009934823 -0.01577056
## plaguicidas -0.08350541 0.747934185 0.009934823 1.000000000 0.78164234
## poblacion -0.31317057 0.863538323 -0.015770558 0.781642341 1.00000000
## produccion -0.19160556 0.881680757 0.006194796 0.791203255 0.97208634
## CO2 -0.17874917 0.089190832 0.002142753 0.257353849 0.15901558
## produccion CO2
## Colmenas -0.191605559 -0.178749168
## temperatura 0.881680757 0.089190832
## lluvias 0.006194796 0.002142753
## plaguicidas 0.791203255 0.257353849
## poblacion 0.972086343 0.159015583
## produccion 1.000000000 0.157475640
## CO2 0.157475640 1.000000000
pairs(datos1, col=7, main = "Correlación")
La grafica anterior representa la correlación del numero de colmenas con varios factores, entre los cuales destacan las lluvias debido a que tienen el índice de correlación positivo más alto y son el único factor cuya correlación es positiva, y a su vez la población es el factor con el índice de correlación negativa más alto.
Analisis Exploratorio de Datos.
Medidas de tendencia central del conjunto de datos.
summary(datos1)
## Colmenas temperatura lluvias plaguicidas
## Min. :1715948 Min. :20.5 Min. :664.4 Min. :11536
## 1st Qu.:1783854 1st Qu.:20.8 1st Qu.:766.8 1st Qu.:26625
## Median :1862372 Median :21.0 Median :777.0 Median :26625
## Mean :1914279 Mean :21.3 Mean :776.5 Mean :35742
## 3rd Qu.:2017931 3rd Qu.:21.9 3rd Qu.:781.0 3rd Qu.:49214
## Max. :2293733 Max. :22.6 Max. :877.9 Max. :53220
## poblacion produccion CO2
## Min. : 84170000 Min. : 25816639 Min. : 5085
## 1st Qu.: 94721000 1st Qu.: 75650388 1st Qu.: 346397
## Median :104272000 Median :111566412 Median : 421982
## Mean :104806724 Mean :144177090 Mean : 540764
## 3rd Qu.:115367000 3rd Qu.:202472209 3rd Qu.: 482753
## Max. :125328000 Max. :348822526 Max. :4738907
Gráfico de caja y bigote.
par(mfrow = c(1,3))
boxplot(datos1$lluvias, main = "Lluvias")
boxplot(datos1$poblacion, main = "Población")
boxplot(datos1$Colmenas, main = "Colmenas")
par(mfrow = c(1,1))
De acuerdo con la gráfica, los datos de lluvias se encuentran concentrados cerca de la media, con algunos puntos más alejados a los bordes. En cambio, los datos de población representan un comportamiento mas normal y se encuentran un poco mas distribuidos, aunque dicha distribución parece ligeramente uniforme. Finalmente, los datos de colmena se centran mas por encima de la media, pero sin tener un comportamiento demasiado anormal.
Tabla de frecuencia, histogramas y polígonos.
Tabla de frecuencia.
- Lluvias.
tablalluvias <- fdt(datos1$lluvias, breaks = "Sturges")
tablalluvias
## Class limits f rf rf(%) cf cf(%)
## [657.756,695.91) 2 0.07 6.90 2 6.90
## [695.91,734.064) 1 0.03 3.45 3 10.34
## [734.064,772.217) 6 0.21 20.69 9 31.03
## [772.217,810.371) 17 0.59 58.62 26 89.66
## [810.371,848.525) 0 0.00 0.00 26 89.66
## [848.525,886.679) 3 0.10 10.34 29 100.00
- Población.
tablaPoblacion <- fdt(datos1$poblacion, breaks = "Sturges")
tablaPoblacion
## Class limits f rf rf(%) cf cf(%)
## [83328300,90537130) 5 0.17 17.24 5 17.24
## [90537130,97745960) 5 0.17 17.24 10 34.48
## [97745960,104954790) 5 0.17 17.24 15 51.72
## [104954790,112163620) 5 0.17 17.24 20 68.97
## [112163620,119372450) 4 0.14 13.79 24 82.76
## [119372450,126581280) 5 0.17 17.24 29 100.00
- Colmenas.
tablaColmenas <- fdt(datos1$Colmenas, breaks = "Sturges")
tablaColmenas
## Class limits f rf rf(%) cf cf(%)
## [1698788.52,1801768.822) 10 0.34 34.48 10 34.48
## [1801768.822,1904749.123) 7 0.24 24.14 17 58.62
## [1904749.123,2007729.425) 4 0.14 13.79 21 72.41
## [2007729.425,2110709.727) 4 0.14 13.79 25 86.21
## [2110709.727,2213690.028) 2 0.07 6.90 27 93.10
## [2213690.028,2316670.33) 2 0.07 6.90 29 100.00
Histogramas.
- Frecuencia absoluta.
par(mfrow = c(1,3))
plot(tablalluvias, type = "fh", main = "Lluvias")
plot(tablaPoblacion, type = "fh", main = "Población")
plot(tablaColmenas, type = "fh", main = "Colmenas")
par(mfrow = c(1,1))
La grafica nos muestra claramente que los datos de lluvias se concentran al centro, tal como observamos en las graficas de caja y bigote. De igual manera población muestra una distribución casi completamente uniforme de los datos, y finalmente la distribución de las colmenas se encuentra sesgada a la izquierda, donde muestra el valor mas alto y comienza a reducirse hacia la derecha.
- Histograma de frecuencia relativa.
par(mfrow = c(1,3))
plot(tablalluvias, type = "rfh", main = "Lluvias")
plot(tablaPoblacion, type = "rfh", main = "Población")
plot(tablaColmenas, type = "rfh", main = "Colmenas")
par(mfrow = c(1,1))
Esta grafica es basicamente igual a la anterior.
- Histograma de frecuencia acumulada.
par(mfrow = c(1,3))
plot(tablalluvias, type = "cfh", main = "Lluvias")
plot(tablaPoblacion, type = "cfh", main = "Población")
plot(tablaColmenas, type = "cfh", main = "Colmenas")
par(mfrow = c(1,1))
En esta gráfica nos encontramos con todas las distribuciones sesgadas en incremento hacia la derecha, y esto se debe a que representa la acumulación de datos. Esto nos permite ver la diferencia en la cantidad de aumento entre periodos. Observamos que lluvias tiene su aumento mas significativo en el centro, población parece aumentar una cantidad similar cada vez, y en colmenas el aumento se reduce al pasar la primera mitad de la gráfica.
Poligonos.
- Polígono de frecuencia absoluta.
par(mfrow = c(1,3))
plot(tablalluvias, type = "fp", main = "Lluvias")
plot(tablaPoblacion, type = "fp", main = "Población")
plot(tablaColmenas, type = "fp", main = "Colmenas")
par(mfrow = c(1,1))
Estas gráfica son muestran lo mismo que los histogramas pero uniendo los puntos medios de cada intervalo formando una linea.
- Polígono de frecuencia relativa.
par(mfrow = c(1,3))
plot(tablalluvias, type = "rfp", main = "Lluvias")
plot(tablaPoblacion, type = "rfp", main = "Población")
plot(tablaColmenas, type = "rfp", main = "Colmenas")
par(mfrow = c(1,1))
- Polígono de frecuencia acumulada.
par(mfrow = c(1,3))
plot(tablalluvias, type = "cfp", main = "Lluvias")
plot(tablaPoblacion, type = "cfp", main = "Población")
plot(tablaColmenas, type = "cfp", main = "Colmenas")
par(mfrow = c(1,1))
Igualmente estas graficas son iguales a los histogramas de grecuencia acumulada, pero simplemente con una linea trazada.
Regresión lineal múltiple.
Primer modelo
Aqui probamos realizar un modelo relacionando las colmenas con todos las variables que tienen mayor correlacion con ella.
modelo2 <- lm(Colmenas ~ temperatura + lluvias + plaguicidas + poblacion + produccion)
step(object = modelo2, direction="both", trace = 1)
## Start: AIC=693.4
## Colmenas ~ temperatura + lluvias + plaguicidas + poblacion +
## produccion
##
## Df Sum of Sq RSS AIC
## - plaguicidas 1 1.3324e+10 4.7762e+11 692.22
## - temperatura 1 1.4255e+10 4.7855e+11 692.28
## - lluvias 1 2.3679e+10 4.8797e+11 692.84
## <none> 4.6430e+11 693.40
## - produccion 1 9.6710e+10 5.6100e+11 696.89
## - poblacion 1 2.2614e+11 6.9044e+11 702.91
##
## Step: AIC=692.22
## Colmenas ~ temperatura + lluvias + poblacion + produccion
##
## Df Sum of Sq RSS AIC
## - temperatura 1 1.9923e+10 4.9754e+11 691.40
## - lluvias 1 2.4364e+10 5.0198e+11 691.66
## <none> 4.7762e+11 692.22
## + plaguicidas 1 1.3324e+10 4.6430e+11 693.40
## - produccion 1 1.0945e+11 5.8707e+11 696.20
## - poblacion 1 2.1886e+11 6.9648e+11 701.16
##
## Step: AIC=691.4
## Colmenas ~ lluvias + poblacion + produccion
##
## Df Sum of Sq RSS AIC
## - lluvias 1 2.3817e+10 5.2136e+11 690.76
## <none> 4.9754e+11 691.40
## + temperatura 1 1.9923e+10 4.7762e+11 692.22
## + plaguicidas 1 1.8992e+10 4.7855e+11 692.28
## - produccion 1 1.6648e+11 6.6402e+11 697.77
## - poblacion 1 2.1208e+11 7.0962e+11 699.70
##
## Step: AIC=690.76
## Colmenas ~ poblacion + produccion
##
## Df Sum of Sq RSS AIC
## <none> 5.2136e+11 690.76
## + lluvias 1 2.3817e+10 4.9754e+11 691.40
## + plaguicidas 1 1.9694e+10 5.0166e+11 691.64
## + temperatura 1 1.9376e+10 5.0198e+11 691.66
## - produccion 1 1.7975e+11 7.0111e+11 697.35
## - poblacion 1 2.2745e+11 7.4881e+11 699.26
##
## Call:
## lm(formula = Colmenas ~ poblacion + produccion)
##
## Coefficients:
## (Intercept) poblacion produccion
## 4.599e+06 -3.061e-02 3.637e-03
Despues nos dice que el mejos modelo a utilizar es con las cariables de población y producción, ese es el modelo que probamos a continuación
Mejor modelo de regresión lineal múltiple
mejorModelo <- lm(formula = Colmenas ~ poblacion + produccion)
step(object = mejorModelo, direction="both", trace = 1)
## Start: AIC=690.76
## Colmenas ~ poblacion + produccion
##
## Df Sum of Sq RSS AIC
## <none> 5.2136e+11 690.76
## - produccion 1 1.7975e+11 7.0111e+11 697.35
## - poblacion 1 2.2745e+11 7.4881e+11 699.26
##
## Call:
## lm(formula = Colmenas ~ poblacion + produccion)
##
## Coefficients:
## (Intercept) poblacion produccion
## 4.599e+06 -3.061e-02 3.637e-03
- Intervalo de confianza
confint(lm(formula = Colmenas ~ poblacion + produccion))
## 2.5 % 97.5 %
## (Intercept) 2.987066e+06 6.210030e+06
## poblacion -4.929943e-02 -1.192973e-02
## produccion 1.139972e-03 6.133658e-03
plot1 <- ggplot(data = datos1, aes(poblacion, mejorModelo$residuals)) +
geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
theme_bw()
plot2 <- ggplot(data = datos1, aes(produccion, mejorModelo$residuals)) +
geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
theme_bw()
grid.arrange(plot1, plot2)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Estas gráficas permiten validar mediante diagramas de dispersión entre la variable dependiente y cada uno de los predictores o con diagramas de dispersión entre cada uno de los predictores y los residuos del modelo. En estas gráficas se puede observar que el número de colmenas no tiene una relación completamente lineal con la población, esto es debido a que no necesariamente habrá menos colmenas si hay más gente, igual sucede con la producción de miel, que si bien, tiene más relación con el número de colmenas, no es una relación 100% dependiente, ya que existen diversos factores más que ponen en riesgo la producción, por ejemplo: las lluvias, el aumento de temperaturas, el uso de plaguicidas en la cosechas, etc.
- Distribución de los datos
qqnorm(mejorModelo$residuals)
qqline(mejorModelo$residuals)
Ahora bien, observando esta gráfica se puede observar que los residuos del modelo 3 y el modelo 3 provienen de la misma distribución. Bajo esta premisa se puede inferir en que los datos son normales porque se encuentran cercanos a la media, sin embargo, existen algunos que están más separados de lo normal.
- Prueba shapiro para verificar que los datos sean normales
shapiro.test(mejorModelo$residuals)
##
## Shapiro-Wilk normality test
##
## data: mejorModelo$residuals
## W = 0.95905, p-value = 0.3115
Con este test de shapiro se puede observar que los datos son normales puesto que se supera el 0.05 y esto nos permite continuar con la hipotesis.
- Probando el modelo de regresión lineal multiple
bptest(mejorModelo)
##
## studentized Breusch-Pagan test
##
## data: mejorModelo
## BP = 1.3448, df = 2, p-value = 0.5105
- Identificando valores atípicos
datos1$studentized_residual <- rstudent(mejorModelo)
ggplot(data = datos1, aes(x = predict(mejorModelo), y = abs(studentized_residual))) +
geom_hline(yintercept = 3, color = "grey", linetype = "dashed") +
geom_point(aes(color = ifelse(abs(studentized_residual) > 3, 'red', 'black'))) +
scale_color_identity() +
labs(title = "Distribución de los residuos studentized",
x = "predicción modelo") +
theme_bw() + theme(plot.title = element_text(hjust = 0.5))
Por útlimo en esta tabla se muestra la distribución de los datos utilizando la predicción del modelo, y si bien, los datos se encuentrar dispersos entre sí, se puede observar que ninguno de estos esá demasiado separado para considerarse atípico. Este análisis nos ayuda a entender que no solo la producción y la población son influyentes en el número de colmenas.
Series de tiempo.
Lluvias y cantidad de colmenas.
serie <- ts(datos1[ ,c(3,1)],start = c(1990,1),end = c(2018,1),frequency = 1)
ts_plot(serie, title = "Lluvias y población de abejas",
Ytitle = "",
Xtitle = "Fecha",
slider = TRUE)
Esta serie de tiempo nos muestra la relación de las lluvias y colmenas a travez de los años. Podemos observar que no hay muchos cambios en la variable de lluvias, sin embargo, con las colmenas podemos ver que si hay cambios notorios como por ejemplo en los años 2011-2014, con esto pordríamos decir que estas variables no tienen una gran correlación. Las lluvias influyen un poco, pues podemos ver que aumentan en 2015 al igual que las colmenas, pero no hay demás coincidencias, concluyendo que para los cambios en las colmenas influyen más otros factores.
colMiel.ts <- ts(datos2[,c(1,2)],start=c(2003,1), frequency = 1)
ts_plot(colMiel.ts, title = "Colmenas y producción de miel",
Ytitle = "",
Xtitle = "Fecha",
slider = TRUE)
Podemos observar en esta gráfica una correlacion entre las colmenas y la miel, ya que el aumento de las colmenas corresponde perfectamente con el aumento de la miel, teniendo los picos más altos en 2015 y 2018.
K-means.
Cluster
set.seed(101)
colmenasCluster <- kmeans(datos2[,1:2], center=3, nstart=20)
colmenasCluster
## K-means clustering with 3 clusters of sizes 7, 3, 6
##
## Cluster means:
## Colmenas1 Miel
## 1 1752105 55969.00
## 2 2057067 62504.33
## 3 1872383 55843.67
##
## Clustering vector:
## [1] 1 1 1 1 1 1 1 3 3 3 3 2 2 3 3 2
##
## Within cluster sum of squares by cluster:
## [1] 3832288856 20547461865 6433327609
## (between_SS / total_SS = 86.6 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Comparar los resultados de clasificación de los clusters
table(colmenasCluster$cluster, datos2$Colmenas1)
##
## 1727234 1732112 1741040 1745078 1747033 1774757 1797478 1842130 1847667
## 1 1 1 1 1 1 1 1 0 0
## 2 0 0 0 0 0 0 0 0 0
## 3 0 0 0 0 0 0 0 1 1
##
## 1853807 1859350 1898239 1933105 1981162 2017931 2172107
## 1 0 0 0 0 0 0 0
## 2 0 0 0 0 1 1 1
## 3 1 1 1 1 0 0 0
Grafica de los clusters
clusplot(datos2, colmenasCluster$cluster, color=T, shade=T, lines=0)
> Podemos ver como los datos se clasifican bien en 3 clusters, lo que indica que hay tres grupos de datos que tienen valores de colmenas y miel parecidos, pudiendo significar tres niveles de productividad de las colmenas, dividiendose por ejemplo en: regular, buena y excelente.
tot.withinss <- vector(mode="character", length=10)
for (i in 1:10){
colmenasCluster <- kmeans(datos2[,1:2], center=i, nstart=1 )
tot.withinss[i] <- colmenasCluster$tot.withinss
}
Gráfico CODO
plot(1:10, tot.withinss, type="b", pch=19)
> La gráfica muestra un un cambio de creimiento a partir del tres, es decir tiene un codo de 3, lo que nos dice que el número ideal de clusters para este modelo es de 3.
Vecino más cercano (KKN).
euclidean_distance = function(a, b){
# Comprobamos que tienen la misma cantidad de observaciones
if(length(a) == length(b)){
sqrt(sum((a-b)^2))
} else{
stop('Vectors must be of the same length')
}
}
euclidean_distance(1:10, 11:20)
## [1] 31.62278
Construir el modelo KNN.
modelo <- knn(train = datos1[,2:5], test = datos1[,2:5], k = 2, cl = datos1[,1] )
modelo
## [1] 1853807 2172107 1859350 2017931 2017931 1981162 1933105 1898239 1842130
## [10] 1774757 1797478 1741040 1747033 1745078 1745078 1727234 1862372 1875731
## [19] 1944573 1944573 1944573 1791111 1919938 1919938 2053761 2293733 2293733
## [28] 2107618 2088315
## 29 Levels: 1715948 1727234 1732112 1741040 1745078 1747033 1774757 ... 2293733
Resumen del modelo.
summary(modelo)
## 1715948 1727234 1732112 1741040 1745078 1747033 1774757 1783854 1791111 1797478
## 0 1 0 1 2 1 1 0 1 1
## 1842130 1847667 1853807 1859350 1862372 1875731 1898239 1919938 1933105 1944573
## 1 0 1 1 1 1 1 2 1 3
## 1981162 2017931 2053761 2088315 2107618 2114489 2172107 2292428 2293733
## 1 2 1 1 1 0 1 0 2
Evaluar modelo.
datos.r.p <- data.frame(reales = datos1$Colmenas, prediccion = modelo)
datos.r.p
## reales prediccion
## 1 2172107 1853807
## 2 1853807 2172107
## 3 1859350 1859350
## 4 2017931 2017931
## 5 1981162 2017931
## 6 1933105 1981162
## 7 1898239 1933105
## 8 1847667 1898239
## 9 1842130 1842130
## 10 1774757 1774757
## 11 1797478 1797478
## 12 1741040 1741040
## 13 1747033 1747033
## 14 1732112 1745078
## 15 1745078 1745078
## 16 1727234 1727234
## 17 1783854 1862372
## 18 1862372 1875731
## 19 1875731 1944573
## 20 1944573 1944573
## 21 1791111 1944573
## 22 1715948 1791111
## 23 1919938 1919938
## 24 2053761 1919938
## 25 2292428 2053761
## 26 2293733 2293733
## 27 2107618 2293733
## 28 2088315 2107618
## 29 2114489 2088315
Categorizar o factorizar.
datos.r.p$reales <- as.factor(datos.r.p$reales)
datos.r.p$prediccion <- as.factor(datos.r.p$prediccion)
Matriz de confusión.
matriz <- confusionMatrix(datos.r.p$reales, datos.r.p$prediccion)
matriz$overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 4.137931e-01 3.928571e-01 2.352402e-01 6.106372e-01 1.034483e-01
## AccuracyPValue McnemarPValue
## 1.428944e-05 NaN
Hacer predicciones.
temperatura <- c(22.2,22.6,22.4)
lluvias <- c(781,781,780)
plaguicidas <- c(53144, 50802, 47421)
poblacion <- c(125328000, 124042000, 122715000)
colmenas = c('?','?','?')
datos.nuevos <- data.frame(temperatura,lluvias, plaguicidas,poblacion,colmenas )
kable(datos.nuevos, caption = "Datos nuevos")
| temperatura | lluvias | plaguicidas | poblacion | colmenas |
|---|---|---|---|---|
| 22.2 | 781 | 53144 | 125328000 | ? |
| 22.6 | 781 | 50802 | 124042000 | ? |
| 22.4 | 780 | 47421 | 122715000 | ? |
- Resultados del modelo.
modelo <- knn(train = datos1[,2:5], test = datos.nuevos[,1:4], k = 2, cl = datos1[,1] )
modelo
## [1] 2172107 1853807 1859350
## 29 Levels: 1715948 1727234 1732112 1741040 1745078 1747033 1774757 ... 2293733
datos.nuevos <- mutate(datos.nuevos, prediccion = modelo)
kable(datos.nuevos, caption = "Predicción de datos nuevos")
| temperatura | lluvias | plaguicidas | poblacion | colmenas | prediccion |
|---|---|---|---|---|---|
| 22.2 | 781 | 53144 | 125328000 | ? | 2172107 |
| 22.6 | 781 | 50802 | 124042000 | ? | 1853807 |
| 22.4 | 780 | 47421 | 122715000 | ? | 1859350 |
Entonces, teniendo en cuenta el modelo KNN podemos predecir el número de colmenas que habría en México si los factores que se presentan cumplen con las caracteristicas mostradas en la tabla. Esto es solo contemplando esas dos variables que tienen más significancia en relación al número de colmenaas. Cabe mencionar que el modelo realizado para la predicción tiene una precisión entre 65 - 70 %
¿Que tanto les afecta la lluvia a las abejas?
La cantidad de precipitaciones afecta de un modo claro en el pecoreo de las abejas, ya que a mayor lluvias en los meses de otoño e inverno mayor floración y con ello mayor producción de nectar. Sin embargo, podria pensarse lógicamente que en primavera es igual, pero no, las lluvias no son tan favorables en estos meses porque para que los insectos puedan favorecerse necesitan de días claros.
Importancia de las abejas y las consecuencias que traería la extinción de estas.
Muchas especies de insectos polinizadores en el mundo como las abejas están en vías de extinción o al menos sus números están en declive, ¿es este dato alarmante para la producción de comida en México?
Las abejas son el polinizador más frecuente en cultivos a nivel mundial. La importancia de las abejas, domesticación es algo de conocimiento público desde hace mucho tiempo, por lo que es sorprendente que su importancia sea un tema poco entendido para el público en general. Clarificando las abejas como polinizador en áreas naturales y cultivos es muy importante por varias razones como que la polinización tiene un rol vital en los ecosistemas, casi el 90% de las plantas con flores son polinizadas por animales.
Las abejas cumplen una función muy importante en la existencia de vida, ya que tiene un papel fundamental en el equilibrio biológico. Las abejas gran importancia en la vida ya que son capaces de polinizar la diversidad de especímenes de plantas existentes por lo que se sigue generando una producción de semillas y frutas, siendo crucial para el sustento y mantenimiento del ecosistema e implícitamente para la supervivencia del humano; Convirtiéndose en las criaturas más importante en la vida, la extinción de la misma conllevaría a un peligro o extensión total para el resto de los seres existentes en la tierra, Ya que el dos por ciento de las abejas asisten al 80% de la polinización, lo que significa que si el mundo se sometiera a un alto porcentaje de extinción de las mismas, habría una gran crisis sobre el planeta.
Conclusiones.
Después de realizar el análisis, fue posible identificar una serie de factores que inciden en la desaparición de las abejas y otros polinizadores. Su origen se da en la vida cotidiana de las personas porque derivan de la necesidad de consumir alimentos, de reproducirse y en la vida a la que llevan la mayoría de ellos.
Factores como el uso excesivo de pesticidas, la deforestación y el crecimiento de la población son los principales contribuyentes a la desaparición de esta especie de abeja. Y no solo se perderá la calidad de vida si la colonia de abejas desaparece, sino que se perderá gran parte de la diversidad. Como dijo Albert Einstein: “El hombre tendría sólo cuatro años para vivir sin abejas, sin polinizadores, sin hierba, sin animales, sin hombre”.
Pero, ¿por qué enfatizar la importancia de las abejas? Porque realmente lo son, según la FAO, hay 100 especies de cultivos que proporcionan el 90% de los alimentos del mundo, y la mayoría son polinizados por abejas. Por tanto, la desaparición de las abejas supondrá un desequilibrio medioambiental global.
Referencias bibliográficas.
N. (2020, 15 juli). Algoritmo k-Nearest Neighbor. Aprende Machine Learning. Geraadpleegd op 14 mei 2022, van https://www.aprendemachinelearning.com/clasificar-con-k-nearest-neighbor-ejemplo-en-python/
D. (2019, 11 maart). K-Means: Agrupamiento con Minería de datos [Introducción]. ESTRATEGIAS DE TRADING. Geraadpleegd op 14 mei 2022, van https://estrategiastrading.com/k-means/
Cardenas, J. (2020, 20 octubre). Qué es la Regresión Lineal Multiple y cómo analizarla. Networkianos. Blog de Sociología. https://networkianos.com/regresion-lineal-multiple/
Calderone NW. 2012Insect pollinated crops, insect pollinators and US agriculture: trend analysis of aggregate data for the period 1992–2009. PLoS ONE 7, e37235. (doi:10.1371/journal.pone.0037235) Crossref, PubMed, ISI, Google Scholar
Ollerton J, Winfree R, Tarrant S. 2011How many flowering plants are pollinated by animals?Oikos 120, 321–326. (doi:10.1111/j.1600-0706.2010.18644.x) Crossref, ISI, Google Scholar
Descarga este código y sus datos.
xfun::embed_file("Apicultura.Rmd")
xfun::embed_file("Datos.csv")