A. Exploración de Datos

1. Cargar librerías y la base de datos

# Cargar librerías
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Cargar base de datos
MAIZ_FERTILIZANTE <- read_csv("MAIZ_FERTILIZANTE.csv")
## Rows: 50 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (2): DOSIS_N, DIAMETRO_TALLO
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Ver las primeras filas
head(MAIZ_FERTILIZANTE)
## # A tibble: 6 × 2
##   DOSIS_N DIAMETRO_TALLO
##     <dbl>          <dbl>
## 1       0           8.37
## 2       0          11.5 
## 3       0          10.4 
## 4       0           7.74
## 5       0           9.13
## 6       0          12.5

2. Explorar estructura de la base

# Dimensiones de la base (filas x columnas)
dim(MAIZ_FERTILIZANTE)
## [1] 50  2
# Nombres de variables
names(MAIZ_FERTILIZANTE)
## [1] "DOSIS_N"        "DIAMETRO_TALLO"
# Resumen de variables
summary(MAIZ_FERTILIZANTE)
##     DOSIS_N    DIAMETRO_TALLO 
##  Min.   :  0   Min.   : 6.36  
##  1st Qu.: 50   1st Qu.:14.34  
##  Median :100   Median :16.92  
##  Mean   :100   Mean   :16.02  
##  3rd Qu.:150   3rd Qu.:18.71  
##  Max.   :200   Max.   :21.59
# Ver estructura completa
str(MAIZ_FERTILIZANTE)
## spc_tbl_ [50 × 2] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ DOSIS_N       : num [1:50] 0 0 0 0 0 0 0 0 0 0 ...
##  $ DIAMETRO_TALLO: num [1:50] 8.37 11.5 10.42 7.74 9.13 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   DOSIS_N = col_double(),
##   ..   DIAMETRO_TALLO = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>

3. Gráfico de dispersión

# Gráfico de dispersión: Diámetro del tallo vs Dosis de N
ggplot(MAIZ_FERTILIZANTE, aes(x = DOSIS_N, y = DIAMETRO_TALLO)) +
  geom_point(size = 3, alpha = 0.7, color = "darkgreen") +
  labs(title = "Relación entre Dosis de N y Diámetro del Tallo en Maíz",
       x = "Dosis de N (kg/ha)",
       y = "Diámetro del tallo (mm)") +
  theme_minimal()

B. Ajuste de Modelos

4. Ajustar los siguientes modelos de regresión:

4.1. Ajuste modelo lineal

modelo_lineal <- lm(DIAMETRO_TALLO ~ DOSIS_N, data = MAIZ_FERTILIZANTE)

# Resumen del modelo lineal
summary(modelo_lineal)
## 
## Call:
## lm(formula = DIAMETRO_TALLO ~ DOSIS_N, data = MAIZ_FERTILIZANTE)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.5481 -1.5960  0.2347  1.4300  4.3449 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 11.908075   0.598242  19.905  < 2e-16 ***
## DOSIS_N      0.041118   0.004885   8.418 5.18e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.442 on 48 degrees of freedom
## Multiple R-squared:  0.5962, Adjusted R-squared:  0.5878 
## F-statistic: 70.86 on 1 and 48 DF,  p-value: 5.182e-11

4.2. Ajuste modelo cuadrático

modelo_cuadratico <- lm(DIAMETRO_TALLO ~ DOSIS_N + I(DOSIS_N^2), 
                        data = MAIZ_FERTILIZANTE)

# Resumen del modelo cuadrático
summary(modelo_cuadratico)
## 
## Call:
## lm(formula = DIAMETRO_TALLO ~ DOSIS_N + I(DOSIS_N^2), data = MAIZ_FERTILIZANTE)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.2288 -1.1872 -0.1897  1.3319  3.3898 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   9.9979513  0.5467262  18.287  < 2e-16 ***
## DOSIS_N       0.1175233  0.0129528   9.073 6.71e-12 ***
## I(DOSIS_N^2) -0.0003820  0.0000621  -6.151 1.59e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.837 on 47 degrees of freedom
## Multiple R-squared:  0.7763, Adjusted R-squared:  0.7668 
## F-statistic: 81.54 on 2 and 47 DF,  p-value: 5.224e-16

5. Informar para cada modelo:

5.1. Ecuación ajustada y coeficientes

# Coeficientes modelo lineal
coef_lineal <- coef(modelo_lineal)
coef_lineal
## (Intercept)     DOSIS_N 
## 11.90807482  0.04111832
# Ecuación ajustada (lineal)
ecuacion_lineal <- paste0("DIAMETRO_TALLO = ",
                          round(coef_lineal[1], 3), " + ",
                          round(coef_lineal[2], 3), " * DOSIS_N")
ecuacion_lineal
## [1] "DIAMETRO_TALLO = 11.908 + 0.041 * DOSIS_N"

Ecuación del modelo:

DIAMETRO_TALLO= 11.908 + 0.041 * DOSIS_N

Interpretación:

Intercepto (11.908): Es el valor estimado del diámetro del tallo cuando la dosis de nitrógeno es cero.

Pendiente (0.041): Por cada unidad adicional de dosis de nitrógeno, se espera que el diámetro del tallo aumente 0.041 unidades, manteniendo la relación lineal constante.

# Coeficientes modelo cuadrático
coef_cuad <- coef(modelo_cuadratico)
coef_cuad
##   (Intercept)       DOSIS_N  I(DOSIS_N^2) 
##  9.9979513105  0.1175232637 -0.0003820247
# Ecuación ajustada (cuadrática)
ecuacion_cuad <- paste0("DIAMETRO_TALLO = ",
                        round(coef_cuad[1], 3), " + ",
                        round(coef_cuad[2], 3), " * DOSIS_N + ",
                        round(coef_cuad[3], 6), " * DOSIS_N^2")
ecuacion_cuad
## [1] "DIAMETRO_TALLO = 9.998 + 0.118 * DOSIS_N + -0.000382 * DOSIS_N^2"

Ecuación del modelo:

DIAMETRO_TALLO = 9.998 + 0.118 * DOSIS_N − 0.000382 * DOSIS_N^2

Interpretación:

Intercepto (9.998): Valor estimado del diámetro del tallo cuando la dosis de nitrógeno es cero.

Coeficiente lineal (0.118): Inicialmente, por cada unidad adicional de DOSIS_N, el diámetro del tallo aumenta aproximadamente 0.118 unidades.

Coeficiente cuadrático (-0.000382): La relación no es lineal; este término negativo indica que el efecto del nitrógeno se va desacelerando a dosis más altas, generando una curva con forma de concavidad hacia abajo (efecto de saturación).

En otras palabras, a bajas dosis de nitrógeno el diámetro aumenta, pero a medida que la dosis sigue creciendo, el aumento se vuelve más lento e incluso podría llegar a estabilizarse o disminuir levemente.

5.2. R² ajustado

# R² ajustado modelo lineal
summary(modelo_lineal)$adj.r.squared
## [1] 0.5877542
# R² ajustado modelo cuadrático
summary(modelo_cuadratico)$adj.r.squared
## [1] 0.7667618

5.3. AIC y BIC

# AIC y BIC para ambos modelos
AIC(modelo_lineal); BIC(modelo_lineal)
## [1] 235.1473
## [1] 240.8834
AIC(modelo_cuadratico); BIC(modelo_cuadratico)
## [1] 207.6167
## [1] 215.2648

C. Comparación de Modelos

6. ¿Qué modelo presenta mejor ajuste según las métricas? Justificar la elección del modelo

# Resumen de métricas
comparacion_modelos <- tibble(
  Modelo = c("Lineal", "Cuadrático"),
  R2_Ajustado = c(summary(modelo_lineal)$adj.r.squared,
                  summary(modelo_cuadratico)$adj.r.squared),
  AIC = c(AIC(modelo_lineal), AIC(modelo_cuadratico)),
  BIC = c(BIC(modelo_lineal), BIC(modelo_cuadratico))
)

comparacion_modelos
## # A tibble: 2 × 4
##   Modelo     R2_Ajustado   AIC   BIC
##   <chr>            <dbl> <dbl> <dbl>
## 1 Lineal           0.588  235.  241.
## 2 Cuadrático       0.767  208.  215.

6.1 Comparación de métricas

_El modelo lineal presenta un ajuste moderado con un R² ajustado de 0.588, indicando que explica alrededor del 59% de la variabilidad de la variable dependiente. Sin embargo, sus valores de AIC (235.15) y BIC (240.88) son relativamente altos, lo que sugiere que no es el modelo más eficiente

_El modelo cuadrático mejora el ajuste, con un R² ajustado de 0.767, mostrando una mayor capacidad explicativa por lo que es el más apropiado para describir la relación entre dosis de N y diámetro del tallo. Además, sus valores de AIC (207.62) y BIC (215.26) son significativamente más bajos que los del modelo lineal, lo que indica que este modelo es más eficiente estadísticamente a pesar de introducir un parámetro adicional (el término al cuadrado).

_La incorporación del término cuadrático permite capturar posibles relaciones no lineales entre las variables, pero agrega complejidad al modelo.

6.2. Selección de modelo

Si el objetivo principal es maximizar la capacidad explicativa y describir patrones potencialmente no lineales, el modelo cuadrático es la mejor opción.

Si se busca un modelo más simple y fácil de interpretar, el modelo lineal puede ser aceptable, aunque con menor poder explicativo y mayor AIC/BIC.

En contextos aplicados donde se requiere interpretar los resultados directamente en las unidades originales y se puede tolerar un leve aumento de complejidad, el modelo cuadrático se recomienda por su equilibrio entre ajuste y eficiencia estadística.

D. Interpretación y Predicción

7. Gráfico comparando ambos modelos

ggplot(MAIZ_FERTILIZANTE, aes(x = DOSIS_N, y = DIAMETRO_TALLO)) +
  geom_point(size = 3, alpha = 0.7, color = "darkgreen") +
  geom_smooth(method = "lm", formula = y ~ x, se = FALSE, 
              color = "blue", size = 1.2) +   # Lineal
  geom_smooth(method = "lm", formula = y ~ poly(x, 2, raw = TRUE), se = FALSE, 
              color = "red", size = 1.2) +   # Cuadrático
  labs(title = "Modelos ajustados: Lineal (azul) y Cuadrático (rojo)",
       x = "Dosis de N (kg/ha)",
       y = "Diámetro del tallo (mm)") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Descripción del grafico

El gráfico muestra la relación entre la dosis de nitrógeno (N, en kg/ha) y el diámetro del tallo (mm) en plantas. En el eje X se ubica la dosis de N aplicada (0, 50, 100, 150 y 200 kg/ha). En el eje Y se representa el diámetro del tallo (mm). Los puntos verdes corresponden a los valores observados en cada dosis. Se comparan dos modelos de ajuste: _Modelo lineal (línea azul): muestra un incremento constante del diámetro del tallo a medida que aumenta la dosis de N. _Modelo cuadrático (línea roja): refleja una respuesta inicial positiva hasta aproximadamente 150 kg/ha, donde el diámetro del tallo alcanza un máximo, y luego tiende a estabilizarse o decrecer ligeramente a los 200 kg/ha. En conjunto, el gráfico indica que el diámetro del tallo aumenta con la fertilización nitrogenada, aunque el modelo cuadrático sugiere que existe un punto de saturación a partir del cual dosis mayores no generan aumentos significativos, e incluso podrían reducir ligeramente el crecimiento.

8. Predicción con ambos modelos para 125 kg/ha

# Crear un nuevo dataset con la dosis de interés
nueva_dosis <- data.frame(DOSIS_N = 125)

# Predicción con el modelo lineal
pred_lineal <- predict(modelo_lineal, newdata = nueva_dosis, interval = "confidence")

# Predicción con el modelo cuadrático
pred_cuad <- predict(modelo_cuadratico, newdata = nueva_dosis, interval = "confidence")

# Resultados
list(
  "Predicción Modelo Lineal" = pred_lineal,
  "Predicción Modelo Cuadrático" = pred_cuad
)
## $`Predicción Modelo Lineal`
##        fit      lwr      upr
## 1 17.04787 16.31128 17.78446
## 
## $`Predicción Modelo Cuadrático`
##        fit      lwr      upr
## 1 18.71922 17.94071 19.49773

Interpretación:

El modelo cuadrático (18.71 mm) predice un diámetro ligeramente mayor que el lineal (17.04 mm) para una dosis de nitrogeno de 125 kg/ha, lo que indica que el crecimiento del tallo podría estar empezando a desacelerarse a dosis altas (efecto curvatura del modelo cuadrático).