Tarea: Proyecto Final de “Estadística Aplicada con Python y R”

Título del Proyecto: Análisis de Datos Gubernamentales Aplicados a la Ingeniería


1. Introducción y Objetivo 🎯

¡Felicitaciones por llegar a la segunda mitad del semestre! Han trabajado con regresión lineal, ANOVA y análisis multivariado utilizando datasets clásicos. Ahora, es el momento de aplicar todo lo aprendido en un proyecto final que resuelve un problema real, relevante para su futura profesión como ingenieros agrícolas, agroindustriales o civiles.

El objetivo de este proyecto es que, en equipos, seleccionen un conjunto de datos de una fuente gubernamental colombiana, lo analicen utilizando las herramientas vistas en clase (Python, GitHub Codespaces, Streamlit) y presenten sus hallazgos de manera profesional. Utilizarán Copilot como su asistente de programación para acelerar el desarrollo y enfocarse en el análisis y la interpretación.


2. Organización y Metodología de Trabajo 👥

  1. Formación de Equipos: Organícense en grupos de 3 a 10 estudiantes. La diversidad de programas de ingeniería en un mismo grupo es bienvenida y enriquecerá el análisis.

  2. Selección del Tema y Dataset: Cada grupo deberá elegir un (1) único tema de la lista de sugerencias a continuación. La clave es que el dataset provenga de una fuente oficial y sea descargable mediante código en Python.

  3. Entorno de Desarrollo: Todo el proyecto se desarrollará en GitHub Codespaces. Deberán crear un repositorio en GitHub para su equipo y trabajar colaborativamente en ese entorno.

  4. Uso de IA como Asistente: GitHub Copilot Chat será su principal herramienta para generar código, archivos de texto y documentación. La habilidad para formular prompts efectivos será fundamental para el éxito del proyecto.


3. Temas y Fuentes de Datos Sugeridas 💡

A continuación, se presentan ideas de proyectos y datasets por área de interés. Deberán investigar la fuente para encontrar la API o el enlace de descarga directa (generalmente en formato CSV o a través de una API Socrata).

Para Ingeniería Civil:

  • Análisis de Sismicidad:

    • Fuente: Servicio Geológico Colombiano (SGC).
    • Dataset: Catálogo Sísmico Nacional. Se puede acceder a través de sus servicios web.
    • Ideas de Análisis: Analizar la distribución geográfica y de magnitud de los sismos. ¿Existen patrones temporales? Relacionar la sismicidad con la ubicación de grandes obras de infraestructura.
    • Librería Python clave: requests, pandas.
  • Calidad del Agua en Cuencas Hidrográficas:

    • Fuente: Instituto de Hidrología, Meteorología y Estudios Ambientales (IDEAM).
    • Dataset: Datos de calidad del agua de estaciones de monitoreo. Disponibles en el portal de Datos Abiertos de Colombia.
    • Ideas de Análisis: Modelar la relación entre variables fisicoquímicas (pH, oxígeno disuelto, etc.) y la ubicación o época del año. ¿Qué estaciones presentan mayores niveles de contaminación?
    • Librería Python clave: sodapy (para la API de datos.gov.co), pandas, plotly_express para mapas.
  • Estado de la Red Vial Nacional:

    • Fuente: Instituto Nacional de Vías (INVÍAS) o Agencia Nacional de Infraestructura (ANI).
    • Dataset: Inventario de puentes, estado de las vías, contratos de obra.
    • Ideas de Análisis: Análisis descriptivo del estado de la infraestructura. ¿Hay correlación entre la inversión en mantenimiento y el estado de las vías en diferentes regiones?
    • Librería Python clave: pandas, geopandas (si trabajan con datos geoespaciales).

Para Ingeniería Agrícola y Agroindustrial:

  • Análisis de Rendimiento de Cultivos:

    • Fuente: Ministerio de Agricultura y Desarrollo Rural o DANE (Encuesta Nacional Agropecuaria).
    • Dataset: Evaluaciones Agropecuarias Municipales (EVA), datos de producción y rendimiento por cultivo y municipio.
    • Ideas de Análisis: Crear un modelo que prediga el rendimiento de un cultivo (ej. café, papa) basado en variables como el área sembrada, el municipio o datos climáticos. Comparar la productividad entre diferentes regiones.
    • Librería Python clave: pandas, scikit-learn, statsmodels.
  • Impacto de Variables Climáticas en la Agricultura:

    • Fuente: IDEAM.
    • Dataset: Datos históricos de precipitación, temperatura y brillo solar por estación meteorológica.
    • Ideas de Análisis: Correlacionar variables climáticas con los ciclos de siembra o el rendimiento de cultivos de la región. ¿Se observa el impacto de fenómenos como “El Niño” o “La Niña” en los datos?
    • Librería Python clave: pandas, matplotlib, seaborn.
  • Precios y Abastecimiento de Alimentos:

    • Fuente: DANE (Sistema de Información de Precios y Abastecimiento del Sector Agropecuario, SIPSA).
    • Dataset: Precios mayoristas de productos agrícolas por mercado.
    • Ideas de Análisis: Analizar la volatilidad de los precios de ciertos productos. ¿Cómo varían los precios entre la principal central de abastos (Corabastos) y los mercados regionales? ¿Hay estacionalidad clara en los precios?
    • Librería Python clave: sodapy, pandas, statsmodels para análisis de series de tiempo.

4. Desarrollo del Proyecto con Prompts para Copilot 🤖

Deberán generar la estructura y contenido de su proyecto utilizando Copilot Chat. A continuación, se sugieren los prompts que deben adaptar a su tema específico.

Fase 1: Configuración del Repositorio

  1. Prompt para README.md:

    Crea el contenido para un archivo README.md para un proyecto de análisis de datos sobre [tu tema, ej: 'la calidad del agua en el Río Sinú']. El README debe tener las siguientes secciones:
    - Título del Proyecto
    - Nombres de los Integrantes
    - Descripción del Problema (¿Por qué es importante este análisis para la ingeniería?)
    - Dataset Utilizado (incluir enlace a la fuente oficial)
    - Objetivos del Análisis
    - Tecnologías Utilizadas (Python, Streamlit, Codespaces, etc.)
    - Instrucciones para Ejecutar la Aplicación
  2. Prompt para requirements.txt:

    Genera el contenido para un archivo requirements.txt. Necesito las siguientes librerías de Python: streamlit, pandas, numpy, plotly_express, matplotlib, seaborn, scikit-learn, statsmodels, y [añadir aquí cualquier librería específica para la API que uses, como 'sodapy'].

Fase 2: Documentación Teórica

  1. Prompt para teoria_ingenieria.md:

    Crea un archivo llamado 'teoria_ingenieria.md'. En este archivo, explica en detalle los siguientes conceptos de ingeniería relacionados con nuestro proyecto sobre [tu tema]:
    1. [Concepto 1, ej: 'Importancia del Oxígeno Disuelto como indicador de calidad del agua'].
    2. [Concepto 2, ej: 'Normativa colombiana para agua potable (Resolución 2115 de 2007)'].
    3. [Concepto 3, ej: 'Efectos de la escorrentía agrícola en cuerpos de agua'].
    Utiliza un lenguaje técnico pero claro.
  2. Prompt para teoria_python.md:

    Crea un archivo llamado 'teoria_python.md'. Explica de forma concisa el propósito y uso principal en este proyecto de las siguientes librerías de Python:
    - pandas: Para la manipulación y limpieza de datos tabulares.
    - plotly_express: Para crear visualizaciones interactivas como mapas y gráficos de dispersión.
    - statsmodels: Para la implementación de modelos estadísticos como regresión lineal o ANOVA.
    - streamlit: Para construir y desplegar la aplicación web interactiva.

Fase 3: Scripts de Python

  1. Prompt para descargar_datos.py:

    Crea un script de Python llamado 'descargar_datos.py'. El script debe usar la librería 'sodapy' para conectarse al portal de datos abiertos de Colombia ('www.datos.gov.co') y descargar el dataset con el identificador '[código_del_dataset]'. El script debe guardar los datos limpios en un archivo llamado 'datos_proyecto.csv'. Incluye manejo de errores y comentarios en el código.

    (Nota: Si la fuente no es de datos.gov.co, adapta el prompt para usar requests u otra librería necesaria).

  2. Prompt para app.py (Script principal de Streamlit):

    Crea el script principal 'app.py' para una aplicación de Streamlit que analice el archivo 'datos_proyecto.csv'. La aplicación debe tener la siguiente estructura:
    1. Título principal y descripción del proyecto.
    2. Cargar los datos y mostrar las primeras 5 filas usando st.dataframe().
    3. Mostrar estadísticas descriptivas del dataset con st.write(df.describe()).
    4. Crear una sección de 'Visualización de Datos' con un subtítulo.
    5. Dentro de esa sección, generar al menos dos gráficos interactivos con plotly_express (ej: un mapa de coropletas, un gráfico de dispersión y un boxplot).
    6. Crear una sección de 'Análisis Estadístico' con un subtítulo.
    7. Dentro de esta sección, implementar un modelo estadístico relevante para el objetivo (ej: una regresión lineal para predecir una variable, un test ANOVA para comparar grupos, etc.).
    8. Mostrar los resultados del modelo (ej: la tabla de resumen de la regresión) y explicar brevemente cómo interpretarlos.
    Utiliza una barra lateral (sidebar) en Streamlit para que el usuario pueda filtrar los datos por [una columna relevante, ej: 'año', 'departamento', 'tipo de cultivo'].

Fase 4: Interpretación de Resultados

  1. Prompt para interpretacion_resultados.md: Crea un archivo llamado 'interpretacion_resultados.md'. Basado en los gráficos y el modelo estadístico generados en 'app.py', redacta una interpretación de los resultados desde la perspectiva de la ingeniería. Responde a las siguientes preguntas: - ¿Cuáles son los 3 hallazgos más importantes de las visualizaciones? - ¿Qué conclusiones se pueden extraer del modelo estadístico? ¿Es significativo? ¿Qué variables son las más influyentes? - ¿Cómo estos hallazgos podrían informar decisiones en [tu campo de la ingeniería, ej: 'la gestión de recursos hídricos', 'la planificación de cultivos', 'el mantenimiento de infraestructura']? - ¿Qué limitaciones tiene este análisis o los datos utilizados?

5. Entregables y Presentación 📦

  1. Repositorio de GitHub: El enlace al repositorio público del equipo, que debe contener todos los archivos generados (.py, .md, requirements.txt, etc.). El repositorio debe tener un historial de commits que refleje el trabajo de todos los integrantes.

  2. Informe Final (Sugerencia con NotebookLM):

    • Carguen todos sus archivos de texto (.md de teoría, interpretación, etc.) y una transcripción del código a NotebookLM.
    • Utilicen NotebookLM para generar un informe consolidado que una la teoría, la metodología y los resultados en un único documento coherente.
    • Pueden experimentar generando el resumen en audio y un guion para su video. El informe generado por NotebookLM será un entregable clave.
  3. Video de Presentación (5-10 minutos):

    • Graben un video corto donde presenten su proyecto.
    • Todos los integrantes del equipo deben participar en el video, explicando una parte del trabajo (ej: uno presenta la problemática, otro el código, otro los resultados, y otro las conclusiones).
    • El video debe mostrar la aplicación de Streamlit funcionando.
    • Suban el video a YouTube (o similar) y añadan el enlace en el README.md de su repositorio.

6. Criterios de Evaluación 📊

  • Calidad del Código y Repositorio (30%): Código limpio, comentado, funcional. Uso correcto de GitHub para la colaboración.
  • Profundidad del Análisis Estadístico (30%): Elección correcta de las técnicas estadísticas. Rigor en la aplicación de los modelos.
  • Interpretación y Conclusiones (20%): Capacidad para traducir los resultados numéricos en conclusiones prácticas y relevantes para la ingeniería.
  • Informe y Presentación (20%): Calidad del informe final, claridad en la presentación de los resultados y participación equitativa de todos los miembros en el video. La no participación de un integrante en el video afectará negativamente la calificación grupal e individual.

Fecha Límite de Entrega: [Aquí insertas la fecha]

¡Mucho éxito en su proyecto final! Este es el momento de demostrar su capacidad para resolver problemas complejos con datos.