Para un ingeniero agrícola, R no es solo un programa de estadística, es una navaja suiza digital. La estadística descriptiva en R es el primer y más crítico paso para transformar datos del campo (suelo, clima, cultivos) en información accionable para la toma de decisiones.
Aquí te explico su estructura, ecuaciones clave y su interpretación específica en el contexto agropecuario.
En R, la descriptiva se divide en tres fases que siempre debes ejecutar en orden:
| Fase | Función en R | Objetivo en Ingeniería Agrícola |
|---|---|---|
| 1. Medidas de Centralización | mean(), median() |
Ubicar el “valor típico” del rendimiento (kg/ha), la temperatura media o el pH del suelo. |
| 2. Medidas de Dispersión | sd(), var(),
IQR() |
Medir la homogeneidad del terreno. Una desviación alta en nutrientes indica que necesitas riego/localizado o fertilización variable. |
| 3. Medidas de Forma (Distribución) | skewness(), kurtosis() |
Saber si los datos “se comportan bien” (normal) o si hay valores extremos (sequías, plagas, errores de sensor). |
| 4. Análisis Exploratorio Visual | boxplot(), hist(),
plot() |
Detectar patrones espaciales o temporales (ej. cómo sube la humedad tras un riego). |
Aquí están las fórmulas que R calcula por detrás y cómo las lees tú:
\[
\bar{x} = \frac{\sum_{i=1}^{n} x_i}{n}
\] * En R: mean(datos$rendimiento)
* Interpretación Agrícola: Si el rendimiento medio de
maíz es 9.2 t/ha, ese es tu punto de partida. Pero
ojo: si tu parcela tiene zonas encharcadas y zonas
secas, la media es un “promedio mentiroso”. No la uses sola.
\[
S = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n-1}}; \quad CV =
\left(\frac{S}{\bar{x}}\right) \times 100
\] * En R: sd(datos$humedad) y
(sd/mean)*100 * Interpretación Agrícola: *
Si el CV de la conductividad eléctrica (CE) es <
10%, tu suelo es eléctricamente uniforme (ideal para siembra directa). *
Si el CV de la altura de planta es > 30%, hay
competencia por luz o agua. En riego por goteo, buscas CV < 15% en el
diámetro del tallo.
\[
IQR = Q_3 - Q_1
\] * En R: summary(datos$ph) y
IQR(datos$ph) * Interpretación Agrícola:
El IQR te da el rango donde está el 50% central de tus
muestras. Si el pH ideal para tu cultivo es 6.5, y tu IQR está entre 5.8
y 6.2, estás dentro del margen. Si Q1 está por debajo de 5.5,
debes encalar esa zona sí o sí.
\[
\text{Skewness} = \frac{\sum (x_i - \bar{x})^3}{(n-1) \cdot S^3}
\] * En R:
library(e1071); skewness(datos$lluvia) *
Interpretación Agrícola: * Asimetría positiva
(>0): Pocos días con lluvias torrenciales y muchos días
secos. Esto indica que necesitas sistemas de drenaje
para evitar encharcamientos en esos picos. * Asimetría negativa
(<0): La mayoría de los días llueve moderadamente. Ideal
para cultivos de secano.
En Ingeniería Agrícola, un número no te dice dónde actuar; un gráfico sí.
Histograma + Curva de Densidad (hist() +
lines(density())): Úsalo para ver si los datos del
NDVI (Índice de Vegetación) son normales. Si ves dos
picos (bimodal), significa que tienes dos poblaciones dentro del mismo
campo: una zona con alta biomasa y otra con baja biomasa.
Conclusión: Debes manejar esa parcela en dos lotes de
riego diferenciados.
Boxplot (Diagrama de Cajas): Es tu mejor aliado. Los “puntos” fuera de los bigotes son valores atípicos.
Matriz de Correlación (cor() y
pairs()): No es estrictamente descriptiva, pero su
interpretación lo es.
cor(radiacion_solar, temperatura_suelo) = 0.85, hay
alta relación. Pero si cor(radiacion_solar, humedad_suelo)
= -0.70, significa que cuando el sol sube, la humedad baja rápidamente.
Conclusión: Necesitas mulching
(acolchado) para romper esa correlación negativa y conservar
agua.# Carga de datos de sensores
datos <- read.csv("campo_2025.csv")
# 1. Resumen numérico rápido (el más práctico)
summary(datos[, c("humedad", "temperatura", "rendimiento")])
# 2. Cálculo del Coeficiente de Variación para evaluar uniformidad de riego
cv_riego <- (sd(datos$caudal_emisor) / mean(datos$caudal_emisor)) * 100
if (cv_riego < 10) { print("Riego Excelente (USDA Standard)") } else { print("Revisar filtros y presión") }
# 3. Detección de zonas problemáticas (Outliers)
boxplot(datos$ce_suelo ~ datos$sector, main="Variabilidad de Salinidad por Sector")
# Si el sector 3 tiene la caja más alta, ese sector necesita lavado de sales (lixiviación).
# 4. Creación de categorías (Percentiles) para agricultura de precisión
cuantiles <- quantile(datos$materia_organica, probs = c(0, 0.33, 0.66, 1))
datos$zona_nutrientes <- cut(datos$materia_organica,
breaks = cuantiles,
labels = c("Baja", "Media", "Alta"))
# Ahora sabes dónde aplicar más compost y dónde menos.
La estadística descriptiva en R no es un fin en sí misma, es el diagnóstico del campo.
El verdadero arte del ingeniero agrícola en R consiste en: Al ver un CV > 20% en rendimiento, no pienses en “estadística”, piensa en “mapa de prescripción de siembra variable”. Al ver un outlier en humedad, piensa en “fuga en la cinta de riego”. R te da los números; tu conocimiento agronómico les da sentido.