Los datos que se presentan enseguida son rendimientos en toneladas por hectárea de un pasto con tres niveles de fertilización nitrogenada. El diseño fue completamente aleatorizado, con cinco repeticiones por tratamiento.

library(readxl)
datos <- read_excel("/Users/jessiroa/Downloads/Datos ejercicio 5.xlsx")
datos # para visualizar los datos
conteo_Nivel <- table(datos$Nivel)
conteo_Nivel 
## 
## A B C 
## 5 5 5
library(summarytools)
summarytools::descr(datos[,2])
## Descriptive Statistics  
## datos$Rendimiento  
## N: 15  
## 
##                     Rendimiento
## ----------------- -------------
##              Mean         24.13
##           Std.Dev          7.51
##               Min         14.51
##                Q1         14.82
##            Median         25.15
##                Q3         32.26
##               Max         32.67
##               MAD         10.84
##               IQR         17.24
##                CV          0.31
##          Skewness         -0.20
##       SE.Skewness          0.58
##          Kurtosis         -1.69
##           N.Valid         15.00
##         Pct.Valid        100.00
# Calcular estadísticas descriptivas por categoría
resultados_descriptivos <- aggregate(Nivel~Rendimiento, data = datos, summary)
# Imprimir los resultados descriptivos
print(resultados_descriptivos)
##    Rendimiento Nivel.Length Nivel.Class Nivel.Mode
## 1      14.5141            1   character  character
## 2      14.6760            1   character  character
## 3      14.7200            1   character  character
## 4      14.8230            1   character  character
## 5      15.0650            1   character  character
## 6      25.0310            1   character  character
## 7      25.1310            1   character  character
## 8      25.1510            1   character  character
## 9      25.2670            1   character  character
## 10     25.4010            1   character  character
## 11     32.1110            1   character  character
## 12     32.2560            1   character  character
## 13     32.4600            1   character  character
## 14     32.6050            1   character  character
## 15     32.6690            1   character  character

ANOVA

# Realizar el ANOVA
modelo_anova <- aov(Rendimiento ~ Nivel, data = datos)


# Resumen del ANOVA
resumen_anova <- summary(modelo_anova)

# Imprimir el resumen del ANOVA
print(resumen_anova)
##             Df Sum Sq Mean Sq F value Pr(>F)    
## Nivel        2  788.3   394.2   10132 <2e-16 ***
## Residuals   12    0.5     0.0                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Crear el diagrama de cajas por categorías
boxplot(datos$Rendimiento ~ datos$Nivel, data = datos, col = c("red", "blue", "green","orange"), ylab = "Rendimiento", xlab = "Nivel")

Pruebas post hoc

TukeyHSD(modelo_anova)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Rendimiento ~ Nivel, data = datos)
## 
## $Nivel
##         diff      lwr      upr p adj
## B-A 10.43658 10.10377 10.76939     0
## C-A 17.66058 17.32777 17.99339     0
## C-B  7.22400  6.89119  7.55681     0
plot(TukeyHSD(modelo_anova))

library(agricolae)
metodos.Duncan <-duncan.test(modelo_anova, trt = "Nivel", group = T, console = T)
## 
## Study: modelo_anova ~ "Nivel"
## 
## Duncan's new multiple range test
## for Rendimiento 
## 
## Mean Square Error:  0.03890497 
## 
## Nivel,  means
## 
##   Rendimiento       std r         se     Min    Max    Q25    Q50    Q75
## A    14.75962 0.2037867 5 0.08820995 14.5141 15.065 14.676 14.720 14.823
## B    25.19620 0.1418986 5 0.08820995 25.0310 25.401 25.131 25.151 25.267
## C    32.42020 0.2346289 5 0.08820995 32.1110 32.669 32.256 32.460 32.605
## 
## Alpha: 0.05 ; DF Error: 12 
## 
## Critical Range
##         2         3 
## 0.2718019 0.2844986 
## 
## Means with the same letter are not significantly different.
## 
##   Rendimiento groups
## C    32.42020      a
## B    25.19620      b
## A    14.75962      c
#out <- duncan.test(model, "virus", main = "yield of sweetpotato, Dealt with different virus")
plot(metodos.Duncan, variation="IQR" )

VERIFICACION DE LOS SUPUESTOS

library(car)
## Loading required package: carData
residuos<-residuals(modelo_anova) #Creando un objeto llamado residuos que contiene los residuos el modelo

par(mfrow=c(1,3)) #Para dividir el área del gráfico en dos partes (una fila y dos columnas)

dplot<-density(residuos) #Creando un objeto llamado dplot que recibe un Density_Plot de los residuos

plot(dplot, #Graficando el objeto dplot
      main="Curva de densidad observada", #Título principal de la gráfica
      xlab = "Residuos", #Etiqueta del eje x
      ylab = "Densidad") #Etiqueta del eje y
polygon(dplot, #Añadiendo el poligono
        col = "green", #Definiendo el color del poligono
        border = "black") #Color del borde del poligono

qqPlot(residuos, #Un gráfico Cuantil-Cuantil de los residuos
       pch =20, #Forma de los puntos
       main="QQ-Plot de los residuos", #Título principal
       xlab = "Cuantiles teóricos",  #Etiqueta eje x
       ylab="Cuantiles observados de los residuos") #Etiqueta eje y
## [1] 15  5
mtext(side=3, at=par("usr")[1], adj=0.7, cex=0.6, col="gray40", line=-21, #Posición del texto
      text=paste("Jessica Roa V  --", #Texto
                 format(Sys.time(), 
                "%d/%m/%Y %H:%M:%S --"), #Fecha y Hora
                 R.version.string)) #Versión de R
boxplot(residuos, col = c("red"), ylab = "residuos", main="Box-plot  de los residuos")

boxplot(residuos ~ datos$Nivel, 
        main = "Boxplot de Residuos por dureza", 
        xlab = "Nivel",
        col="lightblue",
        ylab = "Residuos")

library(car)
color_1 <-colorRampPalette(c("purple", "pink", "lightblue"))


plot(residuos, main = "Prueba de independencia", pch=20,cex = 2, col=color_1(120), ylab = "Residuos", xlab = "Nivel")

library(stats)
bartlett.test(residuos ~ datos$Nivel) #Esta prueba requiere que el diseño se balanceado (el número de repeticiones debe ser igual para cada tratamiento)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  residuos by datos$Nivel
## Bartlett's K-squared = 0.8865, df = 2, p-value = 0.6419
library(stats)
leveneTest(residuos ~ datos$Nivel)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
durbinWatsonTest(modelo_anova) 
##  lag Autocorrelation D-W Statistic p-value
##    1      -0.4464995      2.679612    0.34
##  Alternative hypothesis: rho != 0