1. Cargar 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
  1. 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>
  1. 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 = "red") +
  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
  1. 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): Es el 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 (R²ajustado=0.588) y dado que los valores de AIC (235.15) y BIC (240.88) son relativamente altos,sugiere que no es el modelo más eficiente.

_El modelo cuadrático (R² ajustado=0.767), es más apropiado para describir la relación entre dosis de N y diámetro del tallo. Además y dado que los valores de AIC (207.62) y BIC (215.26) este modelo es más eficiente estadísticamente que el lineal.

_Si bien el modelo cuadratico agrega complejidad al modelo, permite capturar posibles relaciones no lineales entre las variables.

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 opción más adecuada.

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 mayores valores de AIC/BIC.

En contextos prácticos donde es importante interpretar los resultados en las unidades originales y se puede tolerar un leve incremento en la complejidad, se recomienda el modelo cuadrático por su equilibrio entre ajuste y eficiencia estadística

D. Interpretación y Predicción

  1. 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 = "red", size = 1.2) +   # Lineal
  geom_smooth(method = "lm", formula = y ~ poly(x, 2, raw = TRUE), se = FALSE, 
              color = "black", 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 ilustra la relación entre la dosis de nitrógeno (N, kg/ha) y el diámetro del tallo (mm) en las plantas. En el eje X se ubican las dosis de N aplicadas: 0, 50, 100, 150 y 200 kg/ha; en el eje Y se representa el diámetro del tallo (mm). Los puntos de color verde indican los valores observados para cada dosis. Se comparan dos modelos de ajuste:

Modelo lineal (línea roja): muestra un incremento constante del diámetro del tallo conforme aumenta la dosis de N. Modelo cuadrático (línea negro): señala una respuesta positiva inicial hasta aproximadamente 150 kg/ha, donde el diámetro del tallo alcanza un máximo, y posteriormente tiende a estabilizarse o disminuir ligeramente a los 200 kg/ha.

En conjunto, el gráfico indica que el diámetro del tallo aumenta con la fertilización nitrogenada. Sin embargo, el modelo cuadrático sugiere la existencia de un punto de saturación a partir del cual dosis mayores no generan incrementos significativos y podrían, incluso, reducir levemente el crecimiento.

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

Iterpretación:

El modelo cuadrático predice un diámetro de 18.71 mm, ligeramente mayor que el obtenido con el modelo lineal (17.04 mm) para una dosis de nitrógeno de 125 kg/ha. Esto sugiere que el crecimiento del tallo podría estar comenzando a desacelerarse a dosis altas, indicando un posible efecto de curvatura en el modelo cuadrático.

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.