“Actúa como un Ingeniero de Datos Senior y Tutor Experto en Estadística, Python, R y Streamlit. Todo el código debe cumplir PEP-8, incluir type hints, docstrings estilo Google, y estar estrictamente modularizado. Prioriza
st.session_statepara evitar recálculos y@st.cache_datapara datos. Cada módulo estadístico debe incluir unst.toggleque muestre el código equivalente en R para refuerzo bilingüe. Responde siempre en español.”
Prompt 4. Página principal y navegación moderna >
“Crea app.py usando st.navigation y
st.Page. La página de inicio (home.py) debe
incluir: título, propósito académico, advertencia sobre interpretación
de resultados, y una sección especial ‘Reserva Cognitiva y Ética’ que
explique por qué la app no reemplaza el cálculo manual ni el criterio
del ingeniero. Incluye un enlace al manifiesto ético y a la bitácora de
IA. Usa st.set_page_config con tema visual profesional y
documenta todo el código.”
Prompt 5. Módulo EDA con gestión de estado y puente
R-Python > “Desarrolla modules/01_eda.py. Debe
permitir: 1) Cargar CSV/Excel con datos agrícolas (humedad,
precipitación, evapotranspiración, caudal, rendimiento). 2) Mostrar
diccionario de datos y perfil con pandas-profiling o
ydata-profiling. 3) Detectar faltantes, duplicados y
atípicos. 4) Calcular medidas de tendencia central, posición,
dispersión, sesgo y curtosis. 5) Visualizaciones: histogramas, boxplots,
scatter matrix, heatmap de correlación. Requisitos
profesionales: 1) Usa st.session_state para el
dataframe. 2) Incluye st.toggle('Ver código R') con
tidyverse y ggplot2. 3) Incluye un dataset de
ejemplo (ej. precipitación mensual en Sucre).”
Prompt 6. Refactorización hacia utils/ y pruebas
unitarias > “Refactoriza la lógica del EDA. Crea
utils/eda_utils.py con funciones tipadas para: cargar
datos, detectar faltantes, calcular estadísticos descriptivos, detectar
atípicos (IQR y Z-score), y generar visualizaciones. Luego crea
tests/test_eda_utils.py con pytest para probar
al menos 4 funciones con datos simulados. Explica cómo ejecutar las
pruebas.”
Prompt 7. Componente reutilizable de visualización
> “Crea components/visualizacion.py con funciones
reutilizables que generen gráficos con plotly y
seaborn: histograma con densidad, boxplot por grupo,
scatter con recta de ajuste, heatmap de correlación, y gráfico de
dispersión con LOESS. Cada función debe aceptar un dataframe, columnas y
parámetros de estilo. Documenta con ejemplos de uso.”
Prompt 8. Módulo de probabilidad aplicada >
“Desarrolla modules/02_probabilidad.py. Debe cubrir: 1)
Espacio muestral y eventos. 2) Probabilidad condicional e independencia.
3) Regla de Bayes. 4) Simulación de eventos agrícolas: probabilidad de
déficit hídrico, ocurrencia de lluvias intensas (>90mm/día), fallas
en sistemas de riego. 5) Simulación Monte Carlo con numpy.
6) Ley de los grandes números visualizada. Incluye un
st.toggle con código R usando distr o
simulaciones base. Dataset: serie histórica de precipitación
diaria.”
Prompt 9. Módulo de simulación avanzada >
“Continúa modules/02_probabilidad.py con una pestaña de
simulación: 1) Simular rendimiento de cultivo bajo incertidumbre
climática. 2) Simular tiempo hasta falla de una bomba de riego
(distribución exponencial). 3) Comparar frecuencia relativa vs
probabilidad teórica. 4) Permitir al estudiante ingresar sus propios
parámetros y ver la distribución emergente. Muestra gráficos
interactivos con plotly.”
Prompt 10. Módulo de ajuste de distribuciones >
“Desarrolla modules/03_distribuciones.py. Estructura en
st.tabs: 1) Distribuciones discretas (Bernoulli, Binomial,
Poisson). 2) Distribuciones continuas (Normal, Lognormal, Gamma,
Exponencial, Weibull). 3) Distribuciones de valores extremos (Gumbel,
Pearson III). 4) Ajuste y comparación. Permite cargar datos
(precipitación máxima anual, caudales, rendimientos). Usa la librería
fitter para ajustar múltiples distribuciones
automáticamente. Muestra: histograma + densidad teórica, Q-Q plot, tabla
de parámetros estimados por MLE, y pruebas de bondad de ajuste (KS,
Anderson-Darling, Chi-cuadrado).”
Prompt 11. Refactorización del módulo de
distribuciones > “Refactoriza la lógica en
utils/distributions_utils.py con funciones para: estimar
parámetros por MLE, calcular estadísticos de prueba (KS, AD, Chi²),
generar Q-Q plots, y clasificar la mejor distribución. Usa
@st.cache_data para los ajustes. Incluye el código R
equivalente con fitdistrplus y MASS.”
Prompt 12. Módulo de distribuciones: visualización y
exportación > “Añade a
modules/03_distribuciones.py: 1) Pestaña de comparación
visual (múltiples distribuciones superpuestas). 2) Pestaña de
probabilidades y cuantiles (calcular P(X<x), percentiles, periodos de
retorno para Gumbel). 3) Exportación de figuras a PNG/PDF con
kaleido. 4) Exportación de tabla comparativa a Excel.”
Prompt 13. Módulo de regresión simple >
“Desarrolla modules/04_regresion_simple.py. Permite: 1)
Cargar datos (ej. rendimiento vs lámina de riego). 2) Calcular
correlación Pearson y Spearman. 3) Ajustar modelo OLS con
statsmodels. 4) Mostrar: coeficientes, IC 95%, R², R²
ajustado, p-valores. 5) Gráfica de dispersión con recta ajustada e IC.
6) Diagnóstico: residuos vs ajustados, QQ-plot, Shapiro-Wilk. 7)
Predicción con intervalo de confianza. Incluye código R con
lm().”
Prompt 14. Módulo de regresión múltiple >
“Desarrolla modules/05_regresion_multiple.py. Permite: 1)
Seleccionar variable respuesta y múltiples predictoras (riego, variables
de suelo, clima). 2) Construir fórmula dinámicamente. 3) Ajustar modelo
con statsmodels. 4) Mostrar: VIF para detectar
multicolinealidad, matriz de correlación, Cook’s distance para
influencia. 5) Selección de modelos con AIC/BIC. 6) Gráfica de residuos
parciales. 7) Validación cruzada con scikit-learn. Incluye
código R con car y MuMIn.”
Prompt 15. Módulo de regresión no lineal y LOESS
> “Desarrolla modules/06_regresion_no_lineal.py. Debe
cubrir: 1) Modelos no lineales (logístico, exponencial, potencial)
usando scipy.optimize.curve_fit. 2) Ajuste LOESS/LOWESS con
statsmodels.nonparametric. 3) Comparación AIC/BIC entre
modelos lineales y no lineales. 4) Visualización de curvas ajustadas
sobre datos. 5) Interpretación de parámetros en contexto agrícola (ej.
curva de respuesta a fertilización). Incluye código R con
nls() y loess().”
Prompt 16. Refactorización de módulos de regresión
> “Refactoriza la lógica de regresión en
utils/regression_utils.py con funciones para: ajustar OLS,
calcular VIF, detectar outliers (Cook), seleccionar modelos (AIC/BIC),
ajustar modelos no lineales, y aplicar LOESS. Crea
tests/test_regression_utils.py con pytest.
Reescribe los módulos 04, 05 y 06 usando estas funciones.”
Prompt 17. Módulo de series de tiempo: EDA temporal
> “Desarrolla modules/07_series_tiempo.py con pestaña
‘Exploración’. Permite cargar series agrícolas (precipitación, caudal,
evapotranspiración, producción). Debe: 1) Convertir índice a datetime.
2) Graficar serie con tendencia. 3) Descomposición clásica (tendencia,
estacionalidad, residuo) con statsmodels.tsa.seasonal. 4)
Autocorrelación (ACF) y autocorrelación parcial (PACF). 5) Prueba de
estacionariedad (ADF). Incluye código R con forecast y
tseries.”
Prompt 18. Módulo de series de tiempo: pronóstico
> “Continúa modules/07_series_tiempo.py con pestaña
‘Pronóstico’. Debe: 1) Partición temporal (train/test). 2) Ajustar
modelos: Media móvil, Suavización exponencial (Holt-Winters), ARIMA con
pmdarima.auto_arima. 3) Comparar métricas: MAE, RMSE, MAPE.
4) Graficar pronóstico con intervalos de confianza. 5) Validación fuera
de muestra. 6) Exportar pronóstico a CSV. Incluye código R con
forecast::auto.arima().”
Prompt 19. Refactorización de series de tiempo >
“Refactoriza la lógica en utils/timeseries_utils.py con
funciones para: descomposición, ACF/PACF, prueba ADF, ajuste de modelos
(Holt-Winters, ARIMA), cálculo de métricas, y generación de pronósticos.
Usa @st.cache_resource para los modelos ajustados. Crea
tests con pytest.”
Prompt 20. Diagnóstico de supuestos transversal >
“Crea utils/diagnostics_utils.py con funciones para:
normalidad (Shapiro-Wilk, QQ-plot), homocedasticidad (Breusch-Pagan,
Levene), independencia (Durbin-Watson), multicolinealidad (VIF), e
influencia (Cook). Crea components/diagnostico.py
reutilizable que se inserte en los módulos de regresión mediante
st.expander. Incluye interpretación pedagógica
automática.”
Prompt 21. Módulo de bitácora de IA y reserva
cognitiva > “Crea modules/08_bitacora.py. Esta
página permitirá al estudiante registrar: 1) El problema estadístico. 2)
Sus cálculos manuales o hipótesis previas (reserva cognitiva). 3) El
prompt usado con la IA. 4) La validación humana realizada. 5) Reflexión
sobre lo aprendido. Guarda la bitácora en JSON descargable. Incluye una
plantilla de protocolo de uso ético de IA.”
Prompt 22. Exportación de reportes completos >
“Crea utils/export_utils.py. Permite descargar: tablas de
estadísticos, resultados de ajuste de distribuciones, tablas de
regresión, pronósticos, y un reporte en Markdown que resuma el análisis.
Usa BytesIO y st.download_button. Los archivos
Excel deben tener formato condicional (resaltar p-valores <
0.05).”
Prompt 23. README académico y técnico > “Escribe
un README.md profesional. Debe incluir: título, badges,
descripción, objetivo académico, capturas de pantalla (placeholders),
instalación, ejecución, estructura del proyecto, tecnologías, sección
especial sobre ‘Ética, Reserva Cognitiva y Uso de IA’, y referencias
bibliográficas (Wickham, McKinney, Hyndman, Montgomery).”
Prompt 24. Preparación para GitHub y Streamlit Cloud
> “Dame el .gitignore exacto para Python, Streamlit y
entornos virtuales. Proporciona los comandos de Git para inicializar,
commit y push. Explica paso a paso cómo desplegar en Streamlit Community
Cloud, cómo solucionar errores comunes (especialmente con
pmdarima, fitter y kaleido en
Linux), y cómo configurar Secrets si es necesario.”
Prompt 25. Guion para sustentación final > “Organiza un guion para sustentación de 15 minutos. Estructura: 1) Problema agrícola analizado. 2) Arquitectura técnica. 3) Demostración en vivo de EDA, ajuste de distribución (Gumbel para precipitación) y pronóstico de serie temporal. 4) Explicación de cómo la app fomenta la reserva cognitiva. 5) Limitaciones y trabajo futuro. Divide el guion entre los integrantes.”
Prompt 26. Error de importación y estructura >
“Me aparece
ModuleNotFoundError: No module named 'utils...'. Esta es mi
estructura: [pegar]. Este es mi app.py: [pegar].
Diagnostica el problema. Explica si necesito __init__.py,
modificar sys.path, o si Streamlit está causando el error.
Dame la solución exacta.”
Prompt 27. Error estadístico en ajuste de
distribuciones > “Al ajustar una distribución Gamma con
fitter, el modelo no converge o da parámetros inválidos.
Este es mi dataframe: [pegar]. Este es el código: [pegar]. Revisa la
matemática de la estimación por MLE. Corrige el código y explica el
error estadístico (posibles causas: datos negativos, soporte incorrecto,
valores atípicos).”
Prompt 28. 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: [pegar]. Esta es mi serie:
[pegar]. Revisa si necesito diferenciar, transformar (Box-Cox), o
manejar estacionalidad. Corrige el código y explica el diagnóstico.”
Prompt 29. Error de despliegue en Streamlit Cloud
> “La app funciona localmente pero falla en Streamlit Cloud. Error:
[pegar]. Este es mi requirements.txt: [pegar]. Diagnostica
si es problema de dependencias del sistema (ej. compiladores para
pmdarima), versión de Python, o archivos faltantes. Dame la
solución exacta.”
Evaluación por Ejes: Le sugiero evaluar por hitos alineados con los ejes del plan: Eje II (EDA + Probabilidad), Eje III (Distribuciones), Eje IV (Regresión), Eje V (Series de Tiempo). Esto evita la sobrecarga al final del semestre.
Dualidad Python-R como Herramienta Pedagógica:
El st.toggle que muestra código R en cada módulo es
fundamental. Permite que el estudiante verifique resultados entre ambos
lenguajes, reforzando la comprensión estadística más allá de la
sintaxis.
Énfasis en 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. Esto ancla el aprendizaje en su contexto profesional.
Bitácora de IA Obligatoria: El módulo de bitácora no es opcional. Debe ser parte de la entrega final, pues cumple con el requisito de trazabilidad y ética del plan de estudios.
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.