Antes de iniciar, el estudiante debe: 1. Abrir VSCode y crear una
carpeta vacía llamada app_estadistica_aplicada. 2. Abrir
esa carpeta en VSCode (File > Open Folder). 3. Abrir el
chat de GitHub Copilot (ícono de Copilot en la barra lateral o
Ctrl+Alt+I). 4. Seleccionar el modo agente
(no “Ask” ni “Edit”). 5. Tener Python 3.10+ instalado y disponible en el
PATH.
Prompt 1. Creación de la estructura base del proyecto
Actúa como un Ingeniero de Software Senior especializado en Python, R y Streamlit.
Necesito crear un proyecto profesional para una aplicación web de Estadística Aplicada con Python y R en Streamlit.
Por favor:
1. Crea la siguiente estructura de carpetas y archivos:
- app.py (archivo principal de navegación)
- pages/ (carpeta para las páginas de cada módulo)
- utils/ (carpeta para funciones reutilizables)
- components/ (carpeta para componentes UI reutilizables)
- data/ (carpeta para datasets de ejemplo)
- assets/ (carpeta para imágenes y recursos)
- exports/ (carpeta para archivos generados)
- tests/ (carpeta para pruebas unitarias con pytest)
- requirements.txt
- README.md
- .gitignore
- pyproject.toml
2. En requirements.txt incluye: streamlit, pandas, numpy, scipy, statsmodels, scikit-learn, matplotlib, seaborn, plotly, kaleido, openpyxl, xlsxwriter, pingouin, fitter, pmdarima, statsforecast, pytest
3. En .gitignore incluye patrones para: __pycache__, .venv, *.pyc, .streamlit/, exports/*, .env
4. En README.md incluye: título "App de Estadística Aplicada con Python y R", descripción breve, objetivo académico, lista de módulos (EDA, Probabilidad, Distribuciones, Regresión, Series de Tiempo), y una sección de instalación.
5. Crea un entorno virtual llamado .venv usando python -m venv .venv
6. Activa el entorno virtual e instala las dependencias desde requirements.txt
7. Verifica que todo se instaló correctamente ejecutando: python -c "import streamlit; print(streamlit.__version__)"
Responde con los comandos ejecutados y confirma que la estructura está lista.
Prompt 2. Configuración de la página principal con navegación moderna
Ahora necesito que crees el archivo app.py como página principal de la aplicación.
Requisitos:
1. Usa st.set_page_config con layout="wide", page_title="App de Estadística Aplicada", page_icon="📊"
2. Configura un tema visual profesional con colores neutros (primario: #2c3e50, fondo: #ffffff, secundario: #ecf0f1)
3. Muestra un título principal: "App de Estadística Aplicada con Python y R"
4. Incluye una sección de bienvenida que explique:
- Propósito de la app (apoyar el aprendizaje de estadística aplicada en Ingeniería Agrícola)
- Lista de módulos disponibles: EDA, Probabilidad, Distribuciones, Regresión, Series de Tiempo
- Advertencia académica: "Esta app apoya el aprendizaje, pero el estudiante debe interpretar los resultados y verificar supuestos"
- Sección especial sobre "Reserva Cognitiva y Ética en el Uso de IA"
5. Usa st.sidebar para mostrar información sobre el proyecto y el autor
6. El código debe estar completamente documentado con docstrings y comentarios en español
7. No incluyas todavía los cálculos estadísticos, solo la estructura de navegación
Crea el archivo app.py con este contenido.
Prompt 3. Desarrollo del módulo EDA con dataset de ejemplo
Desarrolla el primer módulo funcional: pages/01_EDA.py
Requisitos funcionales:
1. Permite cargar un archivo CSV o Excel usando st.file_uploader
2. Si no se carga archivo, usa un dataset de ejemplo embebido (precipitación mensual en Sucre con 5 años de datos)
3. Muestra información básica del dataset: forma, tipos de datos, faltantes
4. Calcula estadísticos descriptivos: media, mediana, moda, desviación estándar, varianza, mínimo, máximo, cuartiles, sesgo, curtosis
5. Detecta valores atípicos usando IQR y Z-score
6. Genera visualizaciones:
- Histograma con densidad
- Boxplot
- Gráfico de dispersión (si hay dos variables numéricas)
- Heatmap de correlación (si hay múltiples variables)
7. Incluye una interpretación automática en lenguaje sencillo
Requisitos técnicos:
- El código debe estar completamente documentado
- Usa try-except para manejar errores gracefully
- Incluye comentarios explicando cada paso estadístico
- Usa st.cache_data para evitar recálculos innecesarios
Crea el archivo pages/01_EDA.py con este contenido.
Prompt 4. Refactorización del EDA hacia utils/
El módulo EDA funciona, pero ahora necesito refactorizarlo para hacerlo más profesional y reutilizable.
Por favor:
1. Crea el archivo utils/eda_utils.py con las siguientes funciones:
- cargar_datos(archivo): carga CSV o Excel y devuelve un DataFrame
- validar_datos(df): valida que el DataFrame no esté vacío y tenga columnas
- calcular_estadisticos_descriptivos(df, columna): calcula media, mediana, moda, desviación estándar, varianza, mínimo, máximo, cuartiles, sesgo, curtosis
- detectar_atipicos_iqr(df, columna): detecta valores atípicos usando el método IQR
- detectar_atipicos_zscore(df, columna, umbral=3): detecta valores atípicos usando Z-score
- calcular_correlacion(df, columnas): calcula matriz de correlación
- generar_histograma(df, columna): genera histograma con densidad usando plotly
- generar_boxplot(df, columna): genera boxplot usando plotly
- generar_scatter(df, col_x, col_y): genera gráfico de dispersión usando plotly
- generar_heatmap_correlacion(df, columnas): genera heatmap de correlación usando plotly
2. Cada función debe tener:
- Type hints completos
- Docstrings detallados (estilo Google)
- Manejo de errores con try-except
- Comentarios explicativos
3. Luego modifica pages/01_EDA.py para que importe y use estas funciones desde utils/eda_utils.py
4. Verifica que el módulo EDA sigue funcionando correctamente después de la refactorización
Crea utils/eda_utils.py y actualiza pages/01_EDA.py.
Prompt 5. Pruebas unitarias para el módulo EDA
Ahora necesito crear pruebas unitarias para las funciones de utils/eda_utils.py usando pytest.
Por favor:
1. Crea el archivo tests/test_eda_utils.py
2. Incluye pruebas para:
- test_cargar_datos_csv: crea un CSV temporal, cárgalo y verifica que el DataFrame tiene las columnas correctas
- test_calcular_estadisticos_descriptivos: verifica que las estadísticas calculadas son correctas para datos conocidos
- test_detectar_atipicos_iqr: crea un DataFrame con valores atípicos obvios y verifica que se detecten correctamente
- test_detectar_atipicos_zscore: verifica que se detecten valores atípicos con Z-score
- test_calcular_correlacion: verifica que la correlación entre dos variables perfectamente correlacionadas sea 1.0
3. Cada prueba debe usar datos sintéticos generados con numpy o pandas
4. Incluye fixtures de pytest para reutilizar datos de prueba
5. Ejecuta las pruebas con: pytest tests/test_eda_utils.py -v
6. Reporta cuántas pruebas pasaron y cuántas fallaron
Crea tests/test_eda_utils.py y ejecuta las pruebas.
Prompt 6. Desarrollo del módulo de probabilidad
Desarrolla el módulo de probabilidad y simulación: pages/02_probabilidad.py
Requisitos funcionales:
1. Permite al usuario seleccionar un tipo de evento agrícola:
- Probabilidad de déficit hídrico (precipitación < umbral)
- Probabilidad de lluvias intensas (precipitación > umbral)
- Probabilidad de falla en sistema de riego
2. Permite cargar datos históricos o usar datos de ejemplo (precipitación diaria de 10 años)
3. Calcula:
- Probabilidad empírica (frecuencia relativa)
- Probabilidad teórica usando distribuciones apropiadas
- Intervalos de confianza para la probabilidad
4. Incluye una sección de simulación Monte Carlo:
- Permite al usuario definir parámetros (distribución, número de simulaciones)
- Simula eventos y muestra la distribución de resultados
- Compara frecuencia relativa vs probabilidad teórica
5. Visualizaciones:
- Histograma de datos históricos con densidad teórica
- Gráfico de simulación Monte Carlo
- Convergencia de la ley de los grandes números
6. Incluye interpretación automática
Requisitos técnicos:
- Crea utils/probability_utils.py con funciones reutilizables
- Usa numpy para simulaciones
- Documenta completamente
- Incluye dataset de ejemplo embebido
Crea pages/02_probabilidad.py y utils/probability_utils.py.
Prompt 7. Desarrollo del módulo de distribuciones
Desarrolla el módulo de ajuste de distribuciones: pages/03_distribuciones.py
Este módulo debe tener estas secciones usando st.tabs:
1. Distribuciones discretas:
- Bernoulli, Binomial, Poisson
- Permite al usuario seleccionar distribución y ajustar parámetros
- Muestra PMF, CDF, media, varianza
- Ejemplo: número de días de lluvia por semana
2. Distribuciones continuas:
- Normal, Lognormal, Exponencial, Gamma, Weibull
- Permite cargar datos (precipitación máxima anual, caudales)
- Ajusta distribución usando MLE
- Muestra PDF, CDF, Q-Q plot
- Pruebas de bondad de ajuste: KS, Anderson-Darling
3. Distribuciones de valores extremos:
- Gumbel, Pearson III
- Permite calcular periodos de retorno
- Ejemplo: precipitación máxima para periodo de retorno de 50 años
4. Comparación de distribuciones:
- Ajusta múltiples distribuciones automáticamente usando fitter
- Compara usando AIC, BIC, KS, AD
- Muestra tabla comparativa
- Recomienda la mejor distribución
Requisitos técnicos:
- Crea utils/distributions_utils.py con funciones para:
- ajustar_distribucion(datos, distribucion)
- calcular_bondad_ajuste(datos, distribucion)
- comparar_distribuciones(datos, lista_distribuciones)
- generar_qq_plot(datos, distribucion)
- calcular_periodo_retorno(datos, distribucion, periodo)
- Usa la librería fitter para ajuste automático
- Documenta completamente cada función explicando las fórmulas
Crea pages/03_distribuciones.py y utils/distributions_utils.py.
Prompt 8. Refactorización del módulo de distribuciones
El módulo de distribuciones funciona, pero necesito refactorizarlo para hacerlo más modular.
Por favor:
1. Divide utils/distributions_utils.py en archivos más específicos:
- utils/dist_discrete.py: funciones para distribuciones discretas
- utils/dist_continuous.py: funciones para distribuciones continuas
- utils/dist_extreme.py: funciones para distribuciones de valores extremos
- utils/dist_comparison.py: funciones para comparación de distribuciones
2. Cada archivo debe tener funciones tipadas y documentadas
3. Actualiza pages/03_distribuciones.py para usar estos nuevos módulos
4. Asegúrate de que todo siga funcionando correctamente
Crea los nuevos archivos en utils/ y actualiza pages/03_distribuciones.py.
Prompt 9. Desarrollo del módulo de regresión simple
Desarrolla el módulo de regresión lineal simple: pages/04_regresion_simple.py
Requisitos funcionales:
1. Permite cargar datos o usar dataset de ejemplo (rendimiento vs lámina de riego)
2. Permite seleccionar variable respuesta (Y) y variable predictora (X)
3. Calcula correlación Pearson y Spearman
4. Ajusta modelo de regresión lineal simple usando statsmodels
5. Muestra:
- Coeficientes (intercepto, pendiente)
- R², R² ajustado
- Errores estándar
- p-valores
- Intervalos de confianza 95%
6. Genera gráfica de dispersión con recta de ajuste e intervalos de confianza
7. Diagnóstico de supuestos:
- Residuos vs ajustados
- Q-Q plot de residuos
- Prueba de Shapiro-Wilk para normalidad
- Prueba de Breusch-Pagan para homocedasticidad
8. Permite hacer predicciones con intervalos de confianza
9. Incluye interpretación automática
Requisitos técnicos:
- Crea utils/regression_utils.py con funciones para:
- calcular_correlacion(x, y)
- ajustar_regresion_simple(x, y)
- generar_tabla_regresion(modelo)
- diagnosticar_supuestos(modelo)
- predecir(modelo, x_nuevo)
- Documenta completamente
- Incluye dataset de ejemplo embebido
Crea pages/04_regresion_simple.py y utils/regression_utils.py.
Prompt 10. Desarrollo del módulo de regresión múltiple
Desarrolla el módulo de regresión múltiple: pages/05_regresion_multiple.py
Requisitos funcionales:
1. Permite cargar datos o usar dataset de ejemplo (rendimiento vs riego, variables de suelo, clima)
2. Permite seleccionar variable respuesta y múltiples variables predictoras
3. Construye fórmula dinámicamente
4. Ajusta modelo usando statsmodels
5. Muestra:
- Coeficientes con errores estándar y p-valores
- R², R² ajustado
- F-statistic
- AIC, BIC
6. Diagnóstico:
- VIF para detectar multicolinealidad
- Distancia de Cook para detectar observaciones influyentes
- Residuos vs ajustados
- Q-Q plot
7. Selección de modelos:
- Comparación de modelos con diferentes combinaciones de predictores
- Tabla comparativa con AIC, BIC, R² ajustado
8. Validación cruzada con scikit-learn
9. Gráficas de residuos parciales
Requisitos técnicos:
- Agrega funciones a utils/regression_utils.py:
- ajustar_regresion_multiple(df, col_y, cols_x)
- calcular_vif(df, cols_x)
- detectar_influyentes(modelo)
- comparar_modelos(df, col_y, lista_modelos)
- validacion_cruzada(modelo, X, y, cv=5)
- Documenta completamente
Crea pages/05_regresion_multiple.py y actualiza utils/regression_utils.py.
Prompt 11. Desarrollo del módulo de regresión no lineal y LOESS
Desarrolla el módulo de regresión no lineal y LOESS: pages/06_regresion_no_lineal.py
Requisitos funcionales:
1. Permite cargar datos o usar dataset de ejemplo (respuesta a fertilización)
2. Modelos no lineales:
- Logístico: y = a / (1 + exp(-b*(x-c)))
- Exponencial: y = a * exp(b*x)
- Potencial: y = a * x^b
- Usa scipy.optimize.curve_fit
3. Ajuste LOESS/LOWESS:
- Usa statsmodels.nonparametric
- Permite ajustar el parámetro de suavizado
4. Comparación de modelos:
- AIC, BIC
- R²
- Error de predicción
5. Visualizaciones:
- Datos con curvas ajustadas superpuestas
- Comparación visual de modelos
6. Interpretación de parámetros en contexto agrícola
Requisitos técnicos:
- Agrega funciones a utils/regression_utils.py:
- ajustar_modelo_no_lineal(x, y, tipo_modelo)
- ajustar_loess(x, y, frac=0.5)
- comparar_modelos_no_lineales(x, y, lista_modelos)
- Documenta completamente explicando las fórmulas
Crea pages/06_regresion_no_lineal.py y actualiza utils/regression_utils.py.
Prompt 12. Desarrollo del módulo de series de tiempo: exploración
Desarrolla el módulo de series de tiempo con pestaña de exploración: pages/07_series_tiempo.py
Pestaña 1: Exploración
Requisitos funcionales:
1. Permite cargar datos o usar dataset de ejemplo (precipitación mensual de 20 años)
2. Convierte índice a datetime
3. Grafica serie temporal con tendencia
4. Descomposición clásica:
- Tendencia
- Estacionalidad
- Residuo
- Usa statsmodels.tsa.seasonal
5. Autocorrelación (ACF) y autocorrelación parcial (PACF)
6. Prueba de estacionariedad (ADF - Augmented Dickey-Fuller)
7. Interpretación automática de cada componente
Requisitos técnicos:
- Crea utils/timeseries_utils.py con funciones para:
- cargar_serie_tiempo(df, col_fecha, col_valor)
- descomponer_serie(serie, modelo='additive')
- calcular_acf_pacf(serie, lags=40)
- prueba_estacionariedad(serie)
- graficar_serie(serie)
- graficar_descomposicion(descomposicion)
- graficar_acf_pacf(acf, pacf)
- Documenta completamente
Crea pages/07_series_tiempo.py y utils/timeseries_utils.py.
Prompt 13. Desarrollo del módulo de series de tiempo: pronóstico
Continúa el módulo de series de tiempo con pestaña de pronóstico: pages/07_series_tiempo.py
Pestaña 2: Pronóstico
Requisitos funcionales:
1. Partición temporal (train/test) - 80/20 por defecto
2. Modelos disponibles:
- Media móvil simple
- Suavización exponencial simple
- Holt (tendencia)
- Holt-Winters (tendencia + estacionalidad)
- ARIMA automático con pmdarima.auto_arima
3. Comparación de modelos:
- Métricas: MAE, RMSE, MAPE
- Tabla comparativa
4. Pronóstico:
- Permite seleccionar número de periodos a pronosticar
- Muestra pronóstico con intervalos de confianza
- Gráfica de pronóstico vs datos históricos
5. Validación fuera de muestra
6. Exportación de pronóstico a CSV
Requisitos técnicos:
- Agrega funciones a utils/timeseries_utils.py:
- particion_temporal(serie, prop_train=0.8)
- ajustar_media_movil(serie, ventana)
- ajustar_suavizacion_exponencial(serie, modelo='add')
- ajustar_holt_winters(serie, seasonal_periods)
- ajustar_arima(serie)
- calcular_metricas(y_real, y_pred)
- generar_pronostico(modelo, pasos)
- comparar_modelos_series(serie, lista_modelos)
- Usa pmdarima para ARIMA automático
- Documenta completamente
Actualiza pages/07_series_tiempo.py y utils/timeseries_utils.py.
Prompt 14. Módulo de diagnóstico de supuestos transversal
Necesito agregar un módulo de diagnóstico de supuestos que pueda reutilizarse en todos los módulos de regresión.
Por favor:
1. Crea utils/diagnostics_utils.py con funciones para:
- calcular_residuos(modelo): extrae los residuos del modelo
- graficar_residuos_vs_ajustados(residuos, ajustados): genera gráfica de residuos vs valores ajustados
- graficar_qq_plot(residuos): genera un QQ-plot
- prueba_shapiro_wilk(residuos): realiza la prueba de Shapiro-Wilk para normalidad
- prueba_breusch_pagan(modelo): realiza la prueba de Breusch-Pagan para homocedasticidad
- prueba_durbin_watson(residuos): realiza la prueba de Durbin-Watson para independencia
- calcular_vif(df, columnas): calcula VIF para multicolinealidad
- calcular_cook_distance(modelo): calcula distancia de Cook para influencia
- generar_diagnostico_completo(modelo, df, columnas): integra todas las funciones anteriores
2. Cada función debe:
- Tener type hints completos
- Tener docstrings detallados
- Devolver tanto las gráficas (plotly) como los resultados numéricos (DataFrame)
- Incluir interpretación automática de los p-valores
3. Crea un componente reutilizable components/diagnostico.py que pueda insertarse en cualquier módulo usando st.expander
4. Agrega este componente a pages/04_regresion_simple.py, pages/05_regresion_multiple.py y pages/06_regresion_no_lineal.py
Crea utils/diagnostics_utils.py, components/diagnostico.py y actualiza los módulos correspondientes.
Prompt 15. Validaciones y mensajes de error amigables
Necesito mejorar la app para que sea más robusta agregando validaciones completas.
Por favor:
1. Crea utils/validation_utils.py con funciones para:
- validar_archivo_vacio(archivo): verifica que el archivo no esté vacío
- validar_columnas_seleccionadas(**kwargs): verifica que se hayan seleccionado todas las columnas necesarias
- validar_variable_respuesta_numerica(df, col_respuesta): verifica que la variable de respuesta sea numérica
- validar_datos_faltantes(df): verifica que no haya datos faltantes o los maneja apropiadamente
- validar_nombres_columnas(df): verifica que los nombres de columnas no tengan espacios ni caracteres especiales
- validar_serie_tiempo(df, col_fecha): verifica que la columna de fecha sea convertible a datetime
- validar_estacionariedad(serie): advierte si la serie no es estacionaria
2. Cada función debe:
- Devolver un booleano indicando si la validación pasó
- Devolver un mensaje de error claro y pedagógico si la validación falla
- Usar st.error o st.warning para mostrar los mensajes en la app
3. Integra estas validaciones en todos los módulos (EDA, Probabilidad, Distribuciones, Regresión, Series de Tiempo)
4. Los mensajes de error deben ser en español y explicar claramente qué debe corregir el usuario
Crea utils/validation_utils.py y actualiza todos los módulos para usar estas validaciones.
Prompt 16. Funcionalidad de exportación completa
Necesito agregar funcionalidad de exportación a todos los módulos.
Por favor:
1. Crea utils/export_utils.py con funciones para:
- exportar_estadisticos_excel(df_estadisticos, nombre_archivo): exporta estadísticos descriptivos a Excel
- exportar_tabla_regresion_excel(tabla_regresion, nombre_archivo): exporta tabla de regresión a Excel
- exportar_pronostico_excel(df_pronostico, nombre_archivo): exporta pronóstico a Excel
- exportar_comparacion_distribuciones_excel(df_comparacion, nombre_archivo): exporta comparación de distribuciones a Excel
- exportar_figura_png(fig, nombre_archivo): exporta una figura de plotly a PNG usando kaleido
- exportar_figura_pdf(fig, nombre_archivo): exporta una figura de plotly a PDF usando kaleido
- exportar_reporte_markdown(resultados, nombre_archivo): genera un reporte en Markdown con los resultados
2. Cada función debe:
- Usar BytesIO para generar archivos en memoria
- Devolver un objeto que pueda ser usado con st.download_button
- Incluir formato condicional en los archivos Excel (ej: resaltar p-valores < 0.05 en rojo)
3. Agrega botones de descarga en todos los módulos para:
- Estadísticos descriptivos
- Tablas de regresión
- Pronósticos
- Comparaciones de distribuciones
- Figuras principales (PNG y PDF)
- Reporte completo en Markdown
Crea utils/export_utils.py y actualiza todos los módulos para incluir los botones de descarga.
Prompt 17. Módulo de bitácora de IA
Necesito crear un módulo especial para la bitácora de IA y reserva cognitiva: pages/08_bitacora.py
Este módulo debe permitir al estudiante registrar:
1. Información del análisis:
- Tipo de análisis (EDA, distribución, regresión, series de tiempo)
- Problema de ingeniería abordado
- Fecha
2. Reserva cognitiva (antes de la IA):
- Hipótesis o predicciones manuales
- Cálculos esenciales realizados a mano
- Expectativas sobre los resultados
3. Interacción con IA:
- Prompt utilizado
- Modelo de IA usado (Copilot, ChatGPT, etc.)
- Contexto proporcionado al agente
- Iteraciones necesarias
4. Auditoría humana:
- Verificación de resultados (Python vs R vs manual)
- Diagnóstico de supuestos realizado
- Modificaciones al código sugerido por la IA
- Interpretación ingenieril final
5. Exportación:
- Guardar bitácora en JSON
- Descargar bitácora como archivo
Requisitos técnicos:
- Usa st.session_state para mantener el estado
- Permite agregar múltiples entradas de bitácora
- Muestra historial de bitácoras anteriores
- Documenta completamente
Crea pages/08_bitacora.py.
Prompt 18. README completo y profesional
Necesito que actualices el README.md para que sea completo y profesional.
Por favor incluye:
1. Título del proyecto con badge de versión
2. Descripción general del proyecto
3. Objetivo académico
4. Lista de módulos implementados (EDA, Probabilidad, Distribuciones, Regresión, Series de Tiempo)
5. Tecnologías usadas (Python, Streamlit, pandas, statsmodels, plotly, etc.)
6. Estructura del proyecto (árbol de carpetas)
7. Instalación paso a paso:
- Clonar el repositorio
- Crear entorno virtual
- Activar entorno virtual
- Instalar dependencias
- Ejecutar la app
8. Ejemplos de uso con capturas de pantalla (placeholders)
9. Sección especial sobre "Ética, Reserva Cognitiva y Uso de IA"
10. Limitaciones actuales
11. Posibles mejoras futuras
12. Créditos del grupo
13. Referencias bibliográficas (Wickham, McKinney, Hyndman, Montgomery, etc.)
14. Licencia
El tono debe ser académico, claro y profesional.
Actualiza README.md con este contenido.
Prompt 19. Preparación para GitHub y despliegue
Necesito preparar el proyecto para subirlo a GitHub y desplegarlo en Streamlit Community Cloud.
Por favor:
1. Verifica que .gitignore esté completo y correcto
2. Dame los comandos de Git para:
- Inicializar el repositorio: git init
- Agregar todos los archivos: git add .
- Hacer el primer commit: git commit -m "Initial commit"
- Crear un repositorio remoto en GitHub (instrucciones manuales)
- Conectar el repositorio local con el remoto: git remote add origin <url>
- Hacer push: git push -u origin main
3. Explica cómo desplegar la app en Streamlit Community Cloud:
- Requisitos previos (cuenta de GitHub, cuenta de Streamlit Cloud)
- Pasos para conectar el repositorio
- Selección del archivo principal (app.py)
- Verificación del requirements.txt
- Posibles errores comunes y cómo solucionarlos
4. Si hay errores de dependencias en Streamlit Cloud (especialmente con pmdarima, fitter o kaleido), explica cómo solucionarlos
Ejecuta los comandos de Git necesarios y proporciona las instrucciones de despliegue.
Prompt 20. Preparación de la sustentación
Necesito preparar la sustentación final del proyecto.
Por favor organiza un guion para una presentación de 15 minutos con esta estructura:
1. Presentación del grupo (1 min)
2. Problema académico que resuelve la app (2 min)
3. Módulos estadísticos implementados (2 min)
4. Estructura técnica del proyecto (muestra el árbol de carpetas) (2 min)
5. Demostración en vivo de la app (3 min):
- Cargar un dataset agrícola
- Realizar EDA completo
- Ajustar una distribución (ej: Gumbel para precipitación)
- Construir un modelo de regresión
- Pronosticar serie de tiempo
6. Ejemplo de análisis completo con interpretación estadística (2 min)
7. Explicación de cómo la app fomenta la reserva cognitiva y el uso ético de IA (1 min)
8. Dificultades encontradas y cómo se resolvieron (1 min)
9. Mejoras futuras (1 min)
Divide el guion entre los integrantes del grupo (asume 3 integrantes).
Incluye qué debe decir cada integrante y qué debe mostrar en la app.
Genera el guion completo en formato Markdown.
Prompt 21. Revisión final antes de entregar
Actúa como un evaluador experto del proyecto final.
Voy a pegarte la siguiente información:
1. La estructura de carpetas del proyecto
2. El contenido del README.md
3. El archivo requirements.txt
4. El código principal de app.py
5. El código de uno de los módulos (por ejemplo, pages/01_EDA.py)
6. El enlace al repositorio de GitHub (si lo tengo)
7. El enlace a la app desplegada (si lo tengo)
Por favor revisa:
- Organización del proyecto
- Calidad del código (PEP-8, type hints, docstrings)
- Modularidad y reutilización de funciones
- Claridad de los comentarios
- Correctitud estadística de los análisis
- Funcionamiento en Streamlit
- Posibles errores o mejoras
Devuélveme una lista priorizada de correcciones y mejoras necesarias antes de entregar.
[El estudiante pegará aquí la información solicitada]
Prompt 22. Error de importación
Me aparece este error al ejecutar la app:
ModuleNotFoundError: No module named 'utils.eda_utils'
Esta es mi estructura de carpetas:
[El estudiante pegará aquí la estructura]
Este es el archivo desde donde intento importar:
[El estudiante pegará aquí el código]
Por favor:
1. Diagnostica el problema
2. Explica si necesito agregar archivos __init__.py
3. Explica si debo modificar sys.path
4. Explica si Streamlit está causando el error al cambiar el directorio de trabajo
5. Dame la solución exacta
Corrige el problema.
Prompt 23. Error estadístico en ajuste de distribución
Al ajustar una distribución Gamma con fitter, el modelo no converge o da parámetros inválidos.
Este es mi dataframe (primeras filas):
[El estudiante pegará aquí el dataframe]
Este es el código:
[El estudiante pegará aquí el código]
Este es el error completo:
[El estudiante pegará aquí el error]
Por favor:
1. Revisa la matemática de la estimación por MLE
2. Explica qué estaba mal desde el punto de vista estadístico
3. Explica qué estaba mal desde el punto de vista de Python
4. Corrige el código
5. Explica cómo evitar este error en el futuro (posibles causas: datos negativos, soporte incorrecto, valores atípicos)
Corrige el problema.
Prompt 24. Error en series de tiempo
Al ajustar ARIMA con pmdarima, la serie no es estacionaria o el modelo no converge.
Este es mi código:
[El estudiante pegará aquí el código]
Esta es mi serie (primeras filas):
[El estudiante pegará aquí la serie]
Este es el error:
[El estudiante pegará aquí el error]
Por favor:
1. Revisa si necesito diferenciar la serie
2. Revisa si necesito transformar (Box-Cox)
3. Revisa si necesito manejar estacionalidad
4. Corrige el código
5. Explica el diagnóstico
Corrige el problema.
Prompt 25. Error en Streamlit Cloud
La app funciona localmente pero falla en Streamlit Cloud con este error:
[El estudiante pegará aquí el error completo]
Este es mi requirements.txt:
[El estudiante pegará aquí el requirements.txt]
Esta es mi estructura de archivos:
[El estudiante pegará aquí la estructura]
Por favor:
1. Diagnostica la causa del error
2. Explica si es un problema de dependencias del sistema (compiladores para pmdarima, librerías C)
3. Explica si es un problema de versión de Python
4. Explica si faltan archivos en el repositorio
5. Dame la solución exacta
Corrige el problema.
Gestión del Modo Agente Gratuito: El modo agente de GitHub Copilot tiene límites de uso en la versión gratuita. Recomiende a sus estudiantes:
Contexto del Workspace: El modo agente de VSCode tiene acceso a todo el workspace. Aproveche esto pidiendo a los estudiantes que:
Iteración y Refinamiento: El modo agente puede iterar sobre el código. Enseñe a los estudiantes a:
Bitácora de IA Obligatoria: Insista en que los
estudiantes mantengan una bitácora de los prompts usados y las
respuestas del agente, tal como lo establece su plan de estudios. El
módulo pages/08_bitacora.py es fundamental.
Validación Manual: En cada módulo, incluya un espacio donde el estudiante ingrese cálculos manuales (ej. media, varianza, coeficiente de correlación) y la app los compare con los computacionales. Esto refuerza la reserva cognitiva.
Dualidad Python-R: Aunque la app está en Python,
recomiende a los estudiantes que validen los resultados clave con R
(usando tidyverse, ggplot2,
forecast, etc.) para reforzar el aprendizaje
bilingüe.
Datos Agrícolas Contextualizados: Insista en que los datasets de ejemplo sean reales o simulados pero verosímiles de la región (Sucre, Córdoba, sabanas): precipitación del Caribe colombiano, caudales del río San Jorge, rendimientos de maíz y yuca, etc.