APLICACIÓN PRÁCTICA: REGRESIÓN LOGÍSTICA EN EL SECTOR AGRÍCOLA
Un ejemplo práctico de
regresión logística, que es un método de aprendizaje supervisado utilizado para
modelar la probabilidad de una variable dependiente categórica. A diferencia de
la regresión lineal, que es adecuada para variables dependientes continuas, la
regresión logística se usa cuando la variable dependiente es binaria. En el
contexto agrícola, podemos usar la regresión logística para, por ejemplo,
predecir si un cultivo tendrá éxito o fracaso en función de diversas variables.
1. Conceptos Claves de la Regresión Logística
- **Variable Dependiente
Binaria**: La variable que estamos tratando de predecir es binaria (por
ejemplo, éxito o fracaso del cultivo).
- **Función
Logística/Sigmoide**: Se usa para modelar la probabilidad de que la variable
dependiente pertenezca a una de las categorías.
- **Odds Ratio**: El ratio de
probabilidades de que un evento ocurra contra que no ocurra.
- **Coeficientes**:
Representan el cambio en el logaritmo de odds por una unidad de cambio en la
variable independiente.
- **Estimación de Máxima
Verosimilitud**: Se utiliza para estimar los coeficientes del modelo.
2. Implementación de un Caso de Estudio con Datos Ficticios sobre el
Sector Agrícola
Supongamos que queremos
predecir el éxito (1) o fracaso (0) del cultivo de maíz basándonos en dos
variables: cantidad de fertilizante utilizado (kg/ha) y cantidad de agua
recibida (mm).
3. Interpretación de los Coeficientes y Evaluación del Modelo
Después de ajustar el modelo,
interpretaremos los coeficientes y evaluaremos el modelo utilizando métricas
como la precisión, la matriz de confusión, y la curva ROC.
Generación de Código Python para Visualizar las Gráficas
Implementaremos el modelo en
Python y usaremos matplotlib y seaborn para las visualizaciones.
Procederé ahora a generar el
conjunto de datos ficticios y a implementar el análisis:
### Interpretación de los
Coeficientes y Evaluación del Modelo
Los resultados de nuestro
modelo de regresión logística son los siguientes:
- **Coeficientes**:
- Fertilizante (kg/ha): 0.089
- Agua (mm): 0.092
- Intercepto: -27.15
Estos coeficientes implican que un incremento
en la cantidad de fertilizante o agua incrementa ligeramente la probabilidad de
éxito del cultivo. El intercepto negativo indica la probabilidad de éxito
cuando las cantidades de fertilizante y agua son cero.
- **Matriz de Confusión**:
- Verdaderos Negativos (Fracasos
correctamente identificados): 43
- Falsos Positivos (Fracasos incorrectamente
identificados como éxitos): 7
- Falsos Negativos (Éxitos incorrectamente
identificados como fracasos): 8
- Verdaderos Positivos (Éxitos correctamente
identificados): 42
- **Precisión**: 0.85 (85%),
lo que indica un buen nivel de precisión general del modelo.
- **AUC-ROC**: 0.957, que es
muy alto, sugiriendo que el modelo tiene una excelente capacidad para
distinguir entre cultivos exitosos y no exitosos.
Visualización de los Resultados
Vamos a visualizar la curva
ROC para entender mejor el rendimiento del modelo. Además, podemos hacer un
gráfico de las probabilidades de éxito en función de las variables
independientes para una mejor interpretación visual.
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, accuracy_score, roc_curve, auc
import seaborn as sns
# Generación de datos ficticios
np.random.seed(0)
fertilizante
= np.random.normal(200, 20, 100) # Fertilizante en kg/ha
agua =
np.random.normal(100, 30, 100) # Agua en mm
# Generamos un 'score' que depende de fertilizante y agua, y luego
decidimos que el cultivo es exitoso si el score supera un umbral
score = 0.3 * fertilizante + 0.4 * agua + np.random.normal(0, 10, 100)
exito_cultivo
= (score > np.percentile(score, 50)).astype(int) # 1 si es exitoso, 0 si es un fracaso
# Crear un DataFrame
datos_agricolas
= pd.DataFrame({
'Fertilizante (kg/ha)': fertilizante,
'Agua (mm)': agua,
'Exito Cultivo': exito_cultivo
})
En las visualizaciones anteriores, observamos dos aspectos importantes:
- En el primer gráfico (Probabilidad de
Éxito vs Fertilizante), se observa cómo cambia la probabilidad de éxito con
diferentes cantidades de fertilizante. Los puntos están coloreados según si el
cultivo fue realmente un éxito o un fracaso.
- En el segundo gráfico (Probabilidad de
Éxito vs Agua), la tendencia es similar pero con respecto a la cantidad de
agua.
# Visualización de la Curva ROC
plt.figure(figsize=(8, 6))
plt.plot(fpr,
tpr, color='blue', lw=2, label=f'ROC curve (area =
{auc_roc:.2f})')
plt.plot([0, 1], [0, 1], color='red', lw=2, linestyle='--', label='No Skill')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Curva ROC')
plt.legend(loc="lower right")
plt.grid(True)
plt.show()
# Visualización de las probabilidades en función de las variables independientes
# Creando una nueva columna para las probabilidades en el DataFrame
datos_agricolas['Probabilidad de Éxito'] = probabilidades
# Creando gráficos
plt.figure(figsize=(14, 6))
Aquí tienes la matriz de
confusión visualizada como un mapa de calor. En esta matriz:
- Las
celdas en la diagonal principal (de arriba a la izquierda a abajo a la
derecha) muestran el número de predicciones correctas: 43 cultivos
predichos correctamente como fracasos (verdaderos negativos) y 42 cultivos
predichos correctamente como éxitos (verdaderos positivos).
- Las
celdas fuera de la diagonal principal muestran las predicciones
incorrectas: 7 cultivos fueron incorrectamente predichos como éxitos
(falsos positivos) y 8 cultivos fueron incorrectamente predichos como
fracasos (falsos negativos).
Esta visualización proporciona una forma clara y
rápida de evaluar el rendimiento del modelo en términos de sus predicciones
correctas e incorrectas. Si hay algo más en lo que pueda ayudarte, házmelo
saber.
Conclusión
La gráfica muestra la relación entre la
probabilidad de éxito de un cultivo y la cantidad de fertilizante y agua
aplicada. La probabilidad de éxito aumenta con la cantidad de fertilizante
aplicada, pero es relativamente plana con la cantidad de agua aplicada. Esto
sugiere que el fertilizante es más importante que el agua para el éxito de un
cultivo.
Reflexión
Esta conclusión tiene implicaciones importantes
para la agricultura. Los agricultores pueden aumentar la probabilidad de éxito
de sus cultivos aplicando más fertilizante, incluso si la cantidad de agua
disponible es limitada. Esto es particularmente importante en las zonas áridas,
donde el agua es un recurso escaso.
https://chat.openai.com/share/31f29858-595e-4eb0-94cd-3f8afec42d6b
Bruno Rolando Aramayo Molina




Comentarios
Publicar un comentario