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