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