Examen 6

Héctor Leal, Luis Marín, José Orozco, Aldo Mendívil

6/4/2022

Evaluación Unidad 1

Métodos Supervisados y No Supervisados

Los modelos de aprendizaje automático se dividen en dos grupos:

  • Método Supervisado

  • Método No Supervisado

Estos métodos tienen su principal diferencia en los datos de entrenamiento. En los métodos supervisados se conoce de antemano los resultados; estos son utilizados para guiar el entrenamiento del modelo. Por otro lado, en los métodos no supervisados, generalmente no se conocen los resultados, siendo que estos son descubiertos durante el proceso.

Metodos Supervisados y No Supervisados

Métodos Supervisados

En los métodos supervisados, requerimos además de los datos para realizar la predicción, una característica objetivo para cada una de las predicciones. Este objetivo es el valor que el modelo va a reproducir, este puede ser numérico o categórico.

Una vez que nuestro modelo realice las predicciones, utilizaremos esta misma variable objetivo para realizar el proceso de validación de nuestro modelo, para comprobar si el modelo es válido.

Podemos visualizar estos métodos cómo nos enseñaron a diferenciar entre gatos y perros cuando eramos niños, muy seguramente en la escuela o alguien nos mostró imágenes de que era un gato y que era un perro, hasta que tuvimos en claro las diferencias físicas entre ambos para poder decidir por nosotros si un animal es un perro, un gato o algúno otro, en este caso, quien nos haya ayudado a diferenciar entre perro y gato fue nuestra fase de entrenamiento y posteriormente pudimos clasificar de forma casí unequivoca qué es un perro y qué es un gato.

Dentro de los métodos supervisados podemos realizar dos actividades clasificación y regresión, la primera es útil cuando tenemos una variable discreta, mientras que la segunda al utilizar variables continuas.

Dentro de estos métodos podemos utilizar:

  1. Regresión Lineal.

  2. Regresión Logistica.

  3. Arboles de decisión.

  4. K-Nearest Neighbor.

Métodos No Supervisados

En los métodos no supervisados, a diferencia de los supervisados, no se requiere de datos con la “respuesta correcta” (datos de entrenamiento). En estos métodos no buscamos obtener un valor que conocemos, si no descubrir patrones nuevos o resultados.

Estos métodos funcionan generalmente con clústers, en estos buscan datos similares entre sí, pero diferentes a los demás, una vez identificados los grupos, se les asigna una clasificación a cada uno.

Si utilizamos el mismo ejemplo para visualizar estos métodos, en este caso, nadie nos dice que tenemos que diferenciar entre perros y gatos (categorías/etiquetas) si no que sólo nos dan múchas fotos de diferentes tipos de perros y gatos y nos piden a nosotros que seamos capaces de agruparlos de alguna manera, naturalmente comenzaríamos a agruparlos tal vez por el color del pelaje, el tamaño, la forma en general, su cola, entre otras características; así continuaríamos repitiendo este proceso hasta quedar con grupos de fotos que tienen características en común, muy seguramente el resultado sean dos grupos, uno para los perros y otro para los gatos, pero, nosotros no sabemos cual es cual, solo los diferenciamos en base a características que coincidian entre ellos, lo que nos puede llevar incluso a terminar con 3 o 4 grupos diferentes, tal vez porque había perros que no tenían cola, o eran mas pequeños que parecían un gato pero no lo eran, por lo que estos métodos nos permiten también encontrar otros grupos que tal vez en un inicio no teníamos contemplados.

El uso de estos métodos nos puede llevar al descubrimiento de patrones desconocidos.

Dentro de los métodos no supervisado, estos se dividen en dos grupos de agrupamiento, los jerárquicos y los particionales.

En estos podemos mencionar:

  1. Agrupamiento Jerárquico.

  2. K-Means.

Fuente de Información

Proceso de Resolución de un problema usando ciencia de Datos

Los datos no arreglan problemas de forma mágica, estos pueden ser herramientas útiles si son tratados de manera correcta, es ahí cuando se convierten en datos útiles que pueden ser aprovechados para tomar decisiones o realizar acciones.

Para convertir simples datos en datos útiles y explotables se requiere del uso de la ciencia de datos, este proceso podemos agruparlo en una serie de pasos que se describen a continuación:

Data Science

1.- Definir el Problema

Primero que nada es necesario definir de manera clara el problema a resolver, este debe ser claro, conciso y medible, si no tenemos definido un problema, esto nos dificultará traducir este problema a una solución utilizando ciencia de datos, es importante que existan suficientes datos para que utilicemos en nuestro problema.

2.- Decidir que metodología utilizar

Con nuestro problema identificado, debemos elegir uno (o varios) de los múltiples algoritmos que existen en ciencia de datos para aplicarselos a nuestros datos, esta parte sólo es para generar hipótesis sobre cómo actuar frente a los datos; pues no es hasta la fase de análisis donde nos damos cuenta cual es el mejor aproach (acercamiento), además estos resultados que nos arrojen deben ser lo suficientemente fiables para que podamos tomar decisiones en base a ellos, estos métodos/algoritmos pueden agruparse de la siguiente manera:

  1. Clasificación en dos clases.

  2. Clasificación en múltiples clases.

  3. Detección de anomalías.

  4. Regresiones.

  5. Clusterización.

  6. Reduccion de dimensionalidad

3.- Recolectar y/o trabajar los datos

Ya que tenemos nuestro problema, debemos recolectar los datos necesarios, en caso de no tenerlos de antemano. Es importante que los datos recolectados estén listos para su uso dentro de los análisis, de lo contrario tendremos que limpiar los datos (quitar valores faltantes, identificar duplicidad, corregir valores incorrectos)

4.- Analizar los datos

Retomando el punto anterior, con nuestros datos ya limpios, es tiempo de comenzar a analizar los datos, intentando los diferentes algoritmos que tenemos, validando si los resultados arrojados son buenos, en esta fase comenzamos a probar hasta dar con un modelo adecuado.

5.- Interpretar los resultados

Después de realizar nuestro análisis de los datos, es tiempo de interpretarlos, en esta parte tenemos que enfocarnos en saber si nos ayudan a resolver nuestro problema y lo más importante, debemos ser capaces de comunicarlos con las demás personas (aún que estas no tengan conocimientos técnicos) de esta manera nos aseguramos que todas las personas interesadas sean capaces de aprovechar los resultados derivados de nuestros análisis.

Librerías

Las librerías que utilizaremos durante todo el documento se encuentran en este apartado y su función se describe a continuación:

library(pacman)
p_load("xfun","ggplot2", "readr", "plotly", "readxl", "DT","vembedr","tidyverse",  "forecast",  "tseries", "xfun")
  • xfun : Nos permite embeber dentro del documento los archivos que utilizamos en el proyecto para que puedan ser descargados.
  • ggplot2 : Librería enfocada a generar gráficas.
  • readr : Permite leer archivos .csv para importarlos dentro de nuestro proyecto.
  • plotly : Librería enfocada a generar gráficas interactivas.
  • readxl : Permite leer archivos .xlsx (Excel) para importarlos dentro de nuestro proyecto.
  • DT : Permite mostrar los datos contenidos en un dataset de manera visual dentro de una tabla. -vembedr: Perimite la subida de documentos RMarkdown -tidyverse: Ayuda en todo el proceso de importar transformar visualizar modelar y comunicar toda la información -forecast: Proporciona métodos y herramientas para mostrar y analizar pronósticos de series de tiempo univariantes, incluidos pronósticos exponenciales. -tseries: Permite manipular datos correspondiente a series de tiempo. -xfun: Permite la subida de documentos y descarga de codigo.

Datos

Los datos a utilizar en el presente documento son proporcionados por el sitio web del Servicio de Información Agroalimentaria y Pesquera de México . Se utilizarán los datos del Índice de Volumen Físico del sector agropecuario, los cuales muestran muestra la evolución y el ritmo mensual de la producción agropecuaria, y describe el comportamiento estacional de los cultivos agrícolas y productos pecuarios reflejando las variaciones mensuales y los patrones de la producción.

Por otra parte, será utilizados datos del sitio oficial de Conagua, datos de las precipitaciones mensuales presentadas en los estados de la república mexicano, ambos datos utilizados abarcan desde el año 2020-2021.

Ambos conjuntos tienen una frecuencia de actualización mensual, por lo que estudiaremos a ambos conjuntos en los años 2020 y 2021

A continuación se importan los datos con una serie de parámetros extra para que sea mas fácil su manipulación dentro de R, estos cambios son, establecer como tipo de dato factor al nombre de los estados y cambiar el formato de la fecha a uno de la siguiente forma: “YYYY-MM-DD”.

SIAP

# Datos Pecuarios 2020
Pecuario_2020_Clean <- read_csv("Pecuario-2020-Clean.csv", 
    col_types = cols(Entidad = col_factor(levels = c("Nacional", 
        "Aguascalientes", "Baja California", 
        "Baja California Sur", "Campeche", 
        "Coahuila", "Colima", "Chiapas", 
        "Chihuahua", "Distrito Federal", 
        "Durango", "Guanajuato", "Guerrero", 
        "Hidalgo", "Jalisco", "Mexico", "Michoacan", 
        "Morelos", "Nayarit", "Nuevo Leon", 
        "Oaxaca", "Puebla", "Queretaro", 
        "Quintana Roo", "San Luis Potosi", 
        "Sinaloa", "Sonora", "Tabasco", "Tamaulipas", 
        "Tlaxcala", "Veracruz", "Yucatan", 
        "Zacatecas"))))
fecha<-as.array(Pecuario_2020_Clean$Fecha);
fecha <-as.Date(fecha,format="%d/%m/%Y")
Pecuario_2020_Clean$Fecha<-fecha

# Datos Lluvia 2020
Lluvia_2020_Clean <- read_csv("Lluvia-2020-Clean.csv", 
    col_types = cols(Entidad = col_factor(levels = c("Nacional", 
        "Aguascalientes", "Baja California", 
        "Baja California Sur", "Campeche", 
        "Coahuila", "Colima", "Chiapas", 
        "Chihuahua", "Distrito Federal", 
        "Durango", "Guanajuato", "Guerrero", 
        "Hidalgo", "Jalisco", "Mexico", "Michoacan", 
        "Morelos", "Nayarit", "Nuevo Leon", 
        "Oaxaca", "Puebla", "Queretaro", 
        "Quintana Roo", "San Luis Potosi", 
        "Sinaloa", "Sonora", "Tabasco", "Tamaulipas", 
        "Tlaxcala", "Veracruz", "Yucatan", 
        "Zacatecas"))))
fecha<-as.array(Lluvia_2020_Clean$Fecha);
fecha <-as.Date(fecha,format="%d/%m/%Y")
Lluvia_2020_Clean$Fecha<-fecha

# Datos Pecuarios 2021
Pecuario_2021_Clean <- read_csv("Pecuario-2021-Clean.csv", 
    col_types = cols(Entidad = col_factor(levels = c("Nacional", 
        "Aguascalientes", "Baja California", 
        "Baja California Sur", "Campeche", 
        "Coahuila", "Colima", "Chiapas", 
        "Chihuahua", "Distrito Federal", 
        "Durango", "Guanajuato", "Guerrero", 
        "Hidalgo", "Jalisco", "Mexico", "Michoacan", 
        "Morelos", "Nayarit", "Nuevo Leon", 
        "Oaxaca", "Puebla", "Queretaro", 
        "Quintana Roo", "San Luis Potosi", 
        "Sinaloa", "Sonora", "Tabasco", "Tamaulipas", 
        "Tlaxcala", "Veracruz", "Yucatan", 
        "Zacatecas"))))
fecha<-as.array(Pecuario_2021_Clean$Fecha);
fecha <-as.Date(fecha,format="%d/%m/%Y")
Pecuario_2021_Clean$Fecha<-fecha

#Datos Lluvia 2021
Lluvia_2021_Clean <- read_csv("Lluvia-2021-Clean.csv", 
    col_types = cols(Entidad = col_factor(levels = c("Nacional", 
        "Aguascalientes", "Baja California", 
        "Baja California Sur", "Campeche", 
        "Coahuila", "Colima", "Chiapas", 
        "Chihuahua", "Distrito Federal", 
        "Durango", "Guanajuato", "Guerrero", 
        "Hidalgo", "Jalisco", "Mexico", "Michoacan", 
        "Morelos", "Nayarit", "Nuevo Leon", 
        "Oaxaca", "Puebla", "Queretaro", 
        "Quintana Roo", "San Luis Potosi", 
        "Sinaloa", "Sonora", "Tabasco", "Tamaulipas", 
        "Tlaxcala", "Veracruz", "Yucatan", 
        "Zacatecas"))))
fecha<-as.array(Lluvia_2021_Clean$Fecha);
fecha <-as.Date(fecha,format="%d/%m/%Y")
Lluvia_2021_Clean$Fecha<-fecha

# Datos Completos Pecuario y Lluvia 2020-21
Datos <- read_csv("Datos-Pecuario-Lluvia-2020-2021.csv", 
    col_types = cols(Entidad = col_factor(levels = c("Nacional", 
        "Aguascalientes", "Baja California", 
        "Baja California Sur", "Campeche", 
        "Coahuila", "Colima", "Chiapas", 
        "Chihuahua", "Distrito Federal", 
        "Durango", "Guanajuato", "Guerrero", 
        "Hidalgo", "Jalisco", "Mexico", "Michoacan", 
        "Morelos", "Nayarit", "Nuevo Leon", 
        "Oaxaca", "Puebla", "Queretaro", 
        "Quintana Roo", "San Luis Potosi", 
        "Sinaloa", "Sonora", "Tabasco", "Tamaulipas", 
        "Tlaxcala", "Veracruz", "Yucatan", 
        "Zacatecas"))))
fecha<-as.array(Datos$Fecha);
fecha <-as.Date(fecha,format="%d/%m/%Y")
Datos$Fecha<-fecha

Para tener más en claro como es que nuestros datos estan estructurados, vamos a mostrar los datos en forma de tablas para que puedan ser visualizados de forma más sencilla.

Datos de IVF Pecuario y Lluvias en México por Estado de los años 2020-21

datatable(Datos)

Significado de los datos:

  • Clave ent : Se refiere a un identificador númerico de cada estado

  • Entidad : Nombre del Estado (En caso de Nacional se refiere a todos los estados en conjunto)

  • IVF : Indice de Volumen Físico en toneladas sobre la variación de generación de productos Pecuarios (Siendo Pecuarios la Carne en Canal de Bovino, Caprino, Ovino, Pavo, Pollo y Gallina, Porcino, huevos de gallina, leche de bovino, caprino y miel de abeja) en referencia a la producción del año 2013.

  • MM : Milímetros acumulados de lluvia en el mes.

  • Fecha : Fecha que representa el mes y año en el que fueron tomados los datos (Todas las fechas están puestas al último día del mes)

Introducción

La ganadería es una actividad que consiste en la cría, tratamiento y reproducción de animales domésticos con fines de producción para el consumo humano, entre la larga lista de animales usados para estas prácticas econtramos a los cerdos, vacas, pollos, borregos, abejas, entre otros, esto con el fin de aprovechar la carne, huevos, lana, miel y otros productos que generan para que sean aprovechados para el consumo humano. La ganadería es una práctica muy antigua y es una parte importante de la economía mexicana.

La ganadería fue introducida en México durante la época de la colonización, ya que en la época prehispánica solo se enfocaba a la críanza del pavo, xoloitzcuintle, a la cochinilla de grana y algunas especies apícolas. Por lo tanto, hoy en día el sector ganadero representa en Mexico uno de los sectores con mayor crecimiento a nivel mundial.

Actualmente, en México las actividades pecuarias siguen siendo de gran importancia, a tal grado que México es el 6° productor mundial de ganadería primaria (Datos de 2021) y el octavo en exportación de carne de reso, debido a que los productos cumplen con estándares de calidad e inocuidad, lo que posiciona a méxico como un jugador importante en el mercado.

Más información Más información

Ilustración de Ganadería

Antecedentes

México se caracteriza por ser un país ganadero, cuenta con grandes áreas donde se desarrollan principalmente las ganaderías bovina, porcina, ovina, caprina y aviar. Por otra parte también se realiza la producción de leche y huevos, subproductos que nos proporcionan una alimentación variada y saludable.

La ganadería puede ser extensiva e intensiva, por lo tanto, existen ciertos factores que influyen para una buena producción de ganado estos factores puedes ser: el relieve del suelo, acceso a fuentes de agua, un clima adecuado en cuanto a humedad y temperatura así como la vegetación y forrajes que se utilizan para su alimentación.

Entre los aspectos relevantes del sector ganadero en México destacan los siguientes:

  • En nuestro país, se destinan alrededor de 109.8 millones de hectáreas.

  • 842 mil personas alimentan y cuidan al hato ganadero.

  • México es el 6° productor mundial de ganadería primaria.

  • De los 51.9 millones de mexicanos que trabajan, 739 mil se dedican a la cría y explotación de especies ganaderas.

  • En 2017, se produjeron 11,807.5 millones de litros de leche provenientes del bovino.

Crianza

Objetivos

El objetivo del presente documento es analizar el comportamiento de los datos de produccion pecuaria en México así como la cantidad de lluvias en México para los años 2020 y 2021.

En específico analizaremos si existe alguna relación entre la producción pecuaria en México y las lluvias que se presentan, analizaremos si las lluvias afectan a la producción pecuaria, partiremos de la hipótesis que las ganadería pecuaria no se ve afectada por las lluvias.

Lluvia

Marco teórico

México se caracteriza por ser un país ganadero que cuenta con grandes áreas donde se desarrollan principalmente las ganaderías bovina, porcina, ovina, caprina y aviar.

  • Ganadería ovina : La ganadería ovina es representada por el conjunto de vacas u ovejas, dedicados a la producción de leche, queso, lana y pieles.

  • Ganadería bovina o vacuna: Esta ganadería es representa por el conjunto de bueyes, toros y vacas, con el fin de producir tanto carne como leche .

  • Ganadería porcina: Se refiere al conjunto de cerdos y su principal objetivo es la producción de carne.

  • Ganadería caprina: Se centra en la producción de queso, leche y carne, obtenidos principalmente de las cabras.

  • Ganadería aviar: Su explotación principal reside en el consumo de su carne y en los huevos que producen las gallinas.

Método

Análisis de Relación entre la producción pecuaria y la lluvia en México

División de los Datos

Como tenemos los datos de cada estado así como el nacional, vamos a separar los datos para obtener solo los datos a nivel Nacional

dataSetPecuario2020 <- subset(Pecuario_2020_Clean,  Pecuario_2020_Clean$Entidad %in% "Nacional")

dataSetPecuario2021 <- subset(Pecuario_2021_Clean,  Pecuario_2021_Clean$Entidad %in% "Nacional")

dataSetLluvia2020 <- subset(Lluvia_2020_Clean,  Lluvia_2020_Clean$Entidad %in% "Nacional")
dataSetLluvia2021 <- subset(Lluvia_2021_Clean, Lluvia_2021_Clean$Entidad %in% "Nacional")

newDataPecuario = rbind(dataSetPecuario2020,dataSetPecuario2021)

newDataLluvia = rbind(dataSetLluvia2020,dataSetLluvia2021)

Visualizando los datos en Gráficas

Ahora vamos a analizar si existe una relación visible mediante gráficas con la cantidad de producción pecuaria y las lluvias en todo México.

p <- plot_ly(x=newDataPecuario$Fecha , y=newDataLluvia$MM, mode = 'lines', type="scatter", name="Precipitacion MM ") %>%
  layout(title = 'Lluvia e IVF Nacional 2020-2021' ,
         yaxis = list(zeroline = FALSE, title = 'Indice'),
         xaxis = list(zeroline = FALSE, title = 'Mes'), legend = list(font = list(size = 15)))
p <- add_trace(p,y=newDataPecuario$IVF, name="IVF")
p

Como podemos observar, no parece haber una relación directa entre las lluvias y la producción pecuaria en méxico, pues aún que vemos cómo la lluvia tiene picos alrededor de la mitad del año, la producción pecuaria no aumenta de inmediato, y tampoco lo hace a los meses (Tomando en cuenta que los animales toman tiempo en alcanzar una edad en la que pueden ser vendidos).

Análisis de Regresión Lineal

Una regresión lineal es un modelo estadístico que nos permite describir una variable de respuesta continua como una función de una o varias variables predictoras, esta nos permite comprender y predecir el comportamiento de ciertos sucesos, este modelo lo utilizaremos para ver si existe una relación entre la lluvia y la producción pecuaria en México.

La principal utilidad del analisis de la regresión lineal, es que este se puede utilizar para poder predecir el valor de una variable deacuerdo al valor de otra variable distinta. El nombre que lleva la variable que se desea predecir es variable dependiente, por ende, la variable que utilizamos para poder predecir la otra, se le demonina variable independiente.

Es de suma importancia que los datos con los cuales estamos trabajando cumplan con las hipótesis de la regresión linea, es decir, que los datos que vamos a manejar sean optimos para analizarlos con la regresión lineal.

Algunos de las hipotesis son:

  • Las variables que utilizamos deben medirse con un nivel continuo específico.

  • Los datos no deben tener anomalías, es decir, los datos no deben de contar con valores muy atípicos significativos.

  • Se puede utilizar un diagrama de dispersión, esto con el fin de comprobar si existe una relación lineal significativa entre las dos variables que deseamos evaluar.

Una vez comprendido mejor el tema acerca de regresión linea, podemos observar las dos variables con las cuales vamos a trabajar, en este caso, hablamos de Producción Pecuaria y Lluvia.

head(Datos)
## # A tibble: 6 x 5
##   `Clave ent` Entidad               IVF    MM Fecha     
##         <dbl> <fct>               <dbl> <dbl> <date>    
## 1           0 Nacional            115.   23.7 2021-01-31
## 2           1 Aguascalientes      142.    6.2 2021-01-31
## 3           2 Baja California     126.   26.8 2021-01-31
## 4           3 Baja California Sur  96    12.2 2021-01-31
## 5           4 Campeche             89.6  52.8 2021-01-31
## 6           5 Coahuila            101.    3.5 2021-01-31

Matriz de Diagramas de dispersión

Con le fin de conprender mejor el tema, una matriz de diagramas de dispersión, es basicamente una cuadricula la cual contiene varios gráficos, los cuales nos permiten conocer las relaciones existenes entre las variables. En dicha matríz podemos observar gráficos de dispersion de hasta cinco variables de procedencia numérica.

Una características de las matrices de diagramas de dispersión es que utilizan simbolos únicos para identificarse en caso de que no se utilice la variable “Color por”, por otro lado, si se llega asignar la variable “Color por”, se requiere por medio de valores únicos.

DatosNacional <- subset(Datos, Datos$Entidad %in% "Nacional")
pairs(DatosNacional)

Como podemos ver, los datos no parece haber una relación entre el Índice de Volumen Físico y los milimetros de lluvia, pero tal parece que puede existir una relación lineal entre la Fecha y el Índice de Volumen Físico.

Recta de los mínimos cuadrados

La recta de los mínimos cuadrados se puede definir como un método de regresión, el cual es una estrategia que se utiliza para modelar el comportamiento de todos los datos a travéz de una recta que cruza todos ellos. Esta recta se utiliza basicamente para observar y estudiar como se relacionan dos variables naturalmente.

Para encontrar la recta de los mínimos cuadrados es necesario seguir una serie de pasos:

  1. Se necesita calcular la media de los valores de las variables X y Y

  2. Sumar los cuadrados de la variable x

  3. Se requiere sumar cada valor de x, este multiplicado por el valor y que le corresponde

  4. Calcular la pendiente de la recta (Debemos utilizar la siguiente fórmula);

Fórmula pendiente ,donde n es el número total de puntos de los datos

  1. Debemos de calcular la intercepción de la recta (Utilizar la siguiente fórmula):

Fórmula intercepción ,donde y y x corresponde a las medias de as coordenadas de los puntos de datos correspondientes.

  1. Se utiliza la pendiente e interceptación para en y para fórmular la ecuación de la recta.

Ahora vamos a ver la correlación entre nuestra variable de Indice de Volumen Físico en función de la cantidad de lluvia

regresion <- lm(Datos$IVF ~ Datos$MM, data = Datos)
summary(regresion)
## 
## Call:
## lm(formula = Datos$IVF ~ Datos$MM, data = Datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -41.213 -13.489  -2.639   8.902 103.713 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.157e+02  9.776e-01 118.313   <2e-16 ***
## Datos$MM    7.046e-03  7.520e-03   0.937    0.349    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.19 on 790 degrees of freedom
## Multiple R-squared:  0.00111,    Adjusted R-squared:  -0.0001542 
## F-statistic: 0.8781 on 1 and 790 DF,  p-value: 0.349

Con el modelo utilizando las tres variables obtenemos una R^2 ajustada de -0.0001542, lo que este modelo no es capaz de explicar en función de la lluvia, la producción pecuaria, por lo que tendremos que utilizar otro método que nos permita estudiar mejor la relación entre ambos datos.

Análisis de Serie de tiempo

El estudio del analisis de series de tiempo determina como obejtivo principal, que se realice uyna serie de modelos estadisticos, los cuales expliquen con detalle el comportamiento que los datos de una variable tiene en base al tiempo, o con alguna unidad de medida, con los cuales podemos determinar algunos datos esperados para asi poder dar solucion a la hipótesis nula planteada.

Un análisis de series de tiempo (TSA) nos permite ver de maner agráfica la evolución que tiene una variable conforme al tiempo, estos nos permiten ver cómo se comporta nuestra variable así como determinar si existen patrones estacionales dentro de nuestros datos, a continuación realizaremos una análisis de series de tiempo para las precipitaciones y la producción pecuaria para ver si es posible predecir la producción pecuaria y las lluvias en méxico.

La siguiente serie de tiempo nos muestra la variación del índice de volumen físico de los estados de México, medio en toneladas sobre la variación de generación de productos Pecuarios en referencia a la producción del año 2013. Durante al año 2021 a nivel nacional.

TSA Precipitaciones 2020-2021

Buscando datos Faltantes

anyNA(newDataLluvia)
## [1] FALSE

Esto signigica que no tenemos ningún valor faltante.

Descomposición de la serie de tiempo

La descomposición de series de tiempo es el proceso que identifica y calcula las diversas componentes existentes en una serie temporal, así como la forma en que estas se relacionan entre sí. Por ende, se procederá hacer una descomposición de serie de tiempo de las precipitaciones mensuales en MM de México.

datosLluvia<-ts(newDataLluvia$MM , frequency = 2 ,start = c(2020, 1),end = c(2021,12))
datos_dcLluvia<- datosLluvia %>%
  decompose(type="multiplicative") %>%
  autoplot()
datos_dcLluvia

  1. Usando un modelo de suavizado exponencial
  • Validación cruzada

La validación cruzada es una técnica para evaluar modelos de ML mediante el entrenamiento de varios modelos de ML en subconjuntos de los datos de entrada disponibles y evaluarlos con el subconjunto complementario de los datos. Por lo tanto, los datos de entrenamiento y test se procederá a dividirlos en un 20 y 80 porciento respectivamente.

test_datosLluvia <- tail(datosLluvia, 3) 
train_datosLluvia <- head(datosLluvia, length(datosLluvia)-3) 
  • Holt-Winters

El método de Holt Winters es utilizado para realizar pronósticos del comportamiento de una serie temporal a partir de los datos obtenidos anteriormente. El método se basa en un algoritmo iterativo que a cada tiempo realiza un pronóstico sobre el comportamiento de la serie en base a promedios debidamente ponderados de los datos anteriores.

datos_sesLluvia <- HoltWinters(train_datosLluvia, seasonal = "multiplicative", )
datos_sesLluvia
## Holt-Winters exponential smoothing with trend and multiplicative seasonal component.
## 
## Call:
## HoltWinters(x = train_datosLluvia, seasonal = "multiplicative")
## 
## Smoothing parameters:
##  alpha: 1
##  beta : 0
##  gamma: 1
## 
## Coefficients:
##         [,1]
## a  35.990891
## b  -2.325000
## s1  0.983076
## s2  1.016924
  • Forecasting

Forecasting es el proceso de hacer predicciones sobre el futuro mediante el análisis estadístico de tendencias observadas en datos históricos.

datos_forecastLluvia <- forecast(object = datos_sesLluvia, h = 3)
  • Visualizando resultados

Por ende una vez aplicado el proceso de hacer predicciones con Forecasting, se procederá hacer la visualización del resultado en forma gráfica, viendo los datos de entrenamiento vs datos de prueba vs datos reales.

datosLluvia %>%
  autoplot(series = "Datos Reales") +
  autolayer(datos_forecastLluvia$fitted, series = "Datos Entrenamiento") +
  autolayer(datos_forecastLluvia$mean , series = "Datos de Prueba") +
  theme_minimal()
## Warning: Removed 2 row(s) containing missing values (geom_path).

Evaluar la precisión del modelo

Una vez realizada la prediccion se procedera a evluar la precision del modelo.

eval_sesLluvias <- accuracy(datos_forecastLluvia, test_datosLluvia)
eval_sesLluvias
##                      ME     RMSE      MAE         MPE      MAPE      MASE
## Training set   3.696165 33.56470 23.69206   -6.077623  39.43366 0.5564418
## Test set     -14.964087 15.82444 14.96409 -130.078319 130.07832 0.3514530
##                    ACF1 Theil's U
## Training set  0.3785737        NA
## Test set     -0.5806394  1.283706

Deacuerdo con la prueba el modelo tiene un error medio del 130% Por lo que nuestro modelo no es capaz de predecir el comportamiento de las precipitaciones de las lluvias en Mexico a nivel NAcional.

Utilizando el modelo SARIMA o ARIMA

Los modelos SARIMA captan el comportamiento puramente estacional de una serie, en forma similar, como hemos visto, se realiza para la componente regular o no estacional. Una serie con influencia solamente por la componente estacional puede ser descrito por un modelo SARIMA (P,D,Q)

Empezaremos haciendo una prueba al conjunto de datos.

adf.test(datosLluvia)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  datosLluvia
## Dickey-Fuller = -1.5945, Lag order = 2, p-value = 0.7269
## alternative hypothesis: stationary

Deacuerdo con el valor de P, los datos no son estacionarios

Análisis de ajuste

En esta seccion se representan los datos de una manera grafica con el apoyo de autoplot().

datos_diffLluvia <- datosLluvia

datos_diffLluvia %>%
  autoplot()

Analizando la serie de tiempo por medio de un modelo ARIMA

datos_autoLluvia <- auto.arima(y = train_datosLluvia, seasonal = T)
summary(datos_autoLluvia)
## Series: train_datosLluvia 
## ARIMA(0,1,0) 
## 
## sigma^2 = 1048:  log likelihood = -48.96
## AIC=99.92   AICc=100.42   BIC=100.22
## 
## Training set error measures:
##                  ME     RMSE      MAE       MPE     MAPE      MASE      ACF1
## Training set 1.3656 30.86077 19.60196 -8.681991 35.08629 0.4603801 0.3355203

Deacuerdo con la prueba del modeloARima tiene un error medio del 35% Por lo que nuestro modelo es capaz de predecir el comportamiento de las precipitaciones de las lluvias en Mexico a nivel Nacional, sin embargo, no sera tan exacta la precision ya que un 35.08% es un gran numero.

Visualizacion grafica de los datos reales versus el modelo SARIMA

Para observar mejor los resultados de la evaluacion anterior se procedera a visualizarlos de una forma grafica.

train_datosLluvia %>%
  autoplot(series= "Datos Reales") +
  autolayer (datos_autoLluvia$fitted, series = "SARIMA auto") +
  theme_minimal()

Analisis de los cambios diferenciales en la serie de tiempo

En esta seccion se muestra los cambios diferenciales en la serie de tiempo de tiempo evaluada.

tsdisplay(datos_diffLluvia)

TSA IVF 2020-2021

Buscando datos Faltantes

anyNA(newDataPecuario)
## [1] FALSE

Esto signigica que no tenemos ningún valor faltante.

Descomposición de la serie de tiempo

La descomposición de series de tiempo es el proceso que identifica y calcula las diversas componentes existentes en una serie temporal, así como la forma en que estas se relacionan entre sí. Por ende, se procederá hacer una descomposición de serie de tiempo de las precipitaciones mensuales en MM de México.

datosPecuario<-ts(newDataPecuario$IVF , frequency = 2 ,start = c(2020, 1),end = c(2021,12))
datos_dc <- datosLluvia %>%
  decompose(type="multiplicative") %>%
  autoplot()
datos_dc

  1. Usando un modelo de suavizado exponencial
  • Validación cruzada

La validación cruzada es una técnica para evaluar modelos de ML mediante el entrenamiento de varios modelos de ML en subconjuntos de los datos de entrada disponibles y evaluarlos con el subconjunto complementario de los datos. Por lo tanto, los datos de entrenamiento y test se procederá a dividirlos en un 20 y 80 porciento respectivamente.

test_datosPecuario <- tail(datosPecuario, 3) # 20 porciento de los datos para pruebas
train_datosPecuario <- head(datosPecuario, length(datosPecuario)-3) # 80 porciento de los datos para entrenamiento
  • Holt-Winters

El método de Holt Winters es utilizado para realizar pronósticos del comportamiento de una serie temporal a partir de los datos obtenidos anteriormente. El método se basa en un algoritmo iterativo que a cada tiempo realiza un pronóstico sobre el comportamiento de la serie en base a promedios debidamente ponderados de los datos anteriores.

datos_sesPecuario <- HoltWinters(train_datosPecuario, seasonal = "multiplicative", )
datos_sesPecuario
## Holt-Winters exponential smoothing with trend and multiplicative seasonal component.
## 
## Call:
## HoltWinters(x = train_datosPecuario, seasonal = "multiplicative")
## 
## Smoothing parameters:
##  alpha: 1
##  beta : 0.02141579
##  gamma: 1
## 
## Coefficients:
##           [,1]
## a  125.8119237
## b    1.2242424
## s1   0.9977103
## s2   1.0022897
  • Forecasting

Forecasting es el proceso de hacer predicciones sobre el futuro mediante el análisis estadístico de tendencias observadas en datos históricos.

datos_forecastPecuario <- forecast(object = datos_sesPecuario, h = 3)
  • Visualizando resultados

Por ende una vez aplicado el proceso de hacer predicciones con Forecasting, se procederá hacer la visualización del resultado en forma gráfica, viendo los datos de entrenamiento vs datos de prueba vs datos reales.

datosPecuario %>%
  autoplot(series = "Datos Reales") +
  autolayer(datos_forecastPecuario$fitted, series = "Datos Entrenamiento") +
  autolayer(datos_forecastPecuario$mean , series = "Datos de Prueba") +
  theme_minimal()
## Warning: Removed 2 row(s) containing missing values (geom_path).

Evaluar la precisión del modelo

Una vez realizada la prediccion se procedera a evluar la precision del modelo.

eval_sesPecuario <- accuracy(datos_forecastPecuario, test_datosPecuario)
eval_sesPecuario
##                      ME       RMSE        MAE        MPE      MAPE      MASE
## Training set  0.2559506  0.7664347  0.6791311  0.2177197 0.5659706 0.2589907
## Test set     -8.2958476 11.3969436 10.1323232 -7.3001261 8.7182539 3.8640216
##                    ACF1 Theil's U
## Training set  0.1483145        NA
## Test set     -0.1747509  1.394874

Deacuerdo con la prueba de precisión, el modelo tiene un error medio del 8.17% Por lo que nuestro modelo es capaz de predecir el comportamiento del indice del volumen fisico en Mexico a nivel Nacional.

Utilizando el modelo SARIMA o ARIMA

Los modelos SARIMA captan el comportamiento puramente estacional de una serie, en forma similar, como hemos visto, se realiza para la componente regular o no estacional. Una serie con influencia solamente por la componente estacional puede ser descrito por un modelo SARIMA (P,D,Q)

Empezaremos haciendo una prueba al conjunto de datos

adf.test(datosPecuario)
## Warning in adf.test(datosPecuario): p-value greater than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  datosPecuario
## Dickey-Fuller = 0.20028, Lag order = 2, p-value = 0.99
## alternative hypothesis: stationary

Deacuerdo con el valor de P, los datos no son estacionarios

Análisis de ajuste

En esta seccion se representan los datos de una manera grafica con el apoyo de autoplot().

datos_diffPecuario <- datosPecuario

datos_diffPecuario %>%
  autoplot()

Analizando la serie de tiempo por medio de un modelo ARIMA

datos_autoPecuario <- auto.arima(y = train_datosPecuario, seasonal = T)
summary(datos_autoPecuario)
## Series: train_datosPecuario 
## ARIMA(0,0,0)(0,1,0)[2] with drift 
## 
## Coefficients:
##        drift
##       1.3111
## s.e.  0.1687
## 
## sigma^2 = 1.155:  log likelihood = -12.88
## AIC=29.75   AICc=31.75   BIC=30.15
## 
## Training set error measures:
##                      ME      RMSE       MAE        MPE      MAPE      MASE
## Training set 0.02020605 0.9165279 0.6545495 0.01936489 0.5396498 0.2496163
##                   ACF1
## Training set 0.4263745

Deacuerdo con la prueba del modeloARima tiene un error medio del 0.5396% por lo que nuestro modelo es capaz de predecir el comportamiento del indice del volumen fisico en Mexico a nivel Nacional.

Visualizacion grafica de los datos reales versus el modelo SARIMA

Para observar mejor los resultados de la evaluacion anterior se procedera a visualizarlos de una forma grafica.

train_datosPecuario %>%
  autoplot(series= "Datos Reales") +
  autolayer (datos_autoPecuario$fitted, series = "SARIMA auto") +
  theme_minimal()

Analisis de los cambios diferenciales en la serie de tiempo

En esta seccion se muestra los cambios diferenciales en la serie de tiempo de tiempo evaluada.

tsdisplay(datos_diffPecuario)

Resultados y discusión

Como pudimos observar no parece haber una relación directa entre las lluvias y la generación pecuaria en México, pues aún que tenemos momentos en el año donde existen grandes lluvias, la producción no parece variar de manera drástica como para tomarla como una posible causa o variable que permita predecir la producción pecuaria.

p <- plot_ly(x=newDataPecuario$Fecha , y=newDataLluvia$MM, mode = 'lines', type="scatter", name="Precipitacion MM ") %>%
  layout(title = 'Lluvia e IVF Nacional 2020-2021' ,
         yaxis = list(zeroline = FALSE, title = 'Indice'),
         xaxis = list(zeroline = FALSE, title = 'Mes'), legend = list(font = list(size = 15)))
p <- add_trace(p,y=newDataPecuario$IVF, name="IVF")
p

Los resultados de esta gráfica los podemos observar dentro de esta matriz, en la que vemos que no parece haber una relación directa entre la lluvia y la producción pecuaria.

DatosNacional <- subset(Datos, Datos$Entidad %in% "Nacional")
pairs(DatosNacional)

Conclusión

Como pudimos observar a lo largo de este análisis, y derivado de los resultados del mismo, podemos decir que la hipótesis nula se acepta, por lo que no existe una relación entre la cantidad de lluvia y la producción pecuaria en méxico, pues esta parece ser influida por otros factores, aún que si pudimos observar que si se comporta mediante temporadas, no es algo que sea afectado por las lluvias.

La producción pecuaria es importante para alimentar a los ciudadanos y incentivar la economía, pudimos ver que somos capaces de predecir con relativa exactitud cómo se comportara tanto las lluvias así como la producción pecuaria pero estas al no tener relación no es posible explicarlas en función de estas, sería necesario un análisis mas a fondo tomando en cuenta otro tipo de variables para poder predecir la producción pecuaria, pues es necesario y sería de mucha utilidad para los los gobiernos y las personas que trabajan y viven de esto.

Conclusión Personal

A través del análisis, el estudio y la investigación de los datos proporcionados públicamente por el gobierno se hizo un análisis de relación de la producción de productos agropecuarios principalmente de carne de animales de corral y las temporadas de lluvias en la nación de México, con lo que se pudo observar de que aunque esta es de ayuda para algunos no es algo muy crítico, haciendo que se ahorren dinero en alimentación de algunos animales de alimentación al aire libre, pero los factores que más influyen a esto es la calidad del alimento, la tierra, los cuidados del animal, el trato del animal, etc. Con lo que se puede decir de que las lluvias no son tan importantes para la producción de carne en la nación de México.

Bibliografía

• Datos Abiertos. (s/f). Gob.mx. Recuperado el 7 de abril de 2022, de http://infosiap.siap.gob.mx/gobmx/datosAbiertos.php • de Información Agroalimentaria y Pesquera, S. (s/f-a). Índice de Volumen Físico (IVF). gob.mx. Recuperado el 7 de abril de 2022, de https://www.gob.mx/siap/documentos/ivf-correspondiente-al-mes-de-mayo-2017-111668 • de Información Agroalimentaria y Pesquera, S. (s/f-b). La ganadería: símbolo de fortaleza del campo mexicano. gob.mx. Recuperado el 7 de abril de 2022, de https://www.gob.mx/siap/articulos/la-ganaderia-simbolo-de-fortaleza-del-campo-mexicano • México en el top ten de exportadores de carne a nivel mundial. (s/f). Acmevez.mx. Recuperado el 7 de abril de 2022, de https://acmevez.mx/mexico-en-el-top-ten-de-exportadores-de-carne-a-nivel-mundial/ • (S/f-a). Gob.mx. Recuperado el 7 de abril de 2022, de https://smn.conagua.gob.mx/tools/DATA/Climatología/Pronóstico%20climático/Temperatura%20y%20Lluvia/PREC/2020.pdf?msclkid=deca9b39b51911ecaaa00ea35b460ac0 • (S/f-b). Bookdown.org. Recuperado el 7 de abril de 2022, de https://bookdown.org/dparedesi/data-science-con-r/introducción-2.html • SIAP. (2005). Datos Abiertos | Servicio de Información Agroalimentaria y Pesquera | gob.mx. Recuperado 24 de abril de 2022, de http://infosiap.siap.gob.mx/gobmx/datosAbiertos.php • Autor: Mg. Daniel Paredes Inilupu. (2020, 26 junio). Introducción | Data Science con R. BookDown. Recuperado 6 de abril de 2022, de https://bookdown.org/dparedesi/data-science-con-r/introducci%C3%B3n-2.html

Descargas

En este apartado se enlistan los documentos que continene los datos analizados así como el código de este documento para que pueda ser reproducido por cualquiera que lo desee.

Código

xfun::embed_file("EvaluacionU1_E6.Rmd")

Download EvaluacionU1_E6.Rmd

Indice de Volumen Físico Pecuario de México 2020

xfun::embed_file("Pecuario-2020-Clean.csv")

Download Pecuario-2020-Clean.csv

Indice de Volumen Físico Pecuario de México 2021

xfun::embed_file("Pecuario-2021-Clean.csv")

Download Pecuario-2021-Clean.csv

Precipitaciones en México por Estado 2020

xfun::embed_file("Lluvia-2020-Clean.csv")

Download Lluvia-2020-Clean.csv

Precipitaciones en México por Estado 2021

xfun::embed_file("Lluvia-2021-Clean.csv")

Download Lluvia-2021-Clean.csv

IVF y Precipitaciones en México por Estado de los años 2020-21

xfun::embed_file("Datos-Pecuario-Lluvia-2020-2021.csv")

Download Datos-Pecuario-Lluvia-2020-2021.csv