# Instalamos los paquetes (solo ejecutar una vez desde la consola)
install.packages("readxl")
install.packages("tidyverse")
install.packages("lmtest")
install.packages("PerformanceAnalytics")
library(readxl)
library(tidyverse)
library(lmtest)
library(PerformanceAnalytics)
NITROGENO <-read_excel("C:/Users/gecon/Documents/Año 2025/Diplomatura en bioestadistica/MODULO VI/NITROGENO.xlsx")
NITROGENO
## # A tibble: 12 × 3
## REPETICION PROFUNDIDAD NITROGENO
## <dbl> <dbl> <dbl>
## 1 1 20 0.09
## 2 2 20 0.08
## 3 3 20 0.13
## 4 4 20 0.11
## 5 1 40 0.06
## 6 2 40 0.08
## 7 3 40 0.09
## 8 4 40 0.09
## 9 1 60 0.04
## 10 2 60 0.05
## 11 3 60 0.04
## 12 4 60 0.06
head(NITROGENO)
## # A tibble: 6 × 3
## REPETICION PROFUNDIDAD NITROGENO
## <dbl> <dbl> <dbl>
## 1 1 20 0.09
## 2 2 20 0.08
## 3 3 20 0.13
## 4 4 20 0.11
## 5 1 40 0.06
## 6 2 40 0.08
ggplot(NITROGENO,aes(PROFUNDIDAD,NITROGENO))+
geom_point()
ggplot(NITROGENO,aes(PROFUNDIDAD,NITROGENO))+
geom_point(shape = 17, size= 4, alpha= 1.0) +
labs(x = "PROFUNDIDAD",
y = "NITROGENO") +
theme_minimal()
ggplot(NITROGENO,aes(PROFUNDIDAD,NITROGENO,colour=NITROGENO ))+
geom_point(shape = 17, size= 4, alpha= 1.0) +
labs(x = "PROFUNDIDAD",
y = "NITROGENO") +
theme_minimal()
Se Observa una tendencia con pendiente negativa.
names(NITROGENO)
## [1] "REPETICION" "PROFUNDIDAD" "NITROGENO"
cor(NITROGENO[2:3])
## PROFUNDIDAD NITROGENO
## PROFUNDIDAD 1.0000000 -0.8453206
## NITROGENO -0.8453206 1.0000000
El valor del coeficiente de correlación es de -0,84 La correlación entre nitrógeno y profundidad es alta y negativa. Es decir, a medida que aumenta la profundidad el contenido de nitrogeno disminuye.
# Paquete PerformanceAnalytics
chart.Correlation(NITROGENO [2:3], histogram = TRUE, method = "pearson")
Se verifica el cumplimiento de los supuestos. En primer lugar el supuesto de distribución Normal de las variables (Normalidad).
H0: Se cumple el supuesto de Normalidad
H1: No se cumple el supuesto de Normalidad
shapiro.test(NITROGENO$PROFUNDIDAD)
##
## Shapiro-Wilk normality test
##
## data: NITROGENO$PROFUNDIDAD
## W = 0.81079, p-value = 0.01246
shapiro.test(NITROGENO$NITROGENO)
##
## Shapiro-Wilk normality test
##
## data: NITROGENO$NITROGENO
## W = 0.94544, p-value = 0.5716
#En el caso de la prueba de normalidad para las variables Nitrogeno, con un p> a 0,05 podriamos aceptar la Ho. #Pero para la variable Profundidad, el p< a 0,05 con lo que se puede afirmar que no tiene una distribución normal.
H0: \(\rho\) = 0
H1: \(\rho\) ≠ 0
cor.test(NITROGENO$PROFUNDIDAD,
NITROGENO$NITROGENO,
method = "pearson",
conf.level = 0.99)
##
## Pearson's product-moment correlation
##
## data: NITROGENO$PROFUNDIDAD and NITROGENO$NITROGENO
## t = -5.0034, df = 10, p-value = 0.0005346
## alternative hypothesis: true correlation is not equal to 0
## 99 percent confidence interval:
## -0.9703433 -0.3635037
## sample estimates:
## cor
## -0.8453206
Los resultados son: t = 5.0034 (Valor del estadístico de prueba)
df = 10 grados de libertad
p-value = 0.0005346
cor = -0.8453206 (coeficiente de correlación r)
IC 99%: [0.36 ; 0.97] (intervalo de confianza al 99% para la correlación muestral)
###Una de las variables no cumple con los supuestos, por eso se aplicara la prueba de correlación lineal de Spearman
H0: ρ = 0 H1: ρ ≠ 0
cor.test(NITROGENO$NITROGENO,NITROGENO$PROFUNDIDAD, method = "spearman", conf.level = 0.99)
## Warning in cor.test.default(NITROGENO$NITROGENO, NITROGENO$PROFUNDIDAD, :
## Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: NITROGENO$NITROGENO and NITROGENO$PROFUNDIDAD
## S = 525.71, p-value = 0.0006619
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## -0.8381581
#Analicemos los resultados:
S = 525,71 (valor del estadístico de prueba para Spearman)
p-value = 0.0006619
rho = -0.8381581 (coeficiente de correlación de Spearman)
La correlación es alta y negativa, es decir, al aumentar el contenido de Nitrogeno total disminuira la profundidad, o viceversa.
ggplot(NITROGENO, aes(PROFUNDIDAD,NITROGENO)) +
geom_point(size= 2.5, alpha= 0.6) +
geom_smooth(method = "lm", se=FALSE) # geom_smooth: agrega una línea de suavizado
## `geom_smooth()` using formula = 'y ~ x'
La recta de la dispersion es negativa, lo que muestra al aumentar la
profundidad, el contenido total de nitrogeno va disminuyendo.
REGRESION_NITROGENO <- lm(NITROGENO$NITROGENO ~ NITROGENO$PROFUNDIDAD)
REGRESION_NITROGENO
##
## Call:
## lm(formula = NITROGENO$NITROGENO ~ NITROGENO$PROFUNDIDAD)
##
## Coefficients:
## (Intercept) NITROGENO$PROFUNDIDAD
## 0.131667 -0.001375
y=0.131667 -0.001375 X
Contenido de Nitrogeno total = 0.131667 - 0.001375 profundidad
Cuando la profundidad es menor el contenido de Nitrogeno total tiene valores mas altos.
summary(REGRESION_NITROGENO)
##
## Call:
## lm(formula = NITROGENO$NITROGENO ~ NITROGENO$PROFUNDIDAD)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.024167 -0.010417 0.002083 0.011458 0.025833
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.1316667 0.0118732 11.089 6.11e-07 ***
## NITROGENO$PROFUNDIDAD -0.0013750 0.0002748 -5.003 0.000535 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01555 on 10 degrees of freedom
## Multiple R-squared: 0.7146, Adjusted R-squared: 0.686
## F-statistic: 25.03 on 1 and 10 DF, p-value: 0.0005346
Por cada unidad de profundidad que aumenta el contenido de Nitrogeno total disminuye 0,13.
R2 = 0.686 La profundida explica el 68% de la variabilidad del contenido total de Nitrogeno.
#Usamos la función plot
par(mfrow=c(2,2)) # permite visualizar los gráficos de residuos en una sola imagen
plot(REGRESION_NITROGENO)
1. Residuals vs Fitted (Residuos vs Valores ajustados)
La mayoría de los puntos están bien distribuidos, pero hay cierta curvatura leve (linea roja). Esto podría indicar una posible ligera no linealidad o heterocedasticidad.
Casi todos los puntos están bien alineados. Esto indica que los residuos son aproximadamente normales.
Hay una leve tendencia creciente, lo que sugiere una posible heterocedasticidad, la mayoría están concentrados alrededor de 1, lo cual es aceptable.
Nitrogeno_total= 0.131667 -0.001375 * 50
Nitrogeno_total= 6.51
El valor del Nitrogeno total es 6,51 cuando la profundidad es de 50 cm.