Inicialmente, realizaremos la importación de la base de datos. Esto se realizará mediante la función “read_xlsx()”, ya que es el formato de la base de datos proporcionada.
library(readxl)
datos <- read_excel("DATA.xlsx")
head(datos)
Posteriormente realizaremos una exploración de la base de datos. Primero, conoceremos sus dimensiones:
dim(datos)
## [1] 3018 516
Podemos apreciar que se presentan un total de 516 columnas, con 3018 observaciones. Visualizando el head de la tabla, determinamos una posible primary key, la cual corresponde al ID del agricultor, por lo cual, ya que sabemos que la tabla tiene 3018 filas, determinaremos el número total de IDs, así como los IDs distintos, con la función “n_distinct()” de la librería dplyr.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
total_agricultores <- summary(datos$`ID Agricultor`)
agricultores_distintos <- n_distinct(datos$`ID Agricultor`)
total_agricultores
## Length Class Mode
## 3018 character character
agricultores_distintos
## [1] 3018
Esto inicialmente nos permite afirmar que, si el ID del Agricultor es único para cada agricultor, y no se genera uno en cada encuesta, no se ha realizado un segundo contacto con ningún agricultor. Esta información es fundamental para determinar si las condiciones de algún productor han cambiado y esto se ha monitoreado.
En esta ocasión, no realizaremos una visualización de los nombres de las columnas, debido a la amplia cantidad de las mismas. En su lugar, realizaremos los filtros adecuados en la tabla original, para cada uno de los casos correspondientes.
Previo a iniciar el análisis, intereza comprender los sectores analizados, ya que de acuerdo a esto, los indicadores aplicarían o no para ciertos productores.
conteo_sector <- datos %>%
count(SECTOR) %>%
mutate('Proporción (%)' = round(n / sum(n) * 100,2))
print(conteo_sector)
## # A tibble: 4 × 3
## SECTOR n `Proporción (%)`
## <chr> <int> <dbl>
## 1 AGRICULTURE 2858 94.7
## 2 FISH_SEAFOOD 153 5.07
## 3 None 4 0.13
## 4 <NA> 3 0.1
En la tabla anterior, podemos apreciar que casi el 95% de los productores corresponden a agricultores, por lo cual, las variables utilizadas en los indicadores si son de amplia relevancia para la gran mayorípa de los encuestados.
Ahora, antes de iniciar a trabajar con los datos, se establecerá un orden de trabajo para implementar en todos los apartados.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
tema_no_legenda <- theme(legend.position="none",panel.background = element_rect(fill = NA),panel.grid.major.y = element_line(colour = "grey90"),legend.key = element_rect(fill = "white"),axis.line = element_line(colour = "grey90"),legend.title = element_text(colour = "white"))
tema_legenda <- theme(legend.position="bottom",panel.background = element_rect(fill = NA),panel.grid.major.y = element_line(colour = "grey90"),legend.key = element_rect(fill = "white"),axis.line = element_line(colour = "grey90"),legend.title = element_text(colour = "white"))
tema_legenda_lado <- theme(legend.position="right",panel.background = element_rect(fill = NA),panel.grid.major.y = element_line(colour = "grey90"),legend.key = element_rect(fill = "white"),axis.line = element_line(colour = "grey90"),legend.title = element_text(colour = "white"))
suelo <- datos%>%
summarise(
ID_agricultor = `ID Agricultor`,
Analisis_de_suelo = FV_CONDUCT_SOIL_ANALYSIS_ON_PARCEL,
Fecha_analisis = FV_LAST_CONDUCTED_SOIL_ANALYSIS,
Resultados = FV_HAVE_RESULTS_FROM_LAST_SOIL_ANALYSIS
)
head(suelo)
conteo_1 <- suelo%>%
count(Analisis_de_suelo)
conteo_2 <- suelo%>%
count(Fecha_analisis)
conteo_3 <- suelo%>%
count(Resultados)
conteo_1
conteo_2
conteo_3
suelo_sin_na <- suelo%>%
na.omit()
head(suelo_sin_na)
suelo_final <- suelo_sin_na %>%
mutate(
Practicas_adoptadas = if_else(
Analisis_de_suelo == "YES" &
Fecha_analisis == "IN_THE_LAST_2_YEARS" &
Resultados == "YES",
"ADOPTED",
"NOT ADOPTED"
)
)%>%
arrange(Practicas_adoptadas, Analisis_de_suelo, Fecha_analisis, Resultados)
suelo_final
conteo_suelo_final <- suelo_final%>%
group_by(Practicas_adoptadas)%>%
count()
conteo_suelo_final
ggplot(data = suelo_final, mapping = aes(x=Practicas_adoptadas, fill = Practicas_adoptadas))+
geom_bar(width = 0.5)+
labs(title = "Adopción de prácticas: Análisis de suelo actualizado",
subtitle = "Relación de datos",
caption = "Fuente: Propia",
x = "Adopción de prácticas", y = "Número de productores")+
geom_text(aes(label=..count..),
stat = 'count',
position = position_dodge(0.9),
vjust = -0.5,
size = 4)+
ylim(c(0,max(conteo_suelo_final$n)+(max(conteo_suelo_final$n)/10)))+
scale_fill_manual(values = c("ADOPTED" = "green", "NOT ADOPTED" = "red"))+
tema_no_legenda
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
mantenimiento <- datos%>%
summarise(
ID_agricultor = `ID Agricultor`,
Proteccion = FV_PRODUCER_HAS_PROTECTED_CROPS,
Proteccion_adecuada = FV_PROPER_MAINTENENCE_INFRASTRUCTURE_PROTECTED_CROPS
)
head(mantenimiento)
conteo_4 <- mantenimiento%>%
count(Proteccion)
conteo_5 <- mantenimiento%>%
count(Proteccion_adecuada)
conteo_4
conteo_5
mantenimiento_sin_na <- mantenimiento%>%
na.omit()
head(mantenimiento_sin_na)
mantenimiento_final <- mantenimiento_sin_na %>%
mutate(
Practicas_adoptadas = if_else(
Proteccion == "NO",
"NOT APLICABLE",
if_else(
Proteccion_adecuada == "YES",
"ADOPTED",
if_else(
Proteccion_adecuada == "CANNOT_OBSERVE",
"UNCONFIRMED","NOT ADOPTED"
)
)
)
)%>%
arrange(Practicas_adoptadas, Proteccion, Proteccion_adecuada)
mantenimiento_final
conteo_mantenimiento_final <- mantenimiento_final%>%
group_by(Practicas_adoptadas)%>%
count()
conteo_mantenimiento_final
ggplot(data = mantenimiento_final, mapping = aes(x=Practicas_adoptadas, fill = Practicas_adoptadas))+
geom_bar(width = 0.5)+
labs(title = "Adopción de prácticas: Mantenimiento adecuado de las infraestructuras",
subtitle = "Relación de datos",
caption = "Fuente: Propia",
x = "Adopción de prácticas", y = "Número de productores")+
geom_text(aes(label=..count..),
stat = 'count',
position = position_dodge(0.9),
vjust = -0.5,
size = 4)+
ylim(c(0,max(conteo_mantenimiento_final$n)+(max(conteo_mantenimiento_final$n)/10)))+
scale_fill_manual(values = c("ADOPTED" = "green", "NOT ADOPTED" = "red"))+
tema_no_legenda
control_agroinsumos <- datos%>%
summarise(
ID_agricultor = `ID Agricultor`,
Aplicacion_medicamentos = FT_MEDICINE_APPLICATION_DETERMINATION
)
head(control_agroinsumos)
conteo_6 <- control_agroinsumos%>%
count(Aplicacion_medicamentos)
conteo_6
control_agroinsumos_sin_na <- control_agroinsumos%>%
na.omit()
control_agroinsumos_sin_na
control_agroinsumos_final <- control_agroinsumos_sin_na %>%
mutate(
Practicas_adoptadas = if_else(
grepl("OWN_EXPERIENCE|OTHER_AQUICULTURIST|ACCESO_TECHNICIAN|FOOD_DISTRIBUTORS",
Aplicacion_medicamentos),
"NOT ADOPTED",
"ADOPTED"
)
) %>%
arrange(Practicas_adoptadas, Aplicacion_medicamentos)
control_agroinsumos_final
conteo_agroinsumos_final <- control_agroinsumos_final%>%
group_by(Practicas_adoptadas)%>%
count(Practicas_adoptadas)
conteo_agroinsumos_final
ggplot(data = control_agroinsumos_final, mapping = aes(x=Practicas_adoptadas, fill = Practicas_adoptadas))+
geom_bar(width = 0.5)+
labs(title = "Adopción de prácticas: Control de medicamentos veterinarios y productos químicos",
subtitle = "Relación de datos",
caption = "Fuente: Propia",
x = "Adopción de prácticas", y = "Número de productores")+
geom_text(aes(label=..count..),
stat = 'count',
position = position_dodge(0.9),
vjust = -0.5,
size = 4)+
ylim(c(0,(max(conteo_agroinsumos_final$n))++(max(conteo_agroinsumos_final$n)/10)))+
scale_fill_manual(values = c("ADOPTED" = "green", "NOT ADOPTED" = "red")) +
tema_no_legenda
manejo <- datos%>%
summarise(
ID_agricultor = `ID Agricultor`,
Animales_domesticos = FT_DOMESTIC_ANIMALS,
Pajaros = FT_DETERS_BIRDS_WITH_STRINGS,
Trampas = FT_TRAPS,
Registros = FT_PEST_CONTOL_RECORDS
)
head(manejo)
conteo_7 <- manejo%>%
count(Animales_domesticos)
conteo_8 <- manejo%>%
count(Pajaros)
conteo_9 <- manejo%>%
count(Trampas)
conteo_10 <- manejo%>%
count(Registros)
conteo_7
conteo_8
conteo_9
conteo_10
manejo_sin_na <- manejo%>%
na.omit()
manejo_sin_na
manejo_final <- manejo_sin_na%>%
mutate(
Practicas_adoptadas = if_else(
Animales_domesticos == "NO" &
Pajaros == "YES" &
Trampas == "YES" &
Registros == "YES",
"ADOPTED",
if_else(
Animales_domesticos == "CANNOT_OBSERVE"|
Pajaros == "CANNOT_OBSERVE"|
Trampas == "CANNOT_OBSERVE",
"UNCONFIRMED",
"NOT ADOPTED"
)
)
)%>%
arrange(Practicas_adoptadas, Animales_domesticos, Pajaros, Trampas, Registros)
manejo_final
conteo_manejo_final <- manejo_final%>%
group_by(Practicas_adoptadas)%>%
count(Practicas_adoptadas)
conteo_manejo_final
ggplot(data = manejo_final, mapping = aes(x=Practicas_adoptadas, fill = Practicas_adoptadas))+
geom_bar(width = 0.5)+
labs(title = "Adopción de prácticas: Control de plagas y animales",
subtitle = "Relación de datos",
caption = "Fuente: Propia",
x = "Adopción de prácticas", y = "Número de productores")+
geom_text(aes(label=..count..),
stat = 'count',
position = position_dodge(0.9),
vjust = -0.5,
size = 4)+
ylim(c(0,max(conteo_manejo_final$n)+(max(conteo_manejo_final$n)/10)))+
scale_fill_manual(values = c("ADOPTED" = "green", "NOT ADOPTED" = "red"))+
tema_no_legenda
almacenamiento <- datos%>%
summarise(
ID_agricultor = `ID Agricultor`,
Espacio_almacenamiento = BG_SPACE_TO_STORE_GRAIN,
Forma_almacenamiento = BG_HOW_IS_THE_GRAIN_STORED
)
head(almacenamiento)
conteo_11 <- almacenamiento%>%
count(Espacio_almacenamiento)
conteo_12 <- almacenamiento%>%
count(Forma_almacenamiento)
conteo_11
conteo_12
almacenamiento_final <- almacenamiento%>%
mutate(
Practicas_adoptadas = if_else((grepl("BAGS_OR_SACKS|BARRELS|SILOS",Forma_almacenamiento) &
Espacio_almacenamiento == "YES"),
"ADOPTED",
"NOT ADOPTED"
)
)%>%
arrange(desc(Practicas_adoptadas), Espacio_almacenamiento, Forma_almacenamiento)%>%
na.omit()
almacenamiento_final
conteo_almacenamiento_final <- almacenamiento_final%>%
group_by(Practicas_adoptadas)%>%
count(Practicas_adoptadas)
conteo_almacenamiento_final
ggplot(data = almacenamiento_final, mapping = aes(x=Practicas_adoptadas, fill = Practicas_adoptadas))+
geom_bar(width = 0.5)+
labs(title = "Adopción de prácticas: Almacenamiento correcto y seguro",
subtitle = "Relación de datos",
caption = "Fuente: Propia",
x = "Adopción de prácticas", y = "Número de productores")+
geom_text(aes(label=..count..),
stat = 'count',
position = position_dodge(0.9),
vjust = -0.5,
size = 4)+
ylim(c(0,max(conteo_almacenamiento_final$n)+(max(conteo_almacenamiento_final$n)/10)))+
scale_fill_manual(values = c("ADOPTED" = "green", "NOT ADOPTED" = "red"))+
tema_no_legenda
Ahora, responderemos las preguntas propuestas al final del ejercicio.
En la base de datos, se presentan variables con respuestas fuera de las categorías de interés, como por ejemplo un valor “Ninguno” en una escala de “Si” y “No”. Igualmente, se presentaronvariables con múltiples respuestas en preguntas con más de dos opciones, así como respuestas del tipo “No; No; No”, la cual no se puede interpretar en un análisis automatizado.
En este sentido, primero se tomaron dichas respuestas, y fueron reasignadas a las categorías correspondientes en el caso en el que fuera evidente, pero en otros casos, estas entraron en el ciclo de decisión y clasificación de tal forma en que su resultado correspondería a aquellas respuestas fuera de las categorías de interés.
Por otro lado, el hecho de preguntar variables las cuales son determinadas con el uso de otras pre existentes, generó la necesidad de codificar ciertas variables, así como cambiar el formato de las mismas (como lo es el caso del año de nacimiento para determinar la edad del encuestado).
Finalmente, para el manejo de datos atípicos, como lo fue en el caso de la duración de las encuestas, se detemrinaron dihos valores teniendo en cuenta los cuartiles 1 y 3, y así restringiendo el análisis del tiempo promedio de enucesta a los valores qu se encontraban dentro de dichos cuartiles. Esto se generó debido a que se observó que existían casos de encuestas que duraban más de 20.ooo minutos, lo cual elevava significativamente el pomedio.
Como se mencionó y realizó en el análisis anterior, los datos faltantes no se contemplaron en el análisis. Esto debido a varios factores. Inicialmente, no todos los productores están obligados a cumplir ciertas condiciones, por lo cual, remplazar los datos faltantes por la mediana en variables cuantitativas y la moda en variables cuantitativas no es representativo. Además, la proporción de datos faltantes, a excepción de el último indicador, es extensa, por lo cual imposihbilita su remplazo.
Un enfoque no estadístico a esta pregunta, es el uso de encuestas prefabricadas, como lo es el caso de las encuetsas de google, en las cuales solo se proporcionen las opciones de interés en cada pregunta, evitando así la ausencia de información, sino más bien una categorización que contemple desde el inicio los casos en los que la pregunta no aplique a la condici+on actual del productor.
Principalmente, analizar los data frames generados al momento de filtrar las columnas, con el fin de determinar si en una fila, la agrupación de las respuestas a ciertas variables si correspondan con la clasificación que se ha asignado (“ADOPTED”, “NOT ADOPTED”, y demás).
A nivel inferencial, generar la correlación de variables para así poder interpretar de manera más global las condiciones de cada productor, y cómo factores como el ingreso mensual, número de familiares en el hogar, entre otras, pueden afcetar la adopción o no adopción de las recomendaciones.
Esta pregunta, de acuerdo a los indicadores analizados, se puede abordar desde tres puntos inicialmente:
En general, la práctica más adoptada es el almacenamiento seguro de los alimentos, lo cual es fundamental si se desea comercializar a nivel nacional, y de ser posible, generar exportación para incrementar el margen de utilidad.
Este almacenamiento adecuado puede evitar la contaminación de los productos, ya sea con agroquímicos, contaminantes ambientales, entre otros, y la incidencia de plagas, animales y hasta enfermedades, que puedan comprometer en su totalidad la calidad del producto final.
Sin embargo, no se está realizando un adecuado manejo de plagas y animales, por lo cual, pese a adoptar las prácticas de almacenamiento, si no se genera un adecuado manejo de estos, es probable que ingresen a la zona de almacenamiento de los productos.
En este sentido, hay que enfatizar en que las prácticas no pueden ser adoptadas excluyentemente, sino complementarias unas con otras, ya que una adecuada adopción de todas las prácticas va a permitir un manejo de las problemáticas de manera global y óptima.
Un factor influyente dentro de este manejo no adecuado puede asociarse a que el control de medicamentos y productos químicos no se está realizando de acuerdo a las recomendaciones, lo cual significa que las decisiones se están tomando bajo condiciones que no son las ideales, lo cual puede no solamente disminuir la eficacia del manejo de plagas y animales, sino que puede llegar a perjudicar las condiciones de salud de los productores y sus familias, generar deterioro en los animales de interés pecuario, y contaminar el medio ambiente, dentro de otros factores.
En este sentido, se pueden generar retroalimentaciones con capacitaciones a los productores, en cuanto al uso adecuado de los productos, rotación de ingredientes activos, dosificaciones adecuadas, manejos preventivos, y muestreos que permitan tomar las mejores decisiones, sin tener que tomar decisiones sin el conocimiento adecuado.
Fuera de los resultados de los análisis de suelos, este factor es crítico, debido a que la mitad de los productores no está actualizando su análisis de suelo, o ni siquiera se ha realizado el mismo.
Es importante aclarar que de acuerdo a las condiciones ambientales y geomorfológicas de la zona, así como la intensidad del manejo del suelo, las propiedades fisicoquímicas pueden presentar variación, y no exclusivamente de manera bianual, ya que se ha reportado que estos cambios pueden ocasionarse mensualmente, ya sea por condiciones de cambio en el nivel freático, estacionalidad de la zona, rotación de cultivos, momentos de fertilización y encalado, entre muchos otros factores.
En este sentido, podemos estar frente al factor más limitante en el rendimiento de los cultivos y la calidad de cosechal, ya que variables físicas como la porosidad (relacionada con la textura y la estructura) puede determinar el contenido de humedad del suelo, la conductividad hidráulica del mismo, y por ende condiciones de encharcamiento, y variables químicas como el pH y la salinidad, limitan la disponibilidad y toma de nutrientes por parte de la planta.
Sin embargo, si entendemos las condiciones económicas de los agricultores, podemos apreciar que los ingresos de los mismos pueden no ser suficientes para la ejecución de análisis fisicoquímicos de sus suelos, lo cual limita la toma de decisiones.
Por lo anterior, es importante contemplar la posibilidad de apoyar y asesorar a los agricultores en condiciones de bajos ingresos, lo cual puede lograrse con alianzas con laboratorios de suelos, con el fin de disminuir las tarifas de los análisis, realizando un conjunto con los suelos de todos los productores que se vean enfrentados a condiciones de bajos ingresos, sin comprometer directamente el movimiento de dinero de la empresa.
Igualmente, bajo estas condiciones, las visitas de los agrónomos pueden complementarse con talleres sobre las características del suelo, tales como la determinación de la textura del mismo, la estructura y estabilidad estructural en campo, y otras variables que pueden ser de utilidad para los productores, dependiendo de sus necesidades, y les permita tomar algunas decisiones así no existan los recursos necesarios.
Claramente, en estos espacios es posible fomentar el uso razonable de fertilizantes, incentivando al uso de los análisis de suelos. Esto para que de manera activa los agricultores conozcan la utilidad de los análisis, y así ellos se motiven a realizarlos, si el dinero no es uno de sus factores limitantes.
Este factor es el menos excluyente de los indicadores analizados en el presente estudio, ya que al correlacionarlo con el tipo de cultivo o rubro al cual pertenecen, podemos apreciar que más de 2000 productores se dedican a la producción de granos, los cuales no se manejan con coberturas, y solo 751 cuentan con cultivos de frutas y vegetales, dentro de los cuales se pueden presentar productores a los cuales esta variable no les sea aplicada, debido a que algunos de estos cultivos tampoco requieren el uso de invernaderos.
Así, dentro de aquellos que realmente no están aplicando las recomendaciones, es decir, aquellos que tienen cubiertas pero que no realizan un adecuado mantenimiento, se puede presentar la condición de la falta de análisis de suelos recientes, es decir, falta de capital necesario para hacer un mantenimiento adecuado a las infraestructuras.
En esta situación, el crecimiento de algas en los plásticos, así como la templanza del mismo, incentiva a los productores a hacer un mantenimiento autónomo, sin considerar que el lavado de los plásticos o su manipulación puede disminuir su vida útil, hasta el punto de generar daños irreversibles. Es por esto que es fundamental capacitar a los agricultores en el manejo de sus cubiertas, para prolongar su vida útil.
Igualmente, como se mencionó anteriormente, las coberturas presentan una vida útil, por lo cual, es necesaio concientizar a los productores sobre la necesidad de renovarlas, para destinar una proporción de sus ingresos a esta actividad.
Un factor que puede motivar todo esto, es evidenciar mediante los rendimientos de agricultores que si realizan un adecuado mantenimiento, comó el uso y mantenimietno de cubiertas puede favorecer el rendimiento, sin dejar de lado el entendimiento de por qué en algunos cultivos no se deben utilizar coberturas, ya sea por cuestiones de polinización, requerimientos hídricos, envergadura de las plantas, entre otras.
En este sentido, es necesario que se clarifique la necesidad económica de cada agricultor, y se contemplen las posibilidades de apoyo a aquellos que lo requieren.