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:

 1. **Curva ROC**: Esta curva muestra el rendimiento del modelo en términos de tasa de verdaderos positivos frente a la tasa de falsos positivos. El área bajo la curva (AUC) de 0.957 indica un excelente rendimiento del modelo. Una curva ROC perfecta seguiría el borde izquierdo hacia arriba y luego a lo largo del borde superior, mientras que una línea diagonal (No Skill) indica un rendimiento aleatorio.

 2. **Gráficos de Probabilidad de Éxito vs Variables Independientes**:

   - 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.

 Estos gráficos ayudan a visualizar cómo las probabilidades de éxito del cultivo varían con los niveles de fertilizante y agua, lo que refleja la capacidad predictiva del modelo.

 Este análisis y las visualizaciones proporcionan una comprensión clara de cómo la regresión logística puede ser utilizada en un contexto agrícola para predecir resultados binarios basados en variables independientes. Si necesitas más detalles o quieres realizar otro tipo de análisis, no dudes en pedirlo.

 

# 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

Entradas más populares de este blog

APLICACIÓN PRÁCTICA: REGRESIÓN LINEAL AL CULTIVO DE MAIZ

APLICACIÓN PRÁCTICA: ÁRBOLES DE DECISIÓN (APRENDIZAJE SUPERVISADO) EN LA CLASIFICACIÓN DE PLANTAS NATIVAS DE LOS ANDES DE BOLIVIA