La estadística descriptiva en R aplicada a la ingeniería agrícola es el uso de funciones, códigos y gráficos del lenguaje R para organizar, resumir, visualizar e interpretar datos provenientes de sistemas agrícolas, tales como:
Su objetivo principal no es predecir ni probar hipótesis, sino describir lo que ocurre en el campo para que el ingeniero agrícola pueda tomar decisiones técnicas.
Por ejemplo:
R permite hacer esto mediante funciones como mean(),
median(), sd(), var(),
quantile(), summary(), table(),
cor() y gráficos con ggplot2().
Un análisis descriptivo normalmente incluye las siguientes partes.
En agricultura, la unidad de análisis puede ser:
Ejemplo:
Si se evalúa rendimiento de maíz, la unidad puede ser una parcela de 10 m² o una hectárea.
Las variables pueden ser:
| Tipo de variable | Ejemplo agrícola |
|---|---|
| Cuantitativa continua | Rendimiento, pH, humedad, lámina de riego |
| Cuantitativa discreta | Número de frutos por planta, número de semillas |
| Categórica | Tipo de suelo, variedad, tratamiento de riego |
| Ordinal | Nivel de severidad de una plaga: baja, media, alta |
En R, estas variables pueden almacenarse como:
numeric() # variables numéricas
integer() # enteros
factor() # categorías
character() # texto
Date() # fechas
Los datos normalmente se organizan en una tabla donde cada fila es una observación y cada columna es una variable.
Ejemplo:
| lote | tratamiento | rendimiento_ton_ha | humedad_suelo | pH | NDVI |
|---|---|---|---|---|---|
| P1 | Riego A | 10.2 | 22.5 | 6.1 | 0.72 |
| P2 | Riego B | 9.6 | 20.1 | 5.8 | 0.68 |
| P3 | Riego A | 11.1 | 24.3 | 6.3 | 0.78 |
En R, esto puede ser un data.frame o un
tibble.
Sirven para variables categóricas o discretas.
Ejemplo:
En R:
table(datos$suelo)
prop.table(table(datos$suelo)) * 100
Incluyen:
Los gráficos permiten detectar patrones, errores y valores atípicos.
Gráficos comunes en ingeniería agrícola:
| Gráfico | Uso agrícola |
|---|---|
| Histograma | Distribución de rendimientos o tamaño de frutos |
| Boxplot | Comparar tratamientos o detectar lotes atípicos |
| Diagrama de dispersión | Relación entre NDVI y rendimiento |
| Gráfico de barras | Frecuencia de tipos de suelo o plagas |
| Mapa de calor | Variables climáticas por día |
En R:
library(ggplot2)
ggplot(datos, aes(x = rendimiento_ton_ha)) +
geom_histogram(binwidth = 0.25, fill = "green", color = "black") +
labs(title = "Distribución del rendimiento",
x = "Rendimiento (ton/ha)",
y = "Frecuencia")
A continuación se presentan las ecuaciones más usadas en estadística descriptiva, su función en R y su interpretación agrícola.
Sea una variable categórica o discreta, la frecuencia absoluta de una categoría es:
\[ n_i = \text{número de observaciones en la categoría } i \]
Ejemplo:
Número de parcelas con pH ácido.
\[ f_i = \frac{n_i}{n} \]
donde:
\[ \%_i = 100 \cdot \frac{n_i}{n} \]
Si de 100 parcelas, 35 tienen pH menor a 5.5:
\[ \% = \frac{35}{100} \cdot 100 = 35\% \]
Esto indica que el 35% del área muestreada tiene acidez elevada, lo cual puede justificar una estrategia de encalado variable.
En R:
table(datos$pH_acido)
prop.table(table(datos$pH_acido)) * 100
Las medidas de tendencia central indican cuál es el valor típico o central de los datos.
La media muestral se calcula como:
\[ \bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i \]
donde:
En R:
media <- mean(datos$rendimiento_ton_ha, na.rm = TRUE)
Si el rendimiento promedio de maíz es:
\[ \bar{x} = 9.8 \text{ ton/ha} \]
El ingeniero puede usar este valor para:
Pero debe tener cuidado: la media es sensible a valores extremos.
Por ejemplo, si un lote tiene una zona inundada con rendimiento muy bajo, el promedio puede disminuir demasiado y no representar bien la mayor parte del campo.
Primero se ordenan los datos:
\[ x_{(1)} \leq x_{(2)} \leq \cdots \leq x_{(n)} \]
La mediana se define como:
\[ \tilde{x} = \begin{cases} x_{((n+1)/2)}, & \text{si } n \text{ es impar} \\ \frac{x_{(n/2)} + x_{(n/2+1)}}{2}, & \text{si } n \text{ es par} \end{cases} \]
En R:
mediana <- median(datos$rendimiento_ton_ha, na.rm = TRUE)
La mediana indica el valor central de los datos.
Si:
\[ \text{Media} = 8.2 \text{ ton/ha} \]
pero:
\[ \text{Mediana} = 9.6 \text{ ton/ha} \]
Esto puede indicar que hay pocas parcelas con rendimientos muy bajos, quizás por encharcamiento, plagas o compactación.
La mediana es más robusta que la media cuando hay valores atípicos.
En agricultura, esto es útil cuando:
La moda es el valor o categoría más frecuente.
\[ Mo = x_i \quad \text{tal que} \quad f_i \text{ es máxima} \]
Para variables continuas, en lugar de un valor exacto, se suele usar un intervalo o clase modal.
En R, para variables categóricas:
tabla <- table(datos$variedad)
tabla[tabla == max(tabla)]
Si la variedad más frecuente es:
\[ Mo = \text{Variedad B} \]
Esto puede indicar preferencia de siembra, disponibilidad de semilla o mejor adaptación.
En postcosecha, la moda del tamaño de fruto sirve para:
Las medidas de dispersión indican qué tan variados están los datos. En ingeniería agrícola son muy importantes porque la variabilidad puede representar:
\[ R = x_{\max} - x_{\min} \]
En R:
rango <- max(datos$rendimiento_ton_ha, na.rm = TRUE) -
min(datos$rendimiento_ton_ha, na.rm = TRUE)
Si el rendimiento mínimo es 5 ton/ha y el máximo es 12 ton/ha:
\[ R = 12 - 5 = 7 \text{ ton/ha} \]
Esto indica una diferencia amplia entre las mejores y peores zonas del lote.
Puede servir para identificar:
La varianza muestral se calcula como:
\[ s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2 \]
donde:
En R:
varianza <- var(datos$rendimiento_ton_ha, na.rm = TRUE)
La varianza mide la dispersión de los datos respecto al promedio.
Una varianza alta en rendimiento puede indicar:
La desventaja es que la varianza está en unidades al cuadrado.
Por ejemplo, si la variable es rendimiento en ton/ha:
\[ s^2 \text{ está en } \left(\text{ton/ha}\right)^2 \]
Por eso suele usarse más la desviación estándar.
\[ s = \sqrt{s^2} \]
En R:
desviacion <- sd(datos$rendimiento_ton_ha, na.rm = TRUE)
La desviación estándar indica qué tan alejados están, en promedio, los datos respecto a la media.
Si:
\[ \bar{x} = 10 \text{ ton/ha} \]
y:
\[ s = 0.5 \text{ ton/ha} \]
El lote es relativamente uniforme.
Pero si:
\[ \bar{x} = 10 \text{ ton/ha} \]
y:
\[ s = 2.8 \text{ ton/ha} \]
El lote es muy variable.
En ingeniería agrícola, una desviación estándar alta puede indicar:
\[ CV = \frac{s}{\bar{x}} \cdot 100\% \]
En R:
cv <- sd(datos$rendimiento_ton_ha, na.rm = TRUE) /
mean(datos$rendimiento_ton_ha, na.rm = TRUE) * 100
El coeficiente de variación expresa la variabilidad en porcentaje.
Es muy útil porque permite comparar variables con distintas unidades o diferentes promedios.
Ejemplo:
| Tratamiento | Media ton/ha | Desviación estándar | CV |
|---|---|---|---|
| Riego A | 10.0 | 0.8 | 8% |
| Riego B | 12.0 | 1.8 | 15% |
Aunque Riego B tiene mayor rendimiento promedio, también tiene mayor variabilidad.
Interpretación:
En ensayos agrícolas, un CV demasiado alto puede indicar:
El valor aceptable depende del cultivo, la variable y el tipo de ensayo.
Las medidas de posición dividen los datos en partes porcentuales.
Los cuartiles dividen los datos en cuatro partes iguales.
\[ Q_1 = \text{percentil 25} \]
\[ Q_2 = \text{percentil 50} = \text{mediana} \]
\[ Q_3 = \text{percentil 75} \]
En R:
quantile(datos$rendimiento_ton_ha, probs = c(0.25, 0.50, 0.75), na.rm = TRUE)
Si el rendimiento tiene:
\[ Q_1 = 7.8 \text{ ton/ha} \]
\[ Q_2 = 9.5 \text{ ton/ha} \]
\[ Q_3 = 11.2 \text{ ton/ha} \]
Esto significa que:
El ingeniero puede priorizar el 25% inferior para:
\[ IQR = Q_3 - Q_1 \]
En R:
IQR(datos$rendimiento_ton_ha, na.rm = TRUE)
El IQR representa la dispersión del 50% central de los datos.
Es más robusto que el rango total porque no se ve tan afectado por valores extremos.
Un IQR alto indica que la mitad central de los datos también es heterogénea.
Una regla común es:
\[ x_i < Q_1 - 1.5 \cdot IQR \]
o
\[ x_i > Q_3 + 1.5 \cdot IQR \]
En R:
q <- quantile(datos$rendimiento_ton_ha, probs = c(0.25, 0.75), na.rm = TRUE)
iqr <- IQR(datos$rendimiento_ton_ha, na.rm = TRUE)
limite_inferior <- q[1] - 1.5 * iqr
limite_superior <- q[2] + 1.5 * iqr
atipicos <- datos$rendimiento_ton_ha < limite_inferior |
datos$rendimiento_ton_ha > limite_superior
datos[atipicos, ]
Los valores atípicos pueden ser:
No siempre deben eliminarse. Primero deben investigarse.
El percentil \(p\) es el valor debajo del cual se encuentra aproximadamente el \(p\%\) de los datos.
En R:
quantile(datos$lluvia_mm, probs = c(0.90, 0.95, 0.99), na.rm = TRUE)
Ejemplos:
El puntaje Z indica cuántas desviaciones estándar está una observación respecto a la media.
\[ z_i = \frac{x_i - \bar{x}}{s} \]
En R:
z <- (datos$rendimiento_ton_ha - mean(datos$rendimiento_ton_ha, na.rm = TRUE)) /
sd(datos$rendimiento_ton_ha, na.rm = TRUE)
Si una parcela tiene:
\[ z = -2.1 \]
Significa que su rendimiento está 2.1 desviaciones estándar por debajo del promedio.
Esto puede indicar una zona problema.
En agricultura de precisión, los puntajes Z sirven para:
Las medidas de forma indican cómo se distribuyen los datos alrededor de la media.
Una forma común de calcularla es:
\[ g_1 = \frac{ \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^3 }{ \left[ \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2 \right]^{3/2} } \]
En R se puede usar con paquetes como moments o
e1071:
# install.packages("moments")
library(moments)
skewness(datos$rendimiento_ton_ha, na.rm = TRUE)
Si la asimetría es:
Ejemplo:
Si el rendimiento tiene asimetría negativa, puede significar que la mayoría de las parcelas rinde bien, pero hay pocas parcelas con rendimiento muy bajo.
Esto puede deberse a:
Si la asimetría es positiva, puede haber pocas parcelas con rendimientos excepcionalmente altos.
Una forma de curtosis excesiva es:
\[ g_2 = \frac{ \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^4 }{ \left[ \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2 \right]^2 } - 3 \]
En R:
library(moments)
kurtosis(datos$rendimiento_ton_ha, na.rm = TRUE)
La curtosis describe qué tan pesadas son las colas de la distribución.
Si hay curtosis alta, pueden existir valores extremos, por ejemplo:
Esto es útil para detectar situaciones que no se observan solo con la media.
En ingeniería agrícola muchas decisiones requieren analizar dos o más variables juntas.
Por ejemplo:
\[ s_{xy} = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y}) \]
En R:
cov(datos$NDVI, datos$rendimiento_ton_ha, use = "complete.obs")
La covarianza indica la dirección de la relación entre dos variables.
Ejemplo:
Si NDVI y rendimiento tienen covarianza positiva:
\[ s_{xy} > 0 \]
Entonces, a mayor NDVI, tiende a haber mayor rendimiento.
La desventaja es que depende de las unidades de las variables.
\[ r = \frac{ s_{xy} }{ s_x s_y } \]
También puede escribirse como:
\[ r = \frac{ \sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y}) }{ \sqrt{\sum_{i=1}^{n}(x_i - \bar{x})^2} \sqrt{\sum_{i=1}^{n}(y_i - \bar{y})^2} } \]
En R:
cor(datos$NDVI, datos$rendimiento_ton_ha, use = "complete.obs")
El coeficiente de correlación \(r\) varía entre -1 y 1.
| Valor de \(r\) | Interpretación |
|---|---|
| Cercano a +1 | Relación positiva fuerte |
| Cercano a -1 | Relación negativa fuerte |
| Cercano a 0 | Relación lineal débil |
Ejemplos:
Importante:
Correlación no implica causalidad.
Una correlación entre NDVI y rendimiento puede estar influenciada por agua, fertilidad, tipo de suelo, variedad o manejo.
\[ r^2 = r \cdot r \]
En R:
r <- cor(datos$NDVI, datos$rendimiento_ton_ha, use = "complete.obs")
r2 <- r^2
Si:
\[ r = 0.80 \]
Entonces:
\[ r^2 = 0.64 \]
Esto significa que el 64% de la variabilidad del rendimiento puede explicarse linealmente por la variabilidad del NDVI, en términos descriptivos.
No significa necesariamente causa-efecto, pero sí indica una asociación útil para monitoreo o agricultura de precisión.
Además de los estadísticos clásicos, en ingeniería agrícola se usan índices derivados de la estadística descriptiva.
Un ejemplo es el coeficiente de uniformidad de Christiansen, usado para evaluar uniformidad de riego.
\[ CU = 100 \left( 1 - \frac{ \sum_{i=1}^{n}|x_i - \bar{x}| }{ n\bar{x} } \right) \]
donde:
En R:
CU <- function(x) {
x <- x[!is.na(x)]
100 * (1 - sum(abs(x - mean(x))) / (length(x) * mean(x)))
}
CU(datos$lamina_riego_mm)
Si el CU es alto, el sistema de riego aplica el agua de forma más uniforme.
Si el CU es bajo, puede haber:
Este índice es muy útil en riego por aspersión, goteo y microaspersión.
A continuación, un ejemplo simulado de un ensayo agrícola.
# Cargar paquetes
library(tidyverse)
library(skimr)
# Simular datos agrícolas
set.seed(2026)
n <- 100
riego <- sample(c("Goteo", "Aspersión"), n, replace = TRUE)
rendimiento <- ifelse(
riego == "Goteo",
rnorm(n, mean = 12.5, sd = 0.9),
rnorm(n, mean = 11.0, sd = 1.8)
)
humedad_suelo <- 15 + 0.5 * rendimiento + rnorm(n, 0, 2)
pH <- rnorm(n, mean = 6.2, sd = 0.4)
NDVI <- 0.25 + 0.04 * rendimiento + rnorm(n, 0, 0.03)
datos <- data.frame(
lote = paste0("P", 1:n),
riego = riego,
rendimiento_ton_ha = rendimiento,
humedad_suelo_pct = humedad_suelo,
pH = pH,
NDVI = NDVI
)
# Ver primeras filas
head(datos)
# Resumen base
summary(datos)
# Resumen más completo
skim(datos)
La función summary() muestra:
La función skim() del paquete skimr muestra
un resumen más detallado, incluyendo desviación estándar, histograma y
valores faltantes.
x <- datos$rendimiento_ton_ha
n <- length(x)
media <- sum(x, na.rm = TRUE) / n
varianza <- sum((x - media)^2, na.rm = TRUE) / (n - 1)
desviacion <- sqrt(varianza)
cv <- desviacion / media * 100
rango <- max(x, na.rm = TRUE) - min(x, na.rm = TRUE)
cuartiles <- quantile(x, probs = c(0.25, 0.50, 0.75), na.rm = TRUE)
iqr <- IQR(x, na.rm = TRUE)
media
varianza
desviacion
cv
rango
cuartiles
iqr
Si el resultado fuera, por ejemplo:
media = 11.8
desviacion = 1.4
cv = 11.9%
Podría interpretarse así:
En ingeniería agrícola es común comparar tratamientos.
Por ejemplo:
En R:
resumen <- datos %>%
group_by(riego) %>%
summarise(
n = n(),
media = mean(rendimiento_ton_ha, na.rm = TRUE),
mediana = median(rendimiento_ton_ha, na.rm = TRUE),
desviacion = sd(rendimiento_ton_ha, na.rm = TRUE),
CV = desviacion / media * 100,
minimo = min(rendimiento_ton_ha, na.rm = TRUE),
maximo = max(rendimiento_ton_ha, na.rm = TRUE),
Q1 = quantile(rendimiento_ton_ha, 0.25, na.rm = TRUE),
Q3 = quantile(rendimiento_ton_ha, 0.75, na.rm = TRUE),
IQR = IQR(rendimiento_ton_ha, na.rm = TRUE)
)
resumen
Si el sistema de goteo tiene:
Entonces puede interpretarse como:
El riego por goteo produjo mayor rendimiento promedio y mayor uniformidad que la aspersión.
Si, por el contrario, un tratamiento tiene mayor promedio pero mayor CV, significa que puede ser más productivo en promedio, pero menos estable.
ggplot(datos, aes(x = rendimiento_ton_ha)) +
geom_histogram(binwidth = 0.5,
fill = "darkgreen",
color = "black") +
geom_vline(aes(xintercept = mean(rendimiento_ton_ha)),
color = "blue",
linewidth = 1) +
geom_vline(aes(xintercept = median(rendimiento_ton_ha)),
color = "red",
linewidth = 1) +
labs(
title = "Distribución del rendimiento",
x = "Rendimiento (ton/ha)",
y = "Frecuencia"
) +
theme_minimal()
El histograma permite ver:
Si aparecen dos picos, puede haber dos zonas de manejo diferentes.
Por ejemplo:
ggplot(datos, aes(x = riego,
y = rendimiento_ton_ha,
fill = riego)) +
geom_boxplot(alpha = 0.7) +
labs(
title = "Rendimiento según sistema de riego",
x = "Sistema de riego",
y = "Rendimiento (ton/ha)"
) +
theme_minimal() +
theme(legend.position = "none")
El boxplot permite comparar:
Si el boxplot de goteo está más arriba y es más angosto, puede indicar:
Si aspersión tiene muchos puntos atípicos bajos, puede indicar fallas de uniformidad.
ggplot(datos, aes(x = NDVI, y = rendimiento_ton_ha)) +
geom_point(color = "darkgreen") +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(
title = "Relación entre NDVI y rendimiento",
x = "NDVI",
y = "Rendimiento (ton/ha)"
) +
theme_minimal()
Si la nube de puntos muestra tendencia positiva:
Pero se debe recordar:
Una correlación observada no demuestra causalidad.
cor(datos[, c("rendimiento_ton_ha",
"humedad_suelo_pct",
"pH",
"NDVI")],
use = "complete.obs")
Una matriz de correlación puede mostrar, por ejemplo:
| Variable | Rendimiento |
|---|---|
| NDVI | +0.80 |
| Humedad del suelo | +0.55 |
| pH | +0.10 |
Interpretación:
En ingeniería agrícola, esto puede orientar decisiones como:
| Medida | Ecuación | Función R | Interpretación agrícola |
|---|---|---|---|
| Media | \(\bar{x}=\frac{1}{n}\sum x_i\) | mean() |
Rendimiento promedio, dosis promedio, consumo promedio |
| Mediana | Valor central ordenado | median() |
Valor robusto frente a parcelas atípicas |
| Moda | Valor más frecuente | table() |
Categoría o valor más común |
| Varianza | \(s^2=\frac{\sum(x_i-\bar{x})^2}{n-1}\) | var() |
Variabilidad del lote o tratamiento |
| Desviación estándar | \(s=\sqrt{s^2}\) | sd() |
Uniformidad de rendimiento, riego o suelo |
| CV | \(CV=\frac{s}{\bar{x}}100\) | sd()/mean()*100 |
Comparar variabilidad entre tratamientos |
| Rango | \(R=x_{\max}-x_{\min}\) | max() - min() |
Amplitud total de la variable |
| Cuartiles | \(Q_1, Q_2, Q_3\) | quantile() |
Zonas bajas, medias y altas |
| IQR | \(IQR=Q_3-Q_1\) | IQR() |
Variabilidad del 50% central |
| Z-score | \(z_i=\frac{x_i-\bar{x}}{s}\) | (x-mean(x))/sd(x) |
Detectar parcelas anómalas |
| Asimetría | Tercer momento estandarizado | moments::skewness() |
Sesgo hacia valores altos o bajos |
| Covarianza | \(s_{xy}\) | cov() |
Dirección de relación entre variables |
| Correlación | \(r=\frac{s_{xy}}{s_x s_y}\) | cor() |
Fuerza de asociación lineal |
| \(r^2\) | \(r^2\) | cor()^2 |
Proporción de variabilidad asociada |
| CU | \(100(1-\frac{\sum|x_i-\bar{x}|}{n\bar{x}})\) | Función propia | Uniformidad de riego |
Variables:
Estadísticos útiles:
Interpretación:
Si el pH tiene media 5.4 y desviación estándar 0.3, el lote es ácido y relativamente homogéneo. Puede recomendarse encalado.
Si la conductividad eléctrica tiene valores atípicos altos, puede haber zonas salinas.
Variables:
Estadísticos útiles:
Interpretación:
Si el CV de caudales es alto, el sistema puede tener emisores tapados o presión desigual.
Si la humedad del suelo tiene media adecuada pero alta desviación, el riego puede estar mal distribuido.
Variables:
Estadísticos útiles:
Interpretación:
Si el rendimiento tiene dos grupos claros, pueden existir dos zonas de manejo.
Si NDVI correlaciona positivamente con rendimiento, puede usarse para monitoreo remoto.
Si las parcelas con \(z < -2\) se concentran en una zona, puede haber un problema localizado de drenaje o compactación.
Variables:
Estadísticos útiles:
Interpretación:
Si la profundidad de labranza tiene alta desviación, la máquina puede estar mal regulada o trabajando en condiciones heterogéneas.
Si el espaciamiento entre semillas tiene CV alto, puede haber problemas de siembra.
Variables:
Estadísticos útiles:
Interpretación:
Si la distribución de tamaños es muy amplia, se requiere calibración.
Si la moda está en una categoría comercial deseable, el proceso es adecuado.
Si hay alta variabilidad en firmeza, puede haber madurez desigual.
sum(is.na(datos$rendimiento_ton_ha))
na.rm = TRUE si hay datos
perdidosmean(datos$rendimiento_ton_ha, na.rm = TRUE)
La media puede engañar si hay valores atípicos.
summary(datos$rendimiento_ton_ha)
ggplot(datos, aes(x = rendimiento_ton_ha)) +
geom_histogram()
Pueden ser errores, pero también pueden indicar problemas reales del lote.
datos %>%
group_by(riego) %>%
summarise(media = mean(rendimiento_ton_ha, na.rm = TRUE))
Una correlación alta entre NDVI y rendimiento no significa automáticamente que el NDVI cause mayor rendimiento.
La estadística descriptiva en R aplicada a la ingeniería agrícola permite transformar datos de campo en información útil para la toma de decisiones.
Sus partes principales son:
Las ecuaciones más importantes son:
\[ \bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i \]
\[ s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2 \]
\[ s = \sqrt{s^2} \]
\[ CV = \frac{s}{\bar{x}} \cdot 100\% \]
\[ IQR = Q_3 - Q_1 \]
\[ z_i = \frac{x_i - \bar{x}}{s} \]
\[ r = \frac{s_{xy}}{s_x s_y} \]
En ingeniería agrícola, estas ecuaciones sirven para evaluar:
En resumen, la estadística descriptiva en R no solo resume números, sino que ayuda al ingeniero agrícola a entender el comportamiento del sistema productivo y a tomar decisiones más técnicas, eficientes y basadas en datos.