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
#A Exploración de datos
# Cargar 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.
# Verificar estructura
dim(MAIZ_FERTILIZANTE)       # dimensiones
## [1] 50  2
names(MAIZ_FERTILIZANTE)     # nombres de columnas
## [1] "DOSIS_N"        "DIAMETRO_TALLO"
head(MAIZ_FERTILIZANTE)      # primeras filas
## # 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
glimpse(MAIZ_FERTILIZANTE)   # resumen general
## Rows: 50
## Columns: 2
## $ DOSIS_N        <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, 50, 50, 5…
## $ DIAMETRO_TALLO <dbl> 8.371554, 11.496018, 10.424468, 7.740558, 9.132100, 12.…
MAIZ_FERTILIZANTE
## # A tibble: 50 × 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 
##  7       0           6.36
##  8       0           9.36
##  9       0          11.9 
## 10       0           8.70
## # ℹ 40 more rows
#Gráfico de dispersión
ggplot(MAIZ_FERTILIZANTE, aes(x = DOSIS_N, y = DIAMETRO_TALLO)) +
  geom_point(color = "blue") +
  theme_minimal() +
  labs(title = "Diámetro del tallo vs Dosis de N",
       x = "Dosis de N (kg/ha)",
       y = "Diámetro del tallo (mm)")

#Cantidad de observaciones: 50 (5 dosis × 10 repeticiones).
#Dosis de N: 0, 50, 100, 150, 200 kg/ha.
#Diámetro del tallo: entre 6,36 y 21,59 mm (media ≈ 16,0 mm).
#El gráfico de dispersión sugiere una relación creciente al inicio, que luego tiende a estabilizarse o decrecer.
#B Ajuste se modelos
# MODELO LINEAL
modelo_lineal <- lm(DIAMETRO_TALLO ~ DOSIS_N, data = MAIZ_FERTILIZANTE)
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
# Ecuasión: Y=11.91+0.0411⋅X
#Intercepto 11,91 es el diámetro promedio cuando no se aplica nitrógeno.
#Pendiente 0,041 indica que por cada kg/ha adicional de N, el diámetro del tallo aumenta en 0,041 mm de forma constante (según este modelo).
#R² ajustado = 0,588, explica el 58,8 % de la variabilidad de los datos.
#MODELO CUADRÁTICO
modelo_cuad <- lm(DIAMETRO_TALLO ~ DOSIS_N + I(DOSIS_N^2), data = MAIZ_FERTILIZANTE)
summary(modelo_cuad)
## 
## 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
#Ecuasión: Y=9.998+0.1175⋅X−0.000382.X²
#Intercepto: 9,998, es el diámetro promedio cuando no se aplica nitrógeno.
#Término lineal: 0,1175, inicialmente, el diámetro aumenta 0,117 mm por kg/ha.
#Término cuadrático: −0,000382, indica que la curva es cóncava hacia abajo, a altas dosis, el incremento en diámetro se reduce, y luego decrece ligeramente.
#R² ajustado = 0,767, explica el 76,7 % de la variabilidad de los datos.
#Métricas
# R2 ajustado
summary(modelo_lineal)$adj.r.squared
## [1] 0.5877542
summary(modelo_cuad)$adj.r.squared
## [1] 0.7667618
# AIC y BIC
AIC(modelo_lineal); BIC(modelo_lineal)
## [1] 235.1473
## [1] 240.8834
AIC(modelo_cuad); BIC(modelo_cuad)
## [1] 207.6167
## [1] 215.2648
#CComparación de modelos

#El modelo cuadrático es mejor, ya que tiene un R² ajustado mayor (0,767 vs 0,588), y presenta AIC y BIC menores. En conclusión,la regresión cuadrática es mejor porque ajusta mejor los datos y tiene sentido fisiológico, es decir que altas dosis de N afectan negativamente a la planta, en este caso se ve reflejado en el diámetro del tallo.
#D Interpretación
ggplot(MAIZ_FERTILIZANTE, aes(x = DOSIS_N, y = DIAMETRO_TALLO)) +
  geom_point(color = "blue") +
  geom_smooth(method = "lm", se = FALSE, color = "red", formula = y ~ x) +
  geom_smooth(method = "lm", se = FALSE, color = "green", formula = y ~ poly(x, 2, raw = TRUE)) +
  theme_minimal() +
  labs(title = "Comparación de modelos lineal (rojo) y cuadrático (verde)",
       x = "Dosis de N (kg/ha)",
       y = "Diámetro del tallo (mm)")

#Al graficar la relación entre la dosis de nitrógeno y el diámetro del tallo, el modelo lineal se representa como una recta creciente que no logra ajustarse a la distribución de los puntos experimentales, y tiende a subestimar el diámetro en dosis intermedias y a sobreestimarlo en dosis altas. El modelo cuadrático, por su parte, describe una curva ascendente que se aplana y muestra una leve disminución en las dosis más altas, y se adapta mejor al patrón real de los datos, mostrando un comportamiento coherente con la respuesta fisiológica típica de las plantas a la fertilización nitrogenada. Visualmente, la curva cuadrática pasa más cerca de la nube de puntos, confirmando el mejor ajuste reflejado en las métricas estadísticas.
#Predicción para una dosis estimada de 125 kg/ha
nuevo <- data.frame(DOSIS_N = 125)

# Predicción con modelo lineal
predict(modelo_lineal, newdata = nuevo)
##        1 
## 17.04787
# Predicción con modelo cuadrático
predict(modelo_cuad, newdata = nuevo)
##        1 
## 18.71922
# La predicción de diámetro serí:
#Modelo lineal: diámetro estimado = 17,05 mm
#Modelo cuadrático: diámetro estimado = 18,72 mm
#Si se aplican 125 kg/ha, el diámetro esperado sería ≈18,7 mm (según el modelo más adecuado que es el cuadrático).